import PULS_20160108
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / include / linux / vcodec / val_types_public.h
1 /**
2 * @file
3 * val_types_public.h
4 *
5 * @par Project:
6 * Video
7 *
8 * @par Description:
9 * Video Abstraction Layer Type Definitions for external use
10 *
11 * @par Author:
12 * Jackal Chen (mtk02532)
13 *
14 * @par $Revision: #1 $
15 * @par $Modtime:$
16 * @par $Log:$
17 *
18 */
19
20 #ifndef _VAL_TYPES_PUBLIC_H_
21 #define _VAL_TYPES_PUBLIC_H_
22
23 //#include <sys/types.h>
24 //#include <linux/ion.h>
25
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29
30 #define IRQ_STATUS_MAX_NUM 16 ///< support max 16 return register values when HW done
31
32 #define VCODEC_THREAD_MAX_NUM 16 ///< support max 16 multiple thread currently
33
34 /*=============================================================================
35 * Type definition
36 *===========================================================================*/
37
38 typedef void VAL_VOID_T; ///< void type definition
39 typedef char VAL_BOOL_T; ///< char type definition
40 typedef char VAL_CHAR_T; ///< char type definition
41 typedef signed char VAL_INT8_T; ///< signed char type definition
42 typedef signed short VAL_INT16_T; ///< signed short type definition
43 typedef signed int VAL_INT32_T; ///< signed int type definition
44 typedef unsigned char VAL_UCHAR_T; ///< unsigned char type definition
45 typedef unsigned char VAL_UINT8_T; ///< unsigned char type definition
46 typedef unsigned short VAL_UINT16_T; ///< unsigned short definition
47 typedef unsigned int VAL_UINT32_T; ///< unsigned int type definition
48 typedef unsigned long long VAL_UINT64_T; ///< unsigned long long type definition
49 typedef long long VAL_INT64_T; ///< long long type definition
50 typedef unsigned long VAL_HANDLE_T; ///< unsigned int (handle) type definition
51 typedef signed long VAL_LONG_T; ///
52 typedef unsigned long VAL_ULONG_T; ///
53
54 #define VAL_NULL (0) ///< VAL_NULL = 0
55 #define VAL_TRUE (1) ///< VAL_TRUE = 1
56 #define VAL_FALSE (0) ///< VAL_FALSE = 0
57
58 #define VAL_RESOLUTION_CHANGED (2) ///< VAL_RESOLUTION_CHANGED = 2, used to video resolution changed during playback
59
60
61 /**
62 * @par Enumeration
63 * VAL_MEM_CODEC_T
64 * @par Description
65 * This is the item used to memory usage for video encoder or video decoder
66 */
67 typedef enum _VAL_MEM_CODEC_T
68 {
69 VAL_MEM_CODEC_FOR_VENC = 0, ///< Memory for Video Encoder
70 VAL_MEM_CODEC_FOR_VDEC, ///< Memory for Video Decoder
71 VAL_MEM_CODEC_MAX = 0xFFFFFFFF ///< Max Value
72 } VAL_MEM_CODEC_T;
73
74
75 /**
76 * @par Enumeration
77 * VAL_CHIP_NAME_T
78 * @par Description
79 * This is the item for query chip name for HAL interface
80 */
81 typedef enum _VAL_CHIP_NAME_T
82 {
83 VAL_CHIP_NAME_MT6516 = 0, ///< MT6516
84 VAL_CHIP_NAME_MT6571, ///< MT6571
85 VAL_CHIP_NAME_MT6572, ///< MT6572
86 VAL_CHIP_NAME_MT6573, ///< MT6573
87 VAL_CHIP_NAME_MT6575, ///< MT6575
88 VAL_CHIP_NAME_MT6577, ///< MT6577
89 VAL_CHIP_NAME_MT6589, ///< MT6589
90 VAL_CHIP_NAME_MT6582, ///< MT6582
91 VAL_CHIP_NAME_MT8135, ///< MT8135
92 VAL_CHIP_NAME_ROME, ///< ROME
93 VAL_CHIP_NAME_MT6592, ///< MT6592
94 VAL_CHIP_NAME_MT8127, ///< MT8127
95 VAL_CHIP_NAME_MT6752, ///<MT6752
96 VAL_CHIP_NAME_MAX = 0xFFFFFFFF ///< Max Value
97 } VAL_CHIP_NAME_T;
98
99 /**
100 * @par Enumeration
101 * VAL_CHIP_VARIANT_T
102 * @par Description
103 * This is the item for query chip variant for HAL interface
104 */
105 typedef enum _VAL_CHIP_VARIANT_T
106 {
107 VAL_CHIP_VARIANT_MT6571L = 0, ///< MT6571L
108 VAL_CHIP_VARIANT_MAX = 0xFFFFFFFF ///< Max Value
109 } VAL_CHIP_VARIANT_T;
110
111 /**
112 * @par Enumeration
113 * VAL_DRIVER_TYPE_T
114 * @par Description
115 * This is the item for driver type
116 */
117 typedef enum _VAL_DRIVER_TYPE_T
118 {
119 VAL_DRIVER_TYPE_NONE = 0, ///< None
120 VAL_DRIVER_TYPE_MP4_ENC, ///< MP4 encoder
121 VAL_DRIVER_TYPE_MP4_DEC, ///< MP4 decoder
122 VAL_DRIVER_TYPE_H263_ENC, ///< H.263 encoder
123 VAL_DRIVER_TYPE_H263_DEC, ///< H.263 decoder
124 VAL_DRIVER_TYPE_H264_ENC, ///< H.264 encoder
125 VAL_DRIVER_TYPE_H264_DEC, ///< H.264 decoder
126 VAL_DRIVER_TYPE_SORENSON_SPARK_DEC, ///< Sorenson Spark decoder
127 VAL_DRIVER_TYPE_VC1_SP_DEC, ///< VC-1 simple profile decoder
128 VAL_DRIVER_TYPE_RV9_DEC, ///< RV9 decoder
129 VAL_DRIVER_TYPE_MP1_MP2_DEC, ///< MPEG1/2 decoder
130 VAL_DRIVER_TYPE_XVID_DEC, ///< Xvid decoder
131 VAL_DRIVER_TYPE_DIVX4_DIVX5_DEC, ///< Divx4/5 decoder
132 VAL_DRIVER_TYPE_VC1_MP_WMV9_DEC, ///< VC-1 main profile (WMV9) decoder
133 VAL_DRIVER_TYPE_RV8_DEC, ///< RV8 decoder
134 VAL_DRIVER_TYPE_WMV7_DEC, ///< WMV7 decoder
135 VAL_DRIVER_TYPE_WMV8_DEC, ///< WMV8 decoder
136 VAL_DRIVER_TYPE_AVS_DEC, ///< AVS decoder
137 VAL_DRIVER_TYPE_DIVX_3_11_DEC, ///< Divx3.11 decoder
138 VAL_DRIVER_TYPE_H264_DEC_MAIN, ///< H.264 main profile decoder (due to different packet) == 20
139 VAL_DRIVER_TYPE_H264_DEC_MAIN_CABAC, ///< H.264 main profile decoder for CABAC type but packet is the same, just for reload.
140 VAL_DRIVER_TYPE_VP8_DEC, ///< VP8 decoder
141 VAL_DRIVER_TYPE_MP2_DEC, ///< MPEG2 decoder
142 VAL_DRIVER_TYPE_VP9_DEC, ///< VP9 decoder
143 VAL_DRIVER_TYPE_VP8_ENC, ///< VP8 encoder
144 VAL_DRIVER_TYPE_VC1_ADV_DEC, ///< VC1 advance decoder
145 VAL_DRIVER_TYPE_VC1_DEC, ///< VC1 simple/main/advance decoder
146 VAL_DRIVER_TYPE_JPEG_ENC, ///< JPEG encoder
147 VAL_DRIVER_TYPE_HEVC_ENC, ///< HEVC encoder
148 VAL_DRIVER_TYPE_HEVC_DEC, ///< HEVC decoder
149 VAL_DRIVER_TYPE_H264_ENC_LIVEPHOTO, // LivePhoto type
150 VAL_DRIVER_TYPE_MAX = 0xFFFFFFFF ///< Max driver type
151 } VAL_DRIVER_TYPE_T;
152
153
154 /**
155 * @par Enumeration
156 * VAL_RESULT_T
157 * @par Description
158 * This is the return status of each OSAL function
159 */
160 typedef enum _VAL_RESULT_T
161 {
162 VAL_RESULT_NO_ERROR = 0, ///< The function work successfully
163 VAL_RESULT_INVALID_DRIVER, ///< Error due to invalid driver
164 VAL_RESULT_INVALID_PARAMETER, ///< Error due to invalid parameter
165 VAL_RESULT_INVALID_MEMORY, ///< Error due to invalid memory
166 VAL_RESULT_INVALID_ISR, ///< Error due to invalid isr request
167 VAL_RESULT_ISR_TIMEOUT, ///< Error due to invalid isr request
168 VAL_RESULT_UNKNOWN_ERROR, ///< Unknown error
169 VAL_RESULT_RESTARTSYS, ///< Restart sys
170 VAL_RESULT_MAX = 0xFFFFFFFF ///< Max result
171 } VAL_RESULT_T;
172
173
174 /**
175 * @par Enumeration
176 * VAL_MEM_ALIGN_T
177 * @par Description
178 * This is the item for allocation memory byte alignment
179 */
180 typedef enum _VAL_MEM_ALIGN_T
181 {
182 VAL_MEM_ALIGN_1 = 1, ///< 1 byte alignment
183 VAL_MEM_ALIGN_2 = (1 << 1), ///< 2 byte alignment
184 VAL_MEM_ALIGN_4 = (1 << 2), ///< 4 byte alignment
185 VAL_MEM_ALIGN_8 = (1 << 3), ///< 8 byte alignment
186 VAL_MEM_ALIGN_16 = (1 << 4), ///< 16 byte alignment
187 VAL_MEM_ALIGN_32 = (1 << 5), ///< 32 byte alignment
188 VAL_MEM_ALIGN_64 = (1 << 6), ///< 64 byte alignment
189 VAL_MEM_ALIGN_128 = (1 << 7), ///< 128 byte alignment
190 VAL_MEM_ALIGN_256 = (1 << 8), ///< 256 byte alignment
191 VAL_MEM_ALIGN_512 = (1 << 9), ///< 512 byte alignment
192 VAL_MEM_ALIGN_1K = (1 << 10), ///< 1K byte alignment
193 VAL_MEM_ALIGN_2K = (1 << 11), ///< 2K byte alignment
194 VAL_MEM_ALIGN_4K = (1 << 12), ///< 4K byte alignment
195 VAL_MEM_ALIGN_8K = (1 << 13), ///< 8K byte alignment
196 VAL_MEM_ALIGN_MAX = 0xFFFFFFFF ///< Max memory byte alignment
197 } VAL_MEM_ALIGN_T;
198
199
200 /**
201 * @par Enumeration
202 * VAL_MEM_TYPE_T
203 * @par Description
204 * This is the item for allocation memory type
205 */
206 typedef enum _VAL_MEM_TYPE_T
207 {
208 VAL_MEM_TYPE_FOR_SW = 0, ///< External memory foe SW
209 VAL_MEM_TYPE_FOR_HW_CACHEABLE, ///< External memory for HW Cacheable
210 VAL_MEM_TYPE_FOR_HW_CACHEABLE_MCI, ///< External memory for HW Cacheable, with MCI port config
211 VAL_MEM_TYPE_FOR_HW_NONCACHEABLE, ///< External memory for HW Non-Cacheable
212 VAL_MEM_TYPE_MAX = 0xFFFFFFFF ///< Max memory type
213 } VAL_MEM_TYPE_T;
214
215
216 /**
217 * @par Structure
218 * VAL_MEM_ADDR_T
219 * @par Description
220 * This is a structure for memory address
221 */
222 typedef struct _VAL_MEM_ADDR_T
223 {
224 VAL_ULONG_T u4VA; ///< [IN/OUT] virtual address
225 VAL_ULONG_T u4PA; ///< [IN/OUT] physical address
226 VAL_ULONG_T u4Size; ///< [IN/OUT] size
227 } VAL_MEM_ADDR_T;
228
229
230 /**
231 * @par Structure
232 * VAL_VCODEC_THREAD_ID_T
233 * @par Description
234 * This is a structure for thread info
235 */
236 typedef struct _VAL_VCODEC_THREAD_ID_T
237 {
238 VAL_UINT32_T u4tid1; ///< [IN/OUT] thread id for single core
239 VAL_UINT32_T u4tid2; ///< [IN/OUT] thread id for single core
240 VAL_UINT32_T u4VCodecThreadNum; ///< [IN/OUT] thread num
241 VAL_UINT32_T u4VCodecThreadID[VCODEC_THREAD_MAX_NUM]; ///< [IN/OUT] thread id for each thread
242 } VAL_VCODEC_THREAD_ID_T;
243
244
245 /**
246 * @par Structure
247 * VAL_VCODEC_CPU_LOADING_INFO_T
248 * @par Description
249 * This is a structure for CPU loading info
250 */
251 typedef struct _VAL_VCODEC_CPU_LOADING_INFO_T
252 {
253 unsigned long long _cpu_idle_time; ///< [OUT] cpu idle time
254 unsigned long long _thread_cpu_time; ///< [OUT] thread cpu time
255 unsigned long long _sched_clock; ///< [OUT] sched clock
256 unsigned int _inst_count; ///< [OUT] inst count
257 } VAL_VCODEC_CPU_LOADING_INFO_T;
258
259
260 /**
261 * @par Structure
262 * VAL_VCODEC_CPU_OPP_LIMIT_T
263 * @par Description
264 * This is a structure for CPU opp limit info
265 */
266 typedef struct _VAL_VCODEC_CPU_OPP_LIMIT_T
267 {
268 int limited_freq; ///< [IN] limited freq
269 int limited_cpu; ///< [IN] limited cpu
270 int enable; ///< [IN] enable
271 } VAL_VCODEC_CPU_OPP_LIMIT_T;
272
273
274 /**
275 * @par Structure
276 * VAL_VCODEC_M4U_BUFFER_CONFIG_T
277 * @par Description
278 * This is a structure for m4u buffer config
279 */
280 typedef struct _VAL_VCODEC_M4U_BUFFER_CONFIG_T
281 {
282 VAL_MEM_CODEC_T eMemCodec; ///< [IN] memory usage for encoder or decoder
283 VAL_UINT32_T cache_coherent; ///< [IN] cache coherent or not
284 VAL_UINT32_T security; ///< [IN] security or not
285 } VAL_VCODEC_M4U_BUFFER_CONFIG_T;
286
287
288 /**
289 * @par Structure
290 * VAL_MEMORY_T
291 * @par Description
292 * This is a parameter for memory usaged function
293 */
294 typedef struct _VAL_MEMORY_T
295 {
296 VAL_MEM_TYPE_T eMemType; ///< [IN] The allocation memory type
297 VAL_ULONG_T u4MemSize; ///< [IN] The size of memory allocation
298 VAL_VOID_T *pvMemVa; ///< [IN/OUT] The memory virtual address
299 VAL_VOID_T *pvMemPa; ///< [IN/OUT] The memory physical address
300 VAL_MEM_ALIGN_T eAlignment; ///< [IN] The memory byte alignment setting
301 VAL_VOID_T *pvAlignMemVa; ///< [IN/OUT] The align memory virtual address
302 VAL_VOID_T *pvAlignMemPa; ///< [IN/OUT] The align memory physical address
303 VAL_MEM_CODEC_T eMemCodec; ///< [IN] The memory codec for VENC or VDEC
304 VAL_UINT32_T i4IonShareFd;
305 struct ion_handle *pIonBufhandle;
306 VAL_VOID_T *pvReserved; ///< [IN/OUT] The reserved parameter
307 VAL_ULONG_T u4ReservedSize; ///< [IN] The size of reserved parameter structure
308 #ifdef __EARLY_PORTING__
309 VAL_VOID_T *pvReservedPmem; ///< [IN/OUT] The reserved parameter
310 #endif
311 } VAL_MEMORY_T;
312
313 /**
314 * @par Structure
315 * VAL_RECORD_SIZE_T
316 * @par Description
317 * This is a parameter for setting record size to EMI controller
318 */
319 typedef struct __VAL_RECORD_SIZE_T
320 {
321 VAL_UINT32_T u4FrmWidth; ///< [IN] Frame Width, (may not 16 byte-align)
322 VAL_UINT32_T u4FrmHeight; ///< [IN] Frame Height, (may not 16 byte-align)
323 VAL_UINT32_T u4BufWidth; ///< [IN] Buffer Width, (must 16 byte-align)
324 VAL_UINT32_T u4BufHeight; ///< [IN] Buffer Height, (must 16 byte-align)
325 } VAL_RECORD_SIZE_T;
326
327
328 /**
329 * @par Structure
330 * VAL_ATOI_T
331 * @par Description
332 * This is a parameter for eVideoAtoi()
333 */
334 typedef struct _VAL_ATOI_T
335 {
336 VAL_VOID_T *pvStr; ///< [IN] Null-terminated String to be converted
337 VAL_INT32_T i4Result; ///< [Out] returns the int value produced by interpreting the input characters as a number.
338 VAL_VOID_T *pvReserved; ///< [IN/OUT] The reserved parameter
339 VAL_UINT32_T u4ReservedSize; ///< [IN] The size of reserved parameter structure
340 } VAL_ATOI_T;
341
342
343 /**
344 * @par Structure
345 * VAL_STRSTR_T
346 * @par Description
347 * This is a parameter for eVideoStrStr()
348 */
349 typedef struct _VAL_STRSTR_T
350 {
351 VAL_VOID_T *pvStr; ///< [IN] Null-terminated string to search.
352 VAL_VOID_T *pvStrSearch; ///< [IN] Null-terminated string to search for
353 VAL_VOID_T *pvStrResult; ///< [Out] Returns a pointer to the first occurrence of strSearch in str, or NULL if strSearch does not appear in str.
354 VAL_VOID_T *pvReserved; ///< [IN/OUT] The reserved parameter
355 VAL_UINT32_T u4ReservedSize; ///< [IN] The size of reserved parameter structure
356 } VAL_STRSTR_T;
357
358
359 /**
360 * @par Structure
361 * VAL_ISR_T
362 * @par Description
363 * This is a parameter for ISR related function
364 */
365 typedef struct _VAL_ISR_T
366 {
367 VAL_VOID_T *pvHandle; ///< [IN] The video codec driver handle
368 VAL_UINT32_T u4HandleSize; ///< [IN] The size of video codec driver handle
369 VAL_DRIVER_TYPE_T eDriverType; ///< [IN] The driver type
370 VAL_VOID_T *pvIsrFunction; ///< [IN] The isr function
371 VAL_VOID_T *pvReserved; ///< [IN/OUT] The reserved parameter
372 VAL_UINT32_T u4ReservedSize; ///< [IN] The size of reserved parameter structure
373 VAL_UINT32_T u4TimeoutMs; ///< [IN] The timeout in ms
374 VAL_UINT32_T u4IrqStatusNum; ///< [IN] The num of return registers when HW done
375 VAL_UINT32_T u4IrqStatus[IRQ_STATUS_MAX_NUM]; ///< [IN/OUT] The value of return registers when HW done
376 } VAL_ISR_T;
377
378
379 /**
380 * @par Structure
381 * VAL_HW_LOCK_T
382 * @par Description
383 * This is a parameter for HW Lock/UnLock related function
384 */
385 typedef struct _VAL_HW_LOCK_T
386 {
387 VAL_VOID_T *pvHandle; ///< [IN] The video codec driver handle
388 VAL_UINT32_T u4HandleSize; ///< [IN] The size of video codec driver handle
389 VAL_VOID_T *pvLock; ///< [IN/OUT] The Lock discriptor
390 VAL_UINT32_T u4TimeoutMs; ///< [IN] The timeout ms
391 VAL_VOID_T *pvReserved; ///< [IN/OUT] The reserved parameter
392 VAL_UINT32_T u4ReservedSize; ///< [IN] The size of reserved parameter structure
393 VAL_DRIVER_TYPE_T eDriverType; ///< [IN] The driver type
394 VAL_BOOL_T bSecureInst; ///< [IN] True if this is a secure instance // MTK_SEC_VIDEO_PATH_SUPPORT
395 } VAL_HW_LOCK_T;
396
397
398 /**
399 * @par Structure
400 * VAL_TIME_T
401 * @par Description
402 * This is a structure for system time.
403 */
404 typedef struct _VAL_TIME_T
405 {
406 VAL_UINT32_T u4Sec; ///< [IN/OUT] second
407 VAL_UINT32_T u4uSec; ///< [IN/OUT] micro second
408 } VAL_TIME_T;
409
410
411 /**
412 * @par Enumeration
413 * VAL_SET_TYPE_T
414 * @par Description
415 * This is the item for setting val parameter
416 */
417 typedef enum _VAL_SET_TYPE_T
418 {
419 VAL_SET_TYPE_CURRENT_SCENARIO, ///< Set current scenario
420 VAL_SET_TYPE_MCI_PORT_CONFIG, ///< Set MCI port config
421 VAL_SET_TYPE_M4U_PORT_CONFIG ///< Set M4U port config
422 } VAL_SET_TYPE_T;
423
424 /**
425 * @par Enumeration
426 * VAL_GET_TYPE_T
427 * @par Description
428 * This is the item for getting val parameter
429 */
430 typedef enum _VAL_GET_TYPE_T
431 {
432 VAL_GET_TYPE_CURRENT_SCENARIO_CNT, ///< Get current scenario reference count
433 VAL_GET_TYPE_LCM_INFO, ///< Get LCM info
434 } VAL_GET_TYPE_T;
435
436 /**
437 * @par Enumeration
438 * VAL_VCODEC_SCENARIO
439 * @par Description
440 * This is the item for get/setting current vcodec scenario
441 */
442 typedef enum _VAL_VCODEC_SCENARIO_T
443 {
444 VAL_VCODEC_SCENARIO_VENC_1080P = 0x1, ///< Camera recording 1080P
445 VAL_VCODEC_SCENARIO_VDEC_1080P = 0x2, ///< Playback 1080P
446 VAL_VCODEC_SCENARIO_VENC_WFD = 0x4, ///< Wifi-display encoding
447 } VAL_VCODEC_SCENARIO_T;
448
449 /**
450 * @par Structure
451 * VAL_CURRENT_SCENARIO_T
452 * @par Description
453 * This is a structure for set/get current scenario
454 */
455 typedef struct _VAL_CURRENT_SCENARIO_T
456 {
457 VAL_UINT32_T u4Scenario; ///< [IN/OUT] set/get current scenario
458 VAL_UINT32_T u4OnOff; ///< [IN] set on/off (increment/decrement) 1 = inc, 0 = dec
459 } VAL_CURRENT_SCENARIO_T;
460
461 /**
462 * @par Structure
463 * VAL_CURRENT_SCENARIO_CNT_T
464 * @par Description
465 * This is a structure for set/get current scenario reference count
466 */
467 typedef struct _VAL_CURRENT_SCENARIO_CNT_T
468 {
469 VAL_UINT32_T u4Scenario; ///< [IN] current scenario type
470 VAL_UINT32_T u4ScenarioRefCount; ///< [OUT] current scenario reference count
471 } VAL_CURRENT_SCENARIO_CNT_T;
472
473
474 /**
475 * @par Structure
476 * VAL_MCI_PORT_CONFIG_T
477 * @par Description
478 * This is a structure for set/get MCI port config
479 */
480 typedef struct _VAL_MCI_PORT_CONFIG_T
481 {
482 VAL_MEM_CODEC_T eMemCodecType; ///< [IN] memory type - decoder/encoder
483 VAL_UINT32_T u4Config; ///< [IN] set port config
484 } VAL_MCI_PORT_CONFIG_T;
485
486 /**
487 * @par Structure
488 * VAL_LCM_INFO_T
489 * @par Description
490 * This is a structure for get LCM info
491 */
492 typedef struct _VAL_LCM_INFO_T
493 {
494 VAL_UINT32_T u4Width; ///< [OUT] width
495 VAL_UINT32_T u4Height; ///< [OUT] height
496 } VAL_LCM_INFO_T;
497
498 #define VAL_M4U_PORT_ALL (-1) ///< VAL_M4UPORT_DEFAULT_ALL = 1, config all M4U port for VENC or VDEC
499
500 /**
501 * @par Structure
502 * VAL_M4U_MPORT_CONFIG_T
503 * @par Description
504 * This is a parameter for eVideoSetParam() input structure
505 */
506 typedef struct _VAL_M4U_MPORT_CONFIG_T
507 {
508 VAL_MEM_CODEC_T eMemCodec; ///< [IN] The memory codec for VENC or VDEC
509 VAL_UINT32_T i4M4UPortID; ///< [IN] config port ID (VAL_M4U_PORT_ALL[-1] = config all VENC or VDEC)
510 VAL_BOOL_T bSecurity; ///< [IN] config port security
511 VAL_BOOL_T bVirtuality; ///< [IN] config port virtuality
512 } VAL_M4U_MPORT_CONFIG_T;
513
514
515 /* for DirectLink Meta Mode + */
516 #define META_HANDLE_LIST_MAX 50
517
518 typedef struct _VAL_MetaBufInfo
519 {
520 void *pNativeHandle;
521 VAL_ULONG_T u4VA;
522 VAL_ULONG_T u4PA;
523 VAL_UINT32_T u4BuffSize;
524 VAL_BOOL_T bUseION;
525 int fd;
526 struct ion_handle *pIonBufhandle;
527 } VAL_MetaBufInfo;
528
529 typedef struct _VAL_MetaHandleList
530 {
531 int mIonDevFd;
532 VAL_MetaBufInfo rMetaBufInfo[META_HANDLE_LIST_MAX];
533 VAL_BOOL_T fgSeqHdrEncoded;
534 } VAL_MetaHandleList;
535
536 typedef struct _VAL_BufInfo
537 {
538 VAL_UINT8_T fgIsConfigData;
539 VAL_ULONG_T u4BSVA;
540 VAL_UINT8_T fgBSStatus;
541 VAL_UINT8_T fgIsKeyFrame;
542 VAL_UINT32_T u4BSSize;
543 } VAL_BufInfo;
544 /* for DirectLink Meta Mode - */
545
546
547 #ifdef __cplusplus
548 }
549 #endif
550
551 #endif // #ifndef _VAL_TYPES_PUBLIC_H_