VideoMgmt.h 2.7 KB
/**
 ********************************************************************
 * @file   VideoMgmt.h
 *         VideoMgmt的头文件
 *
 *********************************************************************
 */

/* Define to prevent recursive inclusion 避免重定义 -------------------------------------*/
#ifndef VIDEO_MGMT_H
#define VIDEO_MGMT_H

/* Includes ------------------------------------------------------------------*/
#include "JZsdk_Base/JZsdk_Code/JZsdk_Code.h"
#include "./VideoMgmt_Parm.h"

#ifdef __cplusplus
extern "C" {
#endif

/* Exported constants --------------------------------------------------------*/
/* 常亮定义*/

typedef struct T_JZsdkVideoMgmtHandler
{
    T_JZsdkReturnCode (*SetNextFrame_IDR)(unsigned int Index);

}T_JZsdkVideoMgmtHandler;

/* Exported types ------------------------------------------------------------*/

/* Exported functions --------------------------------------------------------*/
T_JZsdkReturnCode VideoMgmt_Init(T_JZsdkVideoMgmtHandler handler);
T_JZsdkVideoMgmtHandler *JZsdk_GetVideoMgmtHandler(void);


T_JZsdkReturnCode VideoMgmt_init_buffer(void **index);
T_JZsdkReturnCode VideoMgmt_VideoBuffer_Deinit(void **index);
T_JZsdkReturnCode VideoMgmt_write_data(void **index, unsigned char *data, unsigned int data_len);
T_JZsdkReturnCode VideoMgmt_read_data(void **index, unsigned char **data, unsigned int *data_len, unsigned int mode, unsigned int extra_len);
T_JZsdkReturnCode VideoMgmt_VideoStreamFlow_Init(int FrameNumber, void **index, int VideoStreamFlowIndex);
T_JZsdkReturnCode VideoStream_GetVideoStreamUseStatus(int *status);
T_JZsdkReturnCode VideoRecord_ShootPhotoNum(int num);
T_JZsdkReturnCode VideoMgmt_param(int flagcode, enum VideoMgmtParm paramflag, int *value);
T_JZsdkReturnCode VideoMgmt_Send_StreamStatus(JZ_VideoStreamUseStatus status);
T_JZsdkReturnCode VideoMgmt_VideoStreamFlow_RecordPlay(int status);
T_JZsdkReturnCode VideoMgmt_Get_StreamWidthAndHeight(int *width, int *height);

/***************
 * 
 *  视频流模块模块
 * 
 * *********/
T_JZsdkReturnCode VideoMgmt_VideoStreamFlowIndex(int index);
T_JZsdkReturnCode VideoStreamTransCode_Init();
T_JZsdkReturnCode VideoStramPhoto_DevelopH264FlowGenerateIDR();

/***************
 * 
 *  录像模块
 * 
 * *********/
T_JZsdkReturnCode VideoRecord_TransMode(int status);


/*********
 * 
 *  内部交互函数
 * 
 * *****************/
T_JZsdkReturnCode VideoMgmt_VideoStreamToDeal(unsigned char *data, unsigned int data_len);
int VideoMgmt_GetVideoStreamFlowIndexNum();

/*************
 * 
 *  单线程输入函数
 * 
 * **************/
T_JZsdkReturnCode VideoMgmt_Single_FrameIn(unsigned char *FrmaeData,unsigned int FrmaeDataLen);

#ifdef __cplusplus
}
#endif

#endif