hal_custom_video_if.h
12.1 KB
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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
/*****************************************************************************
* Filename:
* ---------
* hal_custom_video_if.h
*
* Project:
* --------
* MAUI
*
* Description:
* ------------
* This file is for customization of video features
*
* Author:
* -------
* -------
*
*============================================================================
* HISTORY
* Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*------------------------------------------------------------------------------
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
*
*------------------------------------------------------------------------------
* Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*============================================================================
****************************************************************************/
#ifndef __HAL_CUSTOM_VIDEO_IF_H__
#define __HAL_CUSTOM_VIDEO_IF_H__
#include "drv_features_video.h"
#include "video_codec_custom_type.h"
/******************************************************************************
*
* Note that the definitions in this interface file should NOT be removed
*
******************************************************************************/
/******************************************************************************
* Settings of the buffer of video decoder
******************************************************************************/
//MPEG4 Decode
//#define MPEG4_DEC_CUSTOM_FRAME_SETTING_ENABLE
#ifdef MPEG4_DEC_CUSTOM_FRAME_SETTING_ENABLE
#define MPEG4_CUSTOM_EXTRA_BUFFER_NUM_SP (3)
#define MPEG4_CUSTOM_MAX_NORMAL_MODE_RESOLUTION_SP (RESOLUTION_720x480)
//#define MPEG4_CUSTOM_SUPPORT_RESOLUTION_1_TO_2_SP (RESOLUTION_720x480)
#define MPEG4_CUSTOM_SUPPORT_RESOLUTION_SP (RESOLUTION_720x480)
#define MPEG4_CUSTOM_SUPPORT_RESOLUTION_1_TO_8_SP (RESOLUTION_720x480)
#ifdef __MP4_DEC_SW_SUPPORT_ASP__
#define MPEG4_CUSTOM_EXTRA_BUFFER_NUM_ASP (3)
#define MPEG4_CUSTOM_MAX_NORMAL_MODE_RESOLUTION_ASP (RESOLUTION_720x480)
//#define MPEG4_CUSTOM_SUPPORT_RESOLUTION_1_TO_2_ASP (RESOLUTION_720x480)
#define MPEG4_CUSTOM_SUPPORT_RESOLUTION_ASP (RESOLUTION_720x480)
#define MPEG4_CUSTOM_SUPPORT_RESOLUTION_1_TO_8_ASP (RESOLUTION_720x480)
#endif
#endif /* MPEG4_DEC_CUSTOM_FRAME_SETTING_ENABLE */
//H264 Decode
//#define H264_DEC_CUSTOM_FRAME_SETTING_ENABLE
#ifdef H264_DEC_CUSTOM_FRAME_SETTING_ENABLE
#define H264_CUSTOM_EXTRA_BUFFER_NUM_BP (6)
#define H264_CUSTOM_SUPPORT_RESOLUTION_BP (RESOLUTION_848x480)
#define H264_CUSTOM_MAX_NORMAL_MODE_RESOLUTION_BP (RESOLUTION_848x480)
#define H264_CUSTOM_DECODER_LEVEL_BP (Level_22)
#ifdef __H264_DEC_SW_SUPPORT_MAINHIGH__
#define H264_CUSTOM_EXTRA_BUFFER_NUM_MPHP (6)
#define H264_CUSTOM_SUPPORT_RESOLUTION_MPHP (RESOLUTION_848x480)
#define H264_CUSTOM_MAX_NORMAL_MODE_RESOLUTION_MPHP (RESOLUTION_848x480)
#define H264_CUSTOM_DECODER_LEVEL_MPHP (Level_22)
#endif
#endif /* H264_DEC_CUSTOM_FRAME_SETTING_ENABLE */
//RM Decode
//#define RV_DEC_CUSTOM_FRAME_SETTING_ENABLE
#ifdef RV_DEC_CUSTOM_FRAME_SETTING_ENABLE
#define RV_CUSTOM_EXTRA_BUFFER_NUM (0)
#define RV_CUSTOM_SUPPORT_RESOLUTION (RESOLUTION_720x576)
#define RV_CUSTOM_MAX_NORMAL_MODE_RESOLUTION (RESOLUTION_640x480)
#endif /* RV_DEC_CUSTOM_FRAME_SETTING_ENABLE */
//Motion Jpeg Decode
//#define MJPEG_DEC_CUSTOM_FRAME_SETTING_ENABLE
#ifdef MJPEG_DEC_CUSTOM_FRAME_SETTING_ENABLE
#define MJPEG_CUSTOM_EXTRA_BUFFER_NUM (1)
#define MJPEG_CUSTOM_SUPPORT_RESOLUTION (RESOLUTION_352x288)
#define MJPEG_CUSTOM_MAX_QTY_MODE_RESOLUTION (RESOLUTION_352x288)
#define MJPEG_CUSTOM_MAX_NORMAL_MODE_RESOLUTION (RESOLUTION_352x288)
#endif /* MJPEG_DEC_CUSTOM_FRAME_SETTING_ENABLE */
//VP8 Decode
//#define VP8_DEC_CUSTOM_FRAME_SETTING_ENABLE
#ifdef VP8_DEC_CUSTOM_FRAME_SETTING_ENABLE
#define VP8_CUSTOM_EXTRA_BUFFER_NUM (0)
#define VP8_CUSTOM_SUPPORT_RESOLUTION (RESOLUTION_720x576)
#define VP8_CUSTOM_MAX_NORMAL_MODE_RESOLUTION (RESOLUTION_640x480)
#endif /* VP8_DEC_CUSTOM_FRAME_SETTING_ENABLE */
/**********************************************************************************
* Settings of the buffer of video encoder
*
* Explanation
* 1. ~EXTRA_YUV_NUM: Additional frame buffer for video encoder (Unit: frame)
* 2. ~BIT_BUFFER_SIZE: The size of bitstream buffer (Unit: Byte)
* 3. ~SUPPORT_RESOLUTION: The maximum resolution supporter (Unit: pixel x pixel)
**********************************************************************************/
//MPEG4 Encode
//#define MPEG4_ENC_CUSTOM_FRAME_SETTING_ENABLE
#ifdef MPEG4_ENC_CUSTOM_FRAME_SETTING_ENABLE
#define MPEG4_ENC_CUSTOM_EXTRA_YUV_FRAME_NUM (0)
#define MPEG4_ENC_CUSTOM_BIT_BUFFER_SIZE (262144)
#define MPEG4_ENC_CUSTOM_SUPPORT_RESOLUTION (RESOLUTION_800x480)
#endif /* MPEG4_ENC_CUSTOM_FRAME_SETTING_ENABLE */
//MJPEG Encode
//#define MJPEG_ENC_CUSTOM_FRAME_SETTING_ENABLE
#ifdef MJPEG_ENC_CUSTOM_FRAME_SETTING_ENABLE
#define MJPEG_ENC_CUSTOM_EXTRA_YUV_FRAME_NUM (0)
#define MJPEG_ENC_CUSTOM_BIT_BUFFER_SIZE (262144)
#define MJPEG_ENC_CUSTOM_SUPPORT_RESOLUTION (RESOLUTION_176x144)
#endif /* MJPEG_ENC_CUSTOM_FRAME_SETTING_ENABLE */
//H264 Encode
//#define H264_ENC_CUSTOM_FRAME_SETTING_ENABLE
#ifdef H264_ENC_CUSTOM_FRAME_SETTING_ENABLE
#define H264_ENC_CUSTOM_EXTRA_YUV_FRAME_NUM (0)
#define H264_ENC_CUSTOM_BIT_BUFFER_SIZE (262144)
#define H264_ENC_CUSTOM_SUPPORT_RESOLUTION (RESOLUTION_480x320)
#endif /* H264_ENC_CUSTOM_FRAME_SETTING_ENABLE */
//MPEG4 HW Encode
//#define MPEG4_HW_ENC_CUSTOM_FRAME_SETTING_ENABLE
#ifdef MPEG4_HW_ENC_CUSTOM_FRAME_SETTING_ENABLE
#define MPEG4_HW_ENC_CUSTOM_EXTRA_YUV_FRAME_NUM (0)
#define MPEG4_HW_ENC_CUSTOM_BIT_BUFFER_SIZE (262144)
#endif /* MPEG4_HW_ENC_CUSTOM_FRAME_SETTING_ENABLE */
//MJPEG HW Encode (directly coupled)
// Management of multiple fixed-sized bitstream buffers are utilized for
// MJPG HW Encode
//#define MJPEG_HW_ENC_CUSTOM_FRAME_SETTING_ENABLE
#ifdef MJPEG_HW_ENC_CUSTOM_FRAME_SETTING_ENABLE
// This is the extra size of each bitstream buffer
#define MJPEG_HW_ENC_CUSTOM_EXTRA_BITSTREAM (0)
// This is the extra number of the bitstream buffer
#define MJPEG_HW_ENC_CUSTOM_EXTRA_BITSTREAM_BUFFER_NUM (1)
#endif /* MJPEG_HW_ENC_CUSTOM_FRAME_SETTING_ENABLE */
/******************************************************************************
* Settings of Muxer
******************************************************************************/
// MP4 muxer
//#define ENABLE_MP4_MUXER_CUSTOM_SETTING
#ifdef ENABLE_MP4_MUXER_CUSTOM_SETTING
#define CUSTOM_MP4_STTS_ARRAY_SIZE_IN_BYTE (8096)
#define CUSTOM_MP4_STSZ_ARRAY_SIZE_IN_BYTE (8096)
#define CUSTOM_MP4_STCO_ARRAY_SIZE_IN_BYTE (8096)
#define CUSTOM_MP4_STSS_ARRAY_SIZE_IN_BYTE (8096)
#endif //ENABLE_MP4_MUXER_CUSTOM_SETTING
// AVI muxer
//#define ENABLE_AVI_MUXER_CUSTOM_SETTING
#ifdef ENABLE_AVI_MUXER_CUSTOM_SETTING
#define CUSTOM_AVI_ONE_DATA_BUFF_SIZE (64*1024)
#define CUSTOM_AVI_DATA_BUFF_EXTRA_NUM (0)
#define CUSTOM_AVI_ONE_IDX_BUFF_SIZE (4*1024)
#define CUSTOM_AVI_IDX_BUFF_EXTRA_NUM (0)
#endif //ENABLE_AVI_MUXER_CUSTOM_SETTING
/******************************************************************************
* Setting of rate control (6268 only)
******************************************************************************/
// The interval between intra frames (Unit: second)
#define I_FRAME_REFRESH_RATE (2)
/******************************************************************************
* Setting of custom array table, for jump to i & lossy setting
******************************************************************************/
/* MP4 custom table */
//#define MP4_CUSTOM_TABLE_SETTING_ENABLE
#ifdef MP4_CUSTOM_TABLE_SETTING_ENABLE
// MP4 custom arrary element
//TABLE_SETTING_0 : the delta time of A/V to trigger jump to i event. delta time: millisecond
//TABLE_SETTING_1 : the delta time of A/V to trigger stop audio and re-sync A/V event. delta time: millisecond
//TABLE_SETTING_2 : the delta time to find the jumping target. delta time: millisecond
#define MP4_CUSTOM_TABLE_SETTING_0 (500)
#define MP4_CUSTOM_TABLE_SETTING_1 (3000)
#define MP4_CUSTOM_TABLE_SETTING_2 (400)
#define MP4_CUSTOM_TABLE_SETTING_3 (2000)
#endif /* MP4_CUSTOM_TABLE_SETTING_ENABLE */
/* RM custom table */
//#define RM_CUSTOM_TABLE_SETTING_ENABLE
#ifdef RM_CUSTOM_TABLE_SETTING_ENABLE
// RM custom arrary element
//TABLE_SETTING_0 : the delta time of A/V to trigger jump to i event. delta time: millisecond
//TABLE_SETTING_1 : the delta time of A/V to trigger stop audio and re-sync A/V event. delta time: millisecond
//TABLE_SETTING_2 : the delta time to find the jumping target. delta time: millisecond
#define RM_CUSTOM_TABLE_SETTING_0 (30)
#define RM_CUSTOM_TABLE_SETTING_1 (10000)
#define RM_CUSTOM_TABLE_SETTING_2 (400)
#define RM_CUSTOM_TABLE_SETTING_3 (2000)
#endif /* RM_CUSTOM_TABLE_SETTING_ENABLE */
/* H264 custom table */
//#define H264_CUSTOM_TABLE_SETTING_ENABLE
#ifdef H264_CUSTOM_TABLE_SETTING_ENABLE
// H264 custom arrary element
//TABLE_SETTING_0 : the delta time of A/V to trigger jump to i event. delta time: millisecond
//TABLE_SETTING_1 : the delta time of A/V to trigger stop audio and re-sync A/V event. delta time: millisecond
//TABLE_SETTING_2 : the delta time to find the jumping target. delta time: millisecond
#define H264_CUSTOM_TABLE_SETTING_0 (500)
#define H264_CUSTOM_TABLE_SETTING_1 (3000)
#define H264_CUSTOM_TABLE_SETTING_2 (400)
#define H264_CUSTOM_TABLE_SETTING_3 (2000)
#endif /* H264_CUSTOM_TABLE_SETTING_ENABLE */
/* VP8 custom table */
//#define VP8_CUSTOM_TABLE_SETTING_ENABLE
#ifdef VP8_CUSTOM_TABLE_SETTING_ENABLE
// VP8 custom arrary element
//TABLE_SETTING_0 : the delta time of A/V to trigger jump to i event. delta time: millisecond
//TABLE_SETTING_1 : the delta time of A/V to trigger stop audio and re-sync A/V event. delta time: millisecond
//TABLE_SETTING_2 : the delta time to find the jumping target. delta time: millisecond
#define VP8_CUSTOM_TABLE_SETTING_0 (500)
#define VP8_CUSTOM_TABLE_SETTING_1 (3000)
#define VP8_CUSTOM_TABLE_SETTING_2 (400)
#define VP8_CUSTOM_TABLE_SETTING_3 (2000)
#endif /* VP8_CUSTOM_TABLE_SETTING_ENABLE */
/******************************************************************************
* Setting of the maximum numbers of subtitle track
******************************************************************************/
//#define CUSTOMIZE_MAX_SUBTITLE_TRACK_NUMBER
#ifdef CUSTOMIZE_MAX_SUBTITLE_TRACK_NUMBER
#define CUSTOM_SUBTITLE_TRACK_NUMBER 5 //Can be ranged from [1:16]
#endif
/* Video Clipper custom table */
//#define ENABLE_VIDEO_CLIPPER_CUSTOM_SETTING
#ifdef ENABLE_VIDEO_CLIPPER_CUSTOM_SETTING
#define CUSTOM_MPLVC_ONE_VIDEO_BUFFER_SIZE (512 * 1024)
#define CUSTOM_MPLVC_ONE_AUDIO_BUFFER_SIZE (32 * 1024)
#endif /* ENABLE_VIDEO_CLIPPER_CUSTOM_SETTING */
#endif // __HAL_CUSTOM_VIDEO_IF_H__