📄 hi_comm_venc.h
字号:
/****************************************************************************** Copyright (C), 2001-2011, Hisilicon Tech. Co., Ltd. ****************************************************************************** File Name : hi_comm_venc.h Version : Initial Draft Author : Hisilicon multimedia software group Created : 2006/1/13 Last Modified : Description : hi_dvs_venc.c header file Function List : History : 1.Date : 2006/1/13 Author : qushen Modification: Created file******************************************************************************/#ifndef __HI_COMM_VENC_H__#define __HI_COMM_VENC_H__#ifdef __cplusplus#if __cplusplusextern "C"{#endif#endif /* __cplusplus */#include "hi_type.h"#include "hi_struct.h"#define VENC_MAX_NALU_NUM_IN_FRAME 256 /*max number of slice in one frame*/#define VENC_STREAM_OFFSET 12 /*stream offset */#define MAX_IMG_WIDTH 720#define MAX_IMG_HEIGHT 288#define MAX_IMG_STRIDE (MAX_IMG_WIDTH + (64 - MAX_IMG_WIDTH%64))#define MAX_IMG_SIZE (MAX_IMG_STRIDE*MAX_IMG_HEIGHT*2)#define HI_ERR_VENC_NOT_OPEN HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 1) #define HI_ERR_VENC_REOPEN HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 2) #define HI_ERR_VENC_INVALID_VICHN HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 3) #define HI_ERR_VENC_INVALID_VENCCHN HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 4) #define HI_ERR_VENC_OPEN_DEVICE HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 5) #define HI_ERR_VENC_CHN_NOT_CREATED HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 6) #define HI_ERR_VENC_MAX_CHN HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 7) #define HI_ERR_VENC_DESTROY_RUNCHN HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 8) #define HI_ERR_VENC_CHN_START_ENCODE HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 9)#define HI_ERR_VENC_SPREPARE_ENCDATA HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 10)#define HI_ERR_VENC_CHN_NOT_START HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 11)#define HI_ERR_VENC_STOP_ENCDATA HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 12)#define HI_ERR_VENC_CHN_STOP_ENCODE HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 13)#define HI_ERR_VENC_INVALID_VENC_CONFIG HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 14)#define HI_ERR_VENC_MAX_STREAM_NUM HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 15)#define HI_ERR_VENC_MODE_NOT_MATCH HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 16)#define HI_ERR_VENC_CHN_ALREADY_PLAY HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 17) #define HI_ERR_VENC_STATIC_PARAM HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 18) #define HI_ERR_VENC_UNSUPPORT_CODEC_TYPE HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 19) /*start by v, cannot stop by av, vice versa*/#define HI_ERR_VENC_CHN_STOP_PRIVILEGE HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 21) #define HI_ERR_VENC_CHN_GETSTREAM_PRIVILEGE HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 22) #define HI_ERR_VENC_CHN_GETSTREAM HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 23) #define HI_ERR_VENC_CHN_RELEASESTREAM HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 24) #define HI_ERR_VENC_CHN_REQUEST_I_FRAME HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 25)#define HI_ERR_VENC_CHN_RELEASEBUFS HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 26)#define HI_ERR_VENC_CHN_CLOSEFD HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 27)#define HI_ERR_VENC_CHN_ATTR_SET HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 28)#define HI_ERR_VENC_CHN_ATTR_GET HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 29)#define HI_ERR_VENC_CHN_BRC_SET HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 30)#define HI_ERR_VENC_CHN_BRC_GET HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 31)#define HI_ERR_VENC_CHN_PREPAREBUFS HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 32)#define HI_ERR_JPEG_INVALID_PTR HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 33) #define HI_ERR_JPEG_INVALID_QVALUE HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 34) #define HI_ERR_JPEG_INVALID_CHNNUM HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 35) #define HI_ERR_JPEG_CHN_FAILED_GETVIDEO HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 36) #define HI_ERR_VENC_CHN_FAILED_GETVIDEO HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 37) #define HI_ERR_VENC_CHN_NOT_GETVIDEO HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 38) #define HI_ERR_VENC_INVALID_LEN HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 40) #define HI_ERR_VENC_INVALID_FRAMETYPE HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 41) #define HI_ERR_VENC_INVALID_PTR HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 43) #define HI_ERR_VENC_CHN_FAILED_INSERTUSERINFO HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 44) #define HI_ERR_VENC_VIMASK HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 45)#define HI_ERR_VENC_INVALID_CONFIG_TYPE HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 46)#define HI_ERR_VENC_MAX_CAP HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 47) #define HI_ERR_VENC_INVALID_SIZE HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 48) #define HI_ERR_VENC_INVALID_BPS HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 49) #define HI_ERR_VENC_INVALID_FPS HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 50) #define HI_ERR_VENC_INVALID_GOP HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 51) #define HI_ERR_VENC_INVALID_MAXQP HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 52) #define HI_ERR_VENC_INVALID_MODE HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 53) #define HI_ERR_VENC_CHN_ATTR_WIDTHFORBID HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 54) #define HI_ERR_VENC_CHN_ATTR_HEIGHTFORBID HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 55) #define HI_ERR_VENC_CHN_ATTR_MODEFORBID HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 56) #define HI_ERR_VENC_INVALID_BASEQP HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 57) #define HI_ERR_VENC_INVALID_MAXBPS HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 58) #define HI_ERR_VENC_INVALID_GRAPHIC_FRAMERATE HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 59) #define HI_ERR_VENC_CHN_ATTR_FORBIDEN HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 60) #define HI_ERR_VENC_CHN_BIND HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 61) #define HI_ERR_VENC_CODEC_TYPE HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 62) #define HI_ERR_VENC_INVALID_PARA HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 63) #define HI_ERR_VENC_CHN_OVERFLOW HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 64) #define HI_ERR_VENC_BUF_EMPTY HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 65) #define HI_ERR_VENC_CHN_WMSETATTR_FORBIDDEN HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 66) #define HI_ERR_VENC_CHN_WMSETATTR_FAILED HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 67) #define HI_ERR_VENC_CHN_WMSTART_FORBIDDEN HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 68) #define HI_ERR_VENC_CHN_WMSTART_FAILED HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 69) #define HI_ERR_VENC_CHN_WMGETATTR_FAILED HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 70) #define HI_ERR_VENC_CHN_INVALID_WMDENSITY HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 71) #define HI_ERR_VENC_INVALID_STRATEGY HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 72) #define HI_ERR_VENC_CHN_SETBUFFLEN_FAILED HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 73) #define HI_ERR_VENC_CHN_GETBUFFLEN_FAILED HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 74) #define HI_ERR_VENC_INVALID_CAPSELMODE HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 75)#define HI_ERR_VENC_INVALID_STATICPARAM HI_DEF_ERR(HI_ID_VENC, HI_LOG_LEVEL_ERROR, 76)typedef enum hiVENC_FORMAT_E{ VENC_FORMAT_H261 = 0, /*H261 */ VENC_FORMAT_H263 = 1, /*H263 */ VENC_FORMAT_MPEG2 = 2, /*MPEG2 */ VENC_FORMAT_MPEG4 = 3, /*MPEG4 */ VENC_FORMAT_H264 = 4, /*H264 */ VENC_FORMAT_MJPEG = 5, /*MOTION_JPEG*/ VENC_FORMAT_BUTT} VENC_FORMAT_E;typedef struct hiVENC_INIT_S{ VENC_FORMAT_E enVencType; /*encode type*/ HI_U32 reserved; /*reserved*/} VENC_INIT_S;typedef enum hiVENC_CONFIG_TYPE_E{ VENC_PICWIDTH = 0, VENC_PICHEIGHT, VENC_CAPSEL, VENC_STATICPARAM, VENC_TARGET_BITRATE, VENC_TARGET_FRAMERATE, VENC_GOP, VENC_MAX_QP, VENC_PREFRAMERATE, VENC_STRATEGY, VENC_MODE, VENC_BASEQP, VENC_MAXBPS, VENC_UMV, VENC_DF, VENC_MQ, VENC_UPDATETIME, VENC_CONFIG_ALL_H264, VENC_CONFIG_ALL_H263, VENC_CONFIG_BUTT} VENC_CONFIG_TYPE_E;typedef struct hiVENC_CONFIG_TYPE_S{ VENC_FORMAT_E enVencType; /*encode type*/ VENC_CONFIG_TYPE_E attrType;} VENC_CONFIG_TYPE_S;typedef enum hiVENC_BITRATE_MODE_E{ VENC_CBR_MODE = 0, VENC_VBR_MODE, VENC_BITRATE_MODE_BUTT }VENC_BITRATE_MODE_E;typedef enum hiVENC_GRAPHIC_FRAMERATE_E{ VENC_PREFERGRAPHIC_MODE = 0, /* graphic preference */ VENC_PREFERFRAMERATE_MODE, /* frame rate preference */ VENC_GRAPHIC_FRAMERATE_BUTT }VENC_GRAPHIC_FRAMERATE_E;typedef enum hiVENC_STREAM_TYPE_E{ VENC_STREAM_SLICE = 0, /*slice*/ VENC_STREAM_FRAME, /*frame*/ VENC_STREAM_PRIVATEDATA, /*private data*/ VENC_STREAM_BUTT} VENC_STREAM_TYPE_E;typedef enum hiVENC_WMDENSITY_E{ VENC_WMDENSITY_LOW = 0, /*water mark density low */ VENC_WMDENSITY_MIDDLE, /*water mark density middle*/ VENC_WMDENSITY_HIGH, /*water mark density high*/ VENC_WMDENSITY_BUTT } VENC_WMDENSITY_E;typedef struct hiIO_VECTOR_S{ HI_VOID *pAddr; HI_S32 u32Len;}IO_VECTOR_S;typedef struct hiVENC_DATA_S{ HI_VOID *pAddr; HI_S32 u32Len;}VENC_DATA_S;typedef struct hiVENC_STREAM_INFO_S{ HI_U64 u64PTS; /*time stamp*/ HI_U16 u16IFrameFlag; /*the flag of I frame */ HI_U16 reserved; /*reserved*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -