⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hi_comm_venc.h

📁 嵌入式linux系统下hi3510平台的osd开发源码
💻 H
📖 第 1 页 / 共 2 页
字号:
/******************************************************************************  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 + -