aboutsummaryrefslogtreecommitdiff
path: root/kernel-headers/video_custom_sp.h
blob: 933267f43cd8f77135eff42231627ae5d54ba569 (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
#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 */