aboutsummaryrefslogtreecommitdiff
path: root/kernel-headers/venc_drv_base.h
diff options
context:
space:
mode:
authorMister Oyster <oysterized@gmail.com>2017-01-02 12:44:35 +0100
committerMister Oyster <oysterized@gmail.com>2017-01-02 12:44:35 +0100
commita184d985bf43d3fe6eeba971bc6b32f79ea38b37 (patch)
tree6f6e56e090777cc149bc1ab39e5987cc2b03e867 /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.h102
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