aboutsummaryrefslogtreecommitdiff
path: root/include/linux/vcodec/venc_drv_if_dep.h
blob: 6185ae10c94732cbc43e6a4529ae55de2125bf1a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#ifndef VENC_DRV_IF_DEP_H
#define VENC_DRV_IF_DEP_H

/*=============================================================================
 *                              Include Files
 *===========================================================================*/

#include "val_types_private.h"
#include "vcodec_if_v2.h"

#ifdef __cplusplus
extern "C" {
#endif

/*=============================================================================
 *                              Type definition
 *===========================================================================*/

/**
 * @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_HANDLE_T
{
    VAL_HANDLE_T            hHalHandle;    ///< HAL data.
    VAL_HANDLE_T            vdriver_Handle;       ///< for MMSYS power on/off
    VAL_MEMORY_T            rHandleMem;    ///< Save handle memory information to be used in release.
    VAL_BOOL_T              bFirstDecoded; /// < already pass first video data to codec
    VAL_BOOL_T              bHeaderPassed; /// < already pass video header to codec
    VAL_BOOL_T              bFlushAll;
    VAL_MEMORY_T            HeaderBuf;
    VAL_HANDLE_T            hCodec;
    //    DRIVER_HANDLER_T        hDrv;
    VAL_UINT32_T            CustomSetting;
    VCODEC_MEMORY_TYPE_T    rVideoDecMemType;
    VAL_UINT32_T            nYUVBufferIndex;
    VCODEC_OPEN_SETTING_T   codecOpenSetting;

    mhalVdoDrv_t            rMhalVdoDrv;
    VAL_MEMORY_T            bs_driver_workingmem;

    // Morris Yang 20110411 [
    VENC_DRV_VIDEO_FORMAT_T CodecFormat;
    VAL_VOID_T              *prExtraData;  ///< Driver private data pointer.
    VAL_MEMORY_T             rExtraDataMem; ///< Save extra data memory information to be used in release.
    //  ]
    VAL_UINT32_T  nOmxTids;
#if 1   //defined(MT6572)     //VCODEC_MULTI_THREAD
    // Jackal Chen [
    VAL_VOID_T              *pDrvModule;    ///< used for dlopen and dlclose
    // ]
#endif
    VIDEO_ENC_WRAP_HANDLE_T hWrapper;
} VENC_HANDLE_T;


#ifdef __cplusplus
}
#endif

#endif /* VENC_DRV_IF_DEP_H */