aboutsummaryrefslogtreecommitdiff
path: root/include/linux/vcodec/video_custom_sp.h
blob: 881c128badfc32061aae0469894d8b05ff89da13 (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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
/**
 * @file
 *   video_custom_sp.h
 *
 * @par Project:
 *   Video
 *
 * @par Description:
 *   Video Codec Driver & Codec Liabrary Interface
 *
 * @par Author:
 *   Jackal Chen (mtk02532)
 *
 * @par $Revision: #1 $
 * @par $Modtime:$
 * @par $Log:$
 *
 */

#ifndef VIDEO_CUSTOM_SP_H
#define VIDEO_CUSTOM_SP_H

//#include "video_codec_if_sp.h"
#include "vcodec_if_v2.h"

#define ASSERT(expr)                                            \
    do {                                                        \
        if (!(expr))                                            \
            AssertionFailed(__func__,__FILE__, __LINE__);   \
    } while (0)     ///< ASSERT definition

/******************************************************************************
 *
 *
 * decode
 *
 *
******************************************************************************/


/**
 * @par Enumeration
 *   VIDEO_DECODER_T
 * @par Description
 *   This is the item for video decoder format
 */
typedef enum _VIDEO_DECODER_T
{
    CODEC_DEC_NONE      = 0,            ///< NONE
    CODEC_DEC_H263      = (0x1 << 0),   ///< H263
    CODEC_DEC_MPEG4     = (0x1 << 1),   ///< MPEG4
    CODEC_DEC_H264      = (0x1 << 2),   ///< H264
    CODEC_DEC_RV        = (0x1 << 3),   ///< RV
    CODEC_DEC_VC1       = (0x1 << 4),   ///< VC1
    CODEC_DEC_VP8       = (0x1 << 5),   ///< VP8
    CODEC_DEC_VP9       = (0x1 << 6),   ///< VP9
    CODEC_DEC_HEVC      = (0x1 << 7),   ///< HEVC
    CODEC_DEC_MPEG2     = (0x1 << 8),   ///< MPEG2
    CODEC_DEC_MAX       = (0x1 << 9)    ///< MAX
} VIDEO_DECODER_T;

#if 1   //defined(MT6572)     //VCODEC_MULTI_THREAD


/**
 * @par Function
 *   GetDecoderAPI
 * @par Description
 *   The function used to get decoder API for codec library
 * @param
 *   eDecType           [IN] decoder type
 * @param
 *   hWrapper           [IN] wrapper
 * @param
 *   ppDrvModule        [IN/OUT] driver module
 * @param
 *   bUseMultiCoreCodec [IN] multi core codec flag
 * @par Returns
 *   VIDEO_DEC_API_T,   the decoder API
 */
VIDEO_DEC_API_T  *GetDecoderAPI(VIDEO_DECODER_T eDecType, HANDLE hWrapper, void **ppDrvModule, unsigned int bUseMultiCoreCodec);
#else
VIDEO_DEC_API_T  *GetDecoderAPI(VIDEO_DECODER_T, HANDLE); // HANDLE : wrapper's handle
#endif
//VCODEC_DEC_API_T *GetMPEG4DecoderAPI(void);
//VCODEC_DEC_API_T *GetH264DecoderAPI(void);
//VCODEC_DEC_API_T *GetRVDecoderAPI(void);
//VCODEC_DEC_API_T *GetVP8DecoderAPI(void);
//VCODEC_DEC_API_T *GetVC1DecoderAPI(void);


/******************************************************************************
*
*
* encode
*
*
******************************************************************************/


/**
 * @par Enumeration
 *   VIDEO_ENCODER_T
 * @par Description
 *   This is the item for video decoder format
 */
typedef enum _VIDEO_ENCODER_T
{
    CODEC_ENC_NONE      = 0,            ///< NONE
    CODEC_ENC_H263      = (0x1 << 0),   ///< H263
    CODEC_ENC_MPEG4     = (0x1 << 1),   ///< MPEG4
    CODEC_ENC_H264      = (0x1 << 2),   ///< H264
    CODEC_ENC_HEVC      = (0x1 << 3),   ///< HEVC
    CODEC_ENC_VP8       = (0x1 << 5),   ///< VP8
    CODEC_ENC_VP9       = (0x1 << 6),   ///< VP9
    CODEC_ENC_MAX       = (0x1 << 7)    ///< MAX
} VIDEO_ENCODER_T;


/**
 * @par Function
 *   GetEncoderAPI
 * @par Description
 *   The function used to get encoder API for codec library
 * @param
 *   eEncType           [IN] encoder type
 * @param
 *   hWrapper           [IN] wrapper
 * @param
 *   ppDrvModule        [IN/OUT] driver module
 * @param
 *   bUseMultiCoreCodec [IN] multi core codec flag
 * @par Returns
 *   VIDEO_DEC_API_T,   the encoder API
 */
VIDEO_ENC_API_T *GetEncoderAPI(VIDEO_ENCODER_T eEncType, HANDLE hWrapper, void **ppDrvModule, unsigned int bUseMultiCoreCodec);
//VCODEC_ENC_API_T *GetMPEG4EncoderAPI(void);
//VCODEC_ENC_API_T* GetH264EncoderAPI(void);
//VIDEO_ENCODER_API_T *GetVP8EncoderAPI(void);


#endif /* VIDEO_CUSTOM_SP_H */