diff options
| author | Mister Oyster <oysterized@gmail.com> | 2017-01-02 12:44:35 +0100 |
|---|---|---|
| committer | Mister Oyster <oysterized@gmail.com> | 2017-01-02 12:44:35 +0100 |
| commit | a184d985bf43d3fe6eeba971bc6b32f79ea38b37 (patch) | |
| tree | 6f6e56e090777cc149bc1ab39e5987cc2b03e867 /kernel-headers/venc_drv_base.h | |
initial releasecm-13.0
Diffstat (limited to 'kernel-headers/venc_drv_base.h')
| -rw-r--r-- | kernel-headers/venc_drv_base.h | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/kernel-headers/venc_drv_base.h b/kernel-headers/venc_drv_base.h new file mode 100644 index 0000000..ff02e7b --- /dev/null +++ b/kernel-headers/venc_drv_base.h @@ -0,0 +1,102 @@ +#include "venc_drv_if_private.h" +#include "vcodec_if_v2.h" + +#include <sys/time.h> + +#ifndef _VENC_DRV_BASE_ +#define _VENC_DRV_BASE_ + +#define DO_VCODEC_RESET(cmd, index) \ + { \ + } + +typedef enum __VDDRV_MRESULT_T { + VDDRV_MRESULT_SUCCESS = VAL_TRUE, /* /< Represent success */ + VDDRV_MRESULT_FAIL = VAL_FALSE /* /< Represent failure */ +} VDDRV_MRESULT_T; + +typedef struct __VENC_DRV_BASE_T { + VAL_UINT32_T(*Init)( + VAL_HANDLE_T * handle, + VAL_HANDLE_T halhandle, + VAL_HANDLE_T valhandle + ); + VAL_UINT32_T(*Encode)( + VAL_HANDLE_T handle, + VENC_DRV_START_OPT_T eOpt, + P_VENC_DRV_PARAM_FRM_BUF_T pFrameBuf, + P_VENC_DRV_PARAM_BS_BUF_T pBitstreamBuf, + VENC_DRV_DONE_RESULT_T * pResult + ); + VAL_UINT32_T(*GetParam)( + VAL_HANDLE_T handle, + VENC_DRV_GET_TYPE_T a_eType, + VAL_VOID_T * a_pvInParam, + VAL_VOID_T * a_pvOutParam + ); + VAL_UINT32_T(*SetParam)( + VAL_HANDLE_T handle, + VENC_DRV_SET_TYPE_T a_eType, + VAL_VOID_T * a_pvInParam, + VAL_VOID_T * a_pvOutParam + ); + VAL_UINT32_T(*DeInit)( + VAL_HANDLE_T handle + ); /* /< Function to do driver de-initialization */ +} VENC_DRV_BASE_T; + +/** + * @par Structure + * mhalVdoDrv_t + * @par Description + * This is a structure which store common video enc driver information + */ +typedef struct mhalVdoDrv_s { + VAL_VOID_T *prCodecHandle; + VAL_UINT32_T u4EncodedFrameCount; + VCODEC_ENC_CALLBACK_T rCodecCb; + VIDEO_ENC_API_T *prCodecAPI; + VENC_BS_T pBSBUF; + + VCODEC_ENC_BUFFER_INFO_T EncoderInputParamNC; + VENC_DRV_PARAM_BS_BUF_T BSout; + VENC_HYBRID_ENCSETTING rVencSetting; + VAL_UINT8_T *ptr; +} mhalVdoDrv_t; + + +typedef struct __VENC_HYBRID_HANDLE_T { + mhalVdoDrv_t rMhalVdoDrv; + VAL_MEMORY_T rBSDrvWorkingMem; + VAL_UINT32_T nOmxTids; + VAL_VCODEC_THREAD_ID_T rThreadID; + VIDEO_ENC_WRAP_HANDLE_T hWrapper; + VAL_VOID_T *pDrvModule; /* /< used for dlopen and dlclose */ +} VENC_HYBRID_HANDLE_T; + + +typedef struct __VENC_HANDLE_T { + VENC_DRV_VIDEO_FORMAT_T CodecFormat; + VENC_DRV_BASE_T rFuncPtr; /* /< Point to driver's proprietary function. */ + VAL_HANDLE_T hDrvHandle; /* /< Handle of each format driver */ + VAL_HANDLE_T hHalHandle; /* /< HAL handle */ + VAL_HANDLE_T hValHandle; /* /< VAL handle */ + VAL_MEMORY_T rHandleMem; /* /< Memory for venc handle */ + VAL_VOID_T *prExtraData; /* /< Driver private data pointer. */ + VAL_MEMORY_T rExtraDataMem; /* /< Save extra data memory information to be used in release. */ + VENC_HYBRID_HANDLE_T rHybridHandle; /* /< Hybrid handle */ + FILE *pfDump; + VAL_UINT32_T u4ShowInfo; /* /< Flag for show FPS and BitRate */ + VAL_UINT32_T u4FPS; /* /< FPS */ + VAL_UINT32_T u4Bitrate; /* /< Bitrate */ + struct timeval tStart; /* /< Start time counting FPS and bitrate */ + VENC_DRV_SCENARIO_T eScenario; /* /< VENC Senario */ + VAL_INT32_T nPerfServiceHandle; /* /< Used by performace service */ + VAL_UINT32_T u4RecFrmWidth; /* /< Recoded frame width, (may not 16 byte-align) */ + VAL_UINT32_T u4RecFrmHeight; /* /< Recoded frame height, (may not 16 byte-align) */ +} VENC_HANDLE_T; + +VENC_DRV_MRESULT_T ParseConfig(const char *cfgFileName, const char *ParameterItem, VAL_UINT32_T *val); + + +#endif |
