xref: /aosp_15_r20/external/libavc/decoder/ivd.h (revision 495ae853bb871d1e5a258cb02c2cc13cde8ddb9a)
1*495ae853SAndroid Build Coastguard Worker /******************************************************************************
2*495ae853SAndroid Build Coastguard Worker  *
3*495ae853SAndroid Build Coastguard Worker  * Copyright (C) 2015 The Android Open Source Project
4*495ae853SAndroid Build Coastguard Worker  *
5*495ae853SAndroid Build Coastguard Worker  * Licensed under the Apache License, Version 2.0 (the "License");
6*495ae853SAndroid Build Coastguard Worker  * you may not use this file except in compliance with the License.
7*495ae853SAndroid Build Coastguard Worker  * You may obtain a copy of the License at:
8*495ae853SAndroid Build Coastguard Worker  *
9*495ae853SAndroid Build Coastguard Worker  * http://www.apache.org/licenses/LICENSE-2.0
10*495ae853SAndroid Build Coastguard Worker  *
11*495ae853SAndroid Build Coastguard Worker  * Unless required by applicable law or agreed to in writing, software
12*495ae853SAndroid Build Coastguard Worker  * distributed under the License is distributed on an "AS IS" BASIS,
13*495ae853SAndroid Build Coastguard Worker  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*495ae853SAndroid Build Coastguard Worker  * See the License for the specific language governing permissions and
15*495ae853SAndroid Build Coastguard Worker  * limitations under the License.
16*495ae853SAndroid Build Coastguard Worker  *
17*495ae853SAndroid Build Coastguard Worker  *****************************************************************************
18*495ae853SAndroid Build Coastguard Worker  * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
19*495ae853SAndroid Build Coastguard Worker */
20*495ae853SAndroid Build Coastguard Worker /**
21*495ae853SAndroid Build Coastguard Worker *******************************************************************************
22*495ae853SAndroid Build Coastguard Worker * @file
23*495ae853SAndroid Build Coastguard Worker *  ivd.h
24*495ae853SAndroid Build Coastguard Worker *
25*495ae853SAndroid Build Coastguard Worker * @brief
26*495ae853SAndroid Build Coastguard Worker *  This file contains all the necessary structure and  enumeration
27*495ae853SAndroid Build Coastguard Worker * definitions needed for the Application  Program Interface(API) of the
28*495ae853SAndroid Build Coastguard Worker * Ittiam Video Decoders
29*495ae853SAndroid Build Coastguard Worker *
30*495ae853SAndroid Build Coastguard Worker * @author
31*495ae853SAndroid Build Coastguard Worker *  100239(RCY)
32*495ae853SAndroid Build Coastguard Worker *
33*495ae853SAndroid Build Coastguard Worker * @remarks
34*495ae853SAndroid Build Coastguard Worker *  None
35*495ae853SAndroid Build Coastguard Worker *
36*495ae853SAndroid Build Coastguard Worker *******************************************************************************
37*495ae853SAndroid Build Coastguard Worker */
38*495ae853SAndroid Build Coastguard Worker 
39*495ae853SAndroid Build Coastguard Worker #ifndef _IVD_H
40*495ae853SAndroid Build Coastguard Worker #define _IVD_H
41*495ae853SAndroid Build Coastguard Worker 
42*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
43*495ae853SAndroid Build Coastguard Worker /* Constant Macros                                                           */
44*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
45*495ae853SAndroid Build Coastguard Worker #define IVD_VIDDEC_MAX_IO_BUFFERS 64
46*495ae853SAndroid Build Coastguard Worker 
47*495ae853SAndroid Build Coastguard Worker /** SEI macros */
48*495ae853SAndroid Build Coastguard Worker /*
49*495ae853SAndroid Build Coastguard Worker  * @brief  specifies the number of colour primary components of the mastering display
50*495ae853SAndroid Build Coastguard Worker  */
51*495ae853SAndroid Build Coastguard Worker #define NUM_SEI_MDCV_PRIMARIES        3
52*495ae853SAndroid Build Coastguard Worker 
53*495ae853SAndroid Build Coastguard Worker /*
54*495ae853SAndroid Build Coastguard Worker  * @brief  specifies the number of colour primary components of the nominal content colour volume
55*495ae853SAndroid Build Coastguard Worker  */
56*495ae853SAndroid Build Coastguard Worker #define NUM_SEI_CCV_PRIMARIES         3
57*495ae853SAndroid Build Coastguard Worker 
58*495ae853SAndroid Build Coastguard Worker /*
59*495ae853SAndroid Build Coastguard Worker  * @brief  specifies maximum number of sub-layers available in the sequence
60*495ae853SAndroid Build Coastguard Worker  */
61*495ae853SAndroid Build Coastguard Worker #define SII_MAX_SUB_LAYERS 8
62*495ae853SAndroid Build Coastguard Worker 
63*495ae853SAndroid Build Coastguard Worker #define SEI_FGC_NUM_COLOUR_COMPONENTS 3
64*495ae853SAndroid Build Coastguard Worker #define SEI_FGC_MAX_NUM_MODEL_VALUES 6
65*495ae853SAndroid Build Coastguard Worker #define SEI_FGC_MAX_NUM_INTENSITY_INTERVALS 256
66*495ae853SAndroid Build Coastguard Worker 
67*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
68*495ae853SAndroid Build Coastguard Worker /* Typedefs                                                                  */
69*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
70*495ae853SAndroid Build Coastguard Worker 
71*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
72*495ae853SAndroid Build Coastguard Worker /* Enums                                                                     */
73*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
74*495ae853SAndroid Build Coastguard Worker 
75*495ae853SAndroid Build Coastguard Worker /* IVD_ARCH_T: Architecture Enumeration                               */
76*495ae853SAndroid Build Coastguard Worker typedef enum
77*495ae853SAndroid Build Coastguard Worker {
78*495ae853SAndroid Build Coastguard Worker     ARCH_NA                 =   0x7FFFFFFF,
79*495ae853SAndroid Build Coastguard Worker     ARCH_ARM_NONEON         =   0x0,
80*495ae853SAndroid Build Coastguard Worker     ARCH_ARM_A9Q,
81*495ae853SAndroid Build Coastguard Worker     ARCH_ARM_A9A,
82*495ae853SAndroid Build Coastguard Worker     ARCH_ARM_A9,
83*495ae853SAndroid Build Coastguard Worker     ARCH_ARM_A7,
84*495ae853SAndroid Build Coastguard Worker     ARCH_ARM_A5,
85*495ae853SAndroid Build Coastguard Worker     ARCH_ARM_A15,
86*495ae853SAndroid Build Coastguard Worker     ARCH_ARM_NEONINTR,
87*495ae853SAndroid Build Coastguard Worker     ARCH_ARMV8_GENERIC,
88*495ae853SAndroid Build Coastguard Worker     ARCH_X86_GENERIC        =   0x100,
89*495ae853SAndroid Build Coastguard Worker     ARCH_X86_SSSE3,
90*495ae853SAndroid Build Coastguard Worker     ARCH_X86_SSE42,
91*495ae853SAndroid Build Coastguard Worker     ARCH_X86_AVX2,
92*495ae853SAndroid Build Coastguard Worker     ARCH_MIPS_GENERIC       =   0x200,
93*495ae853SAndroid Build Coastguard Worker     ARCH_MIPS_32
94*495ae853SAndroid Build Coastguard Worker }IVD_ARCH_T;
95*495ae853SAndroid Build Coastguard Worker 
96*495ae853SAndroid Build Coastguard Worker /* IVD_SOC_T: SOC Enumeration                               */
97*495ae853SAndroid Build Coastguard Worker typedef enum
98*495ae853SAndroid Build Coastguard Worker {
99*495ae853SAndroid Build Coastguard Worker     SOC_NA                  = 0x7FFFFFFF,
100*495ae853SAndroid Build Coastguard Worker     SOC_GENERIC             = 0x0,
101*495ae853SAndroid Build Coastguard Worker     SOC_HISI_37X            = 0x100,
102*495ae853SAndroid Build Coastguard Worker }IVD_SOC_T;
103*495ae853SAndroid Build Coastguard Worker 
104*495ae853SAndroid Build Coastguard Worker /* IVD_FRAME_SKIP_MODE_T:Skip mode Enumeration                               */
105*495ae853SAndroid Build Coastguard Worker 
106*495ae853SAndroid Build Coastguard Worker typedef enum {
107*495ae853SAndroid Build Coastguard Worker     IVD_SKIP_NONE                               = 0x7FFFFFFF,
108*495ae853SAndroid Build Coastguard Worker     IVD_SKIP_P                                  = 0x1,
109*495ae853SAndroid Build Coastguard Worker     IVD_SKIP_B                                  = 0x2,
110*495ae853SAndroid Build Coastguard Worker     IVD_SKIP_I                                  = 0x3,
111*495ae853SAndroid Build Coastguard Worker     IVD_SKIP_IP                                 = 0x4,
112*495ae853SAndroid Build Coastguard Worker     IVD_SKIP_IB                                 = 0x5,
113*495ae853SAndroid Build Coastguard Worker     IVD_SKIP_PB                                 = 0x6,
114*495ae853SAndroid Build Coastguard Worker     IVD_SKIP_IPB                                = 0x7,
115*495ae853SAndroid Build Coastguard Worker     IVD_SKIP_IDR                                = 0x8,
116*495ae853SAndroid Build Coastguard Worker     IVD_SKIP_DEFAULT                            = IVD_SKIP_NONE,
117*495ae853SAndroid Build Coastguard Worker }IVD_FRAME_SKIP_MODE_T;
118*495ae853SAndroid Build Coastguard Worker 
119*495ae853SAndroid Build Coastguard Worker /* IVD_VIDEO_DECODE_MODE_T: Set decoder to decode either frame worth of data */
120*495ae853SAndroid Build Coastguard Worker /* or only header worth of data                                              */
121*495ae853SAndroid Build Coastguard Worker 
122*495ae853SAndroid Build Coastguard Worker typedef enum {
123*495ae853SAndroid Build Coastguard Worker     IVD_DECODE_MODE_NA                          = 0x7FFFFFFF,
124*495ae853SAndroid Build Coastguard Worker 
125*495ae853SAndroid Build Coastguard Worker     /* This enables the codec to process all decodable units */
126*495ae853SAndroid Build Coastguard Worker     IVD_DECODE_FRAME                            = 0x0,
127*495ae853SAndroid Build Coastguard Worker 
128*495ae853SAndroid Build Coastguard Worker     /* This enables the codec to decode header only */
129*495ae853SAndroid Build Coastguard Worker     IVD_DECODE_HEADER                           = 0x1,
130*495ae853SAndroid Build Coastguard Worker 
131*495ae853SAndroid Build Coastguard Worker 
132*495ae853SAndroid Build Coastguard Worker 
133*495ae853SAndroid Build Coastguard Worker }IVD_VIDEO_DECODE_MODE_T;
134*495ae853SAndroid Build Coastguard Worker 
135*495ae853SAndroid Build Coastguard Worker 
136*495ae853SAndroid Build Coastguard Worker /* IVD_DISPLAY_FRAME_OUT_MODE_T: Video Display Frame Output Mode             */
137*495ae853SAndroid Build Coastguard Worker 
138*495ae853SAndroid Build Coastguard Worker typedef enum {
139*495ae853SAndroid Build Coastguard Worker 
140*495ae853SAndroid Build Coastguard Worker     IVD_DISPLAY_ORDER_NA                        = 0x7FFFFFFF,
141*495ae853SAndroid Build Coastguard Worker     /* To set codec to fill output buffers in display order */
142*495ae853SAndroid Build Coastguard Worker     IVD_DISPLAY_FRAME_OUT                       = 0x0,
143*495ae853SAndroid Build Coastguard Worker 
144*495ae853SAndroid Build Coastguard Worker     /* To set codec to fill output buffers in decode order */
145*495ae853SAndroid Build Coastguard Worker     IVD_DECODE_FRAME_OUT                        = 0x1,
146*495ae853SAndroid Build Coastguard Worker }IVD_DISPLAY_FRAME_OUT_MODE_T;
147*495ae853SAndroid Build Coastguard Worker 
148*495ae853SAndroid Build Coastguard Worker 
149*495ae853SAndroid Build Coastguard Worker /* IVD_API_COMMAND_TYPE_T:API command type                                   */
150*495ae853SAndroid Build Coastguard Worker typedef enum {
151*495ae853SAndroid Build Coastguard Worker     IVD_CMD_VIDEO_NA                          = 0x7FFFFFFF,
152*495ae853SAndroid Build Coastguard Worker     IVD_CMD_CREATE                            = IV_CMD_DUMMY_ELEMENT + 1,
153*495ae853SAndroid Build Coastguard Worker     IVD_CMD_DELETE,
154*495ae853SAndroid Build Coastguard Worker     IVD_CMD_VIDEO_CTL,
155*495ae853SAndroid Build Coastguard Worker     IVD_CMD_VIDEO_DECODE,
156*495ae853SAndroid Build Coastguard Worker     IVD_CMD_GET_DISPLAY_FRAME,
157*495ae853SAndroid Build Coastguard Worker     IVD_CMD_REL_DISPLAY_FRAME,
158*495ae853SAndroid Build Coastguard Worker     IVD_CMD_SET_DISPLAY_FRAME
159*495ae853SAndroid Build Coastguard Worker }IVD_API_COMMAND_TYPE_T;
160*495ae853SAndroid Build Coastguard Worker 
161*495ae853SAndroid Build Coastguard Worker /* IVD_CONTROL_API_COMMAND_TYPE_T: Video Control API command type            */
162*495ae853SAndroid Build Coastguard Worker 
163*495ae853SAndroid Build Coastguard Worker typedef enum {
164*495ae853SAndroid Build Coastguard Worker     IVD_CMD_NA                          = 0x7FFFFFFF,
165*495ae853SAndroid Build Coastguard Worker     IVD_CMD_CTL_GETPARAMS               = 0x0,
166*495ae853SAndroid Build Coastguard Worker     IVD_CMD_CTL_SETPARAMS               = 0x1,
167*495ae853SAndroid Build Coastguard Worker     IVD_CMD_CTL_RESET                   = 0x2,
168*495ae853SAndroid Build Coastguard Worker     IVD_CMD_CTL_SETDEFAULT              = 0x3,
169*495ae853SAndroid Build Coastguard Worker     IVD_CMD_CTL_FLUSH                   = 0x4,
170*495ae853SAndroid Build Coastguard Worker     IVD_CMD_CTL_GETBUFINFO              = 0x5,
171*495ae853SAndroid Build Coastguard Worker     IVD_CMD_CTL_GETVERSION              = 0x6,
172*495ae853SAndroid Build Coastguard Worker     IVD_CMD_CTL_CODEC_SUBCMD_START         = 0x7
173*495ae853SAndroid Build Coastguard Worker }IVD_CONTROL_API_COMMAND_TYPE_T;
174*495ae853SAndroid Build Coastguard Worker 
175*495ae853SAndroid Build Coastguard Worker 
176*495ae853SAndroid Build Coastguard Worker /* IVD_ERROR_BITS_T: A UWORD32 container will be used for reporting the error*/
177*495ae853SAndroid Build Coastguard Worker /* code to the application. The first 8 bits starting from LSB have been     */
178*495ae853SAndroid Build Coastguard Worker /* reserved for the codec to report internal error details. The rest of the  */
179*495ae853SAndroid Build Coastguard Worker /* bits will be generic for all video decoders and each bit has an associated*/
180*495ae853SAndroid Build Coastguard Worker /* meaning as mentioned below. The unused bit fields are reserved for future */
181*495ae853SAndroid Build Coastguard Worker /* extenstions and will be zero in the current implementation                */
182*495ae853SAndroid Build Coastguard Worker 
183*495ae853SAndroid Build Coastguard Worker typedef enum {
184*495ae853SAndroid Build Coastguard Worker     /* Bit 8  - Applied concealment.                                         */
185*495ae853SAndroid Build Coastguard Worker     IVD_APPLIEDCONCEALMENT                      = 0x8,
186*495ae853SAndroid Build Coastguard Worker     /* Bit 9 - Insufficient input data.                                     */
187*495ae853SAndroid Build Coastguard Worker     IVD_INSUFFICIENTDATA                        = 0x9,
188*495ae853SAndroid Build Coastguard Worker     /* Bit 10 - Data problem/corruption.                                     */
189*495ae853SAndroid Build Coastguard Worker     IVD_CORRUPTEDDATA                           = 0xa,
190*495ae853SAndroid Build Coastguard Worker     /* Bit 11 - Header problem/corruption.                                   */
191*495ae853SAndroid Build Coastguard Worker     IVD_CORRUPTEDHEADER                         = 0xb,
192*495ae853SAndroid Build Coastguard Worker     /* Bit 12 - Unsupported feature/parameter in input.                      */
193*495ae853SAndroid Build Coastguard Worker     IVD_UNSUPPORTEDINPUT                        = 0xc,
194*495ae853SAndroid Build Coastguard Worker     /* Bit 13 - Unsupported input parameter orconfiguration.                 */
195*495ae853SAndroid Build Coastguard Worker     IVD_UNSUPPORTEDPARAM                        = 0xd,
196*495ae853SAndroid Build Coastguard Worker     /* Bit 14 - Fatal error (stop the codec).If there is an                  */
197*495ae853SAndroid Build Coastguard Worker     /* error and this bit is not set, the error is a recoverable one.        */
198*495ae853SAndroid Build Coastguard Worker     IVD_FATALERROR                              = 0xe,
199*495ae853SAndroid Build Coastguard Worker     /* Bit 15 - Invalid bitstream. Applies when Bitstream/YUV frame          */
200*495ae853SAndroid Build Coastguard Worker     /* buffer for encode/decode call is made with non-valid or zero u4_size  */
201*495ae853SAndroid Build Coastguard Worker     /* data                                                                  */
202*495ae853SAndroid Build Coastguard Worker     IVD_INVALID_BITSTREAM                       = 0xf,
203*495ae853SAndroid Build Coastguard Worker     /* Bit 16          */
204*495ae853SAndroid Build Coastguard Worker     IVD_INCOMPLETE_BITSTREAM                    = 0x10,
205*495ae853SAndroid Build Coastguard Worker     IVD_ERROR_BITS_T_DUMMY_ELEMENT              = 0x7FFFFFFF
206*495ae853SAndroid Build Coastguard Worker }IVD_ERROR_BITS_T;
207*495ae853SAndroid Build Coastguard Worker 
208*495ae853SAndroid Build Coastguard Worker 
209*495ae853SAndroid Build Coastguard Worker /* IVD_CONTROL_API_COMMAND_TYPE_T: Video Control API command type            */
210*495ae853SAndroid Build Coastguard Worker typedef enum {
211*495ae853SAndroid Build Coastguard Worker     IVD_ERROR_NONE                              = 0x0,
212*495ae853SAndroid Build Coastguard Worker     IVD_NUM_MEM_REC_FAILED                      = 0x1,
213*495ae853SAndroid Build Coastguard Worker     IVD_NUM_REC_NOT_SUFFICIENT                  = 0x2,
214*495ae853SAndroid Build Coastguard Worker     IVD_FILL_MEM_REC_FAILED                     = 0x3,
215*495ae853SAndroid Build Coastguard Worker     IVD_REQUESTED_WIDTH_NOT_SUPPPORTED          = 0x4,
216*495ae853SAndroid Build Coastguard Worker     IVD_REQUESTED_HEIGHT_NOT_SUPPPORTED         = 0x5,
217*495ae853SAndroid Build Coastguard Worker     IVD_INIT_DEC_FAILED                         = 0x6,
218*495ae853SAndroid Build Coastguard Worker     IVD_INIT_DEC_NOT_SUFFICIENT                 = 0x7,
219*495ae853SAndroid Build Coastguard Worker     IVD_INIT_DEC_WIDTH_NOT_SUPPPORTED           = 0x8,
220*495ae853SAndroid Build Coastguard Worker     IVD_INIT_DEC_HEIGHT_NOT_SUPPPORTED          = 0x9,
221*495ae853SAndroid Build Coastguard Worker     IVD_INIT_DEC_MEM_NOT_ALIGNED                = 0xa,
222*495ae853SAndroid Build Coastguard Worker     IVD_INIT_DEC_COL_FMT_NOT_SUPPORTED          = 0xb,
223*495ae853SAndroid Build Coastguard Worker     IVD_INIT_DEC_MEM_REC_NOT_SUFFICIENT         = 0xc,
224*495ae853SAndroid Build Coastguard Worker     IVD_GET_VERSION_DATABUFFER_SZ_INSUFFICIENT  = 0xd,
225*495ae853SAndroid Build Coastguard Worker     IVD_BUFFER_SIZE_SET_TO_ZERO                 = 0xe,
226*495ae853SAndroid Build Coastguard Worker     IVD_UNEXPECTED_END_OF_STREAM                = 0xf,
227*495ae853SAndroid Build Coastguard Worker     IVD_SEQUENCE_HEADER_NOT_DECODED             = 0x10,
228*495ae853SAndroid Build Coastguard Worker     IVD_STREAM_WIDTH_HEIGHT_NOT_SUPPORTED       = 0x11,
229*495ae853SAndroid Build Coastguard Worker     IVD_MAX_FRAME_LIMIT_REACHED                 = 0x12,
230*495ae853SAndroid Build Coastguard Worker     IVD_IP_API_STRUCT_SIZE_INCORRECT            = 0x13,
231*495ae853SAndroid Build Coastguard Worker     IVD_OP_API_STRUCT_SIZE_INCORRECT            = 0x14,
232*495ae853SAndroid Build Coastguard Worker     IVD_HANDLE_NULL                             = 0x15,
233*495ae853SAndroid Build Coastguard Worker     IVD_HANDLE_STRUCT_SIZE_INCORRECT            = 0x16,
234*495ae853SAndroid Build Coastguard Worker     IVD_INVALID_HANDLE_NULL                     = 0x17,
235*495ae853SAndroid Build Coastguard Worker     IVD_INVALID_API_CMD                         = 0x18,
236*495ae853SAndroid Build Coastguard Worker     IVD_UNSUPPORTED_API_CMD                     = 0x19,
237*495ae853SAndroid Build Coastguard Worker     IVD_MEM_REC_STRUCT_SIZE_INCORRECT           = 0x1a,
238*495ae853SAndroid Build Coastguard Worker     IVD_DISP_FRM_ZERO_OP_BUFS                   = 0x1b,
239*495ae853SAndroid Build Coastguard Worker     IVD_DISP_FRM_OP_BUF_NULL                    = 0x1c,
240*495ae853SAndroid Build Coastguard Worker     IVD_DISP_FRM_ZERO_OP_BUF_SIZE               = 0x1d,
241*495ae853SAndroid Build Coastguard Worker     IVD_DEC_FRM_BS_BUF_NULL                     = 0x1e,
242*495ae853SAndroid Build Coastguard Worker     IVD_SET_CONFG_INVALID_DEC_MODE              = 0x1f,
243*495ae853SAndroid Build Coastguard Worker     IVD_SET_CONFG_UNSUPPORTED_DISP_WIDTH        = 0x20,
244*495ae853SAndroid Build Coastguard Worker     IVD_RESET_FAILED                            = 0x21,
245*495ae853SAndroid Build Coastguard Worker     IVD_INIT_DEC_MEM_REC_OVERLAP_ERR            = 0x22,
246*495ae853SAndroid Build Coastguard Worker     IVD_INIT_DEC_MEM_REC_BASE_NULL              = 0x23,
247*495ae853SAndroid Build Coastguard Worker     IVD_INIT_DEC_MEM_REC_ALIGNMENT_ERR          = 0x24,
248*495ae853SAndroid Build Coastguard Worker     IVD_INIT_DEC_MEM_REC_INSUFFICIENT_SIZE      = 0x25,
249*495ae853SAndroid Build Coastguard Worker     IVD_INIT_DEC_MEM_REC_INCORRECT_TYPE         = 0x26,
250*495ae853SAndroid Build Coastguard Worker     IVD_DEC_NUMBYTES_INV                        = 0x27,
251*495ae853SAndroid Build Coastguard Worker     IVD_DEC_REF_BUF_NULL                        = 0x28,
252*495ae853SAndroid Build Coastguard Worker     IVD_DEC_FRM_SKIPPED                         = 0x29,
253*495ae853SAndroid Build Coastguard Worker     IVD_RES_CHANGED                             = 0x2a,
254*495ae853SAndroid Build Coastguard Worker     IVD_MEM_ALLOC_FAILED                        = 0x2b,
255*495ae853SAndroid Build Coastguard Worker     IVD_DUMMY_ELEMENT_FOR_CODEC_EXTENSIONS      = 0xD0,
256*495ae853SAndroid Build Coastguard Worker }IVD_ERROR_CODES_T;
257*495ae853SAndroid Build Coastguard Worker 
258*495ae853SAndroid Build Coastguard Worker 
259*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
260*495ae853SAndroid Build Coastguard Worker /* Structure                                                                 */
261*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
262*495ae853SAndroid Build Coastguard Worker /* structure for passing output buffers to codec during get display buffer   */
263*495ae853SAndroid Build Coastguard Worker /* call                                                                      */
264*495ae853SAndroid Build Coastguard Worker typedef struct {
265*495ae853SAndroid Build Coastguard Worker 
266*495ae853SAndroid Build Coastguard Worker     /**
267*495ae853SAndroid Build Coastguard Worker      * number of output buffers
268*495ae853SAndroid Build Coastguard Worker      */
269*495ae853SAndroid Build Coastguard Worker     UWORD32             u4_num_bufs;
270*495ae853SAndroid Build Coastguard Worker 
271*495ae853SAndroid Build Coastguard Worker     /**
272*495ae853SAndroid Build Coastguard Worker      *list of pointers to output buffers
273*495ae853SAndroid Build Coastguard Worker      */
274*495ae853SAndroid Build Coastguard Worker     UWORD8              *pu1_bufs[IVD_VIDDEC_MAX_IO_BUFFERS];
275*495ae853SAndroid Build Coastguard Worker 
276*495ae853SAndroid Build Coastguard Worker     /**
277*495ae853SAndroid Build Coastguard Worker      * sizes of each output buffer
278*495ae853SAndroid Build Coastguard Worker      */
279*495ae853SAndroid Build Coastguard Worker     UWORD32             u4_min_out_buf_size[IVD_VIDDEC_MAX_IO_BUFFERS];
280*495ae853SAndroid Build Coastguard Worker 
281*495ae853SAndroid Build Coastguard Worker }ivd_out_bufdesc_t;
282*495ae853SAndroid Build Coastguard Worker 
283*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
284*495ae853SAndroid Build Coastguard Worker /*   Create decoder                                                          */
285*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
286*495ae853SAndroid Build Coastguard Worker 
287*495ae853SAndroid Build Coastguard Worker /* IVD_API_COMMAND_TYPE_T::e_cmd = IVD_CMD_CREATE                            */
288*495ae853SAndroid Build Coastguard Worker 
289*495ae853SAndroid Build Coastguard Worker 
290*495ae853SAndroid Build Coastguard Worker typedef struct {
291*495ae853SAndroid Build Coastguard Worker     /**
292*495ae853SAndroid Build Coastguard Worker      * u4_size of the structure
293*495ae853SAndroid Build Coastguard Worker      */
294*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_size;
295*495ae853SAndroid Build Coastguard Worker 
296*495ae853SAndroid Build Coastguard Worker     /**
297*495ae853SAndroid Build Coastguard Worker      *  e_cmd
298*495ae853SAndroid Build Coastguard Worker      */
299*495ae853SAndroid Build Coastguard Worker     IVD_API_COMMAND_TYPE_T                  e_cmd;
300*495ae853SAndroid Build Coastguard Worker 
301*495ae853SAndroid Build Coastguard Worker     /**
302*495ae853SAndroid Build Coastguard Worker      * format in which codec has to give out frame data for display
303*495ae853SAndroid Build Coastguard Worker      */
304*495ae853SAndroid Build Coastguard Worker     IV_COLOR_FORMAT_T                       e_output_format;
305*495ae853SAndroid Build Coastguard Worker 
306*495ae853SAndroid Build Coastguard Worker     /**
307*495ae853SAndroid Build Coastguard Worker      * Flag to indicate shared display buffer mode
308*495ae853SAndroid Build Coastguard Worker      */
309*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_share_disp_buf;
310*495ae853SAndroid Build Coastguard Worker 
311*495ae853SAndroid Build Coastguard Worker     /**
312*495ae853SAndroid Build Coastguard Worker      * Pointer to a function for aligned allocation.
313*495ae853SAndroid Build Coastguard Worker      */
314*495ae853SAndroid Build Coastguard Worker     void    *(*pf_aligned_alloc)(void *pv_mem_ctxt, WORD32 alignment, WORD32 size);
315*495ae853SAndroid Build Coastguard Worker 
316*495ae853SAndroid Build Coastguard Worker     /**
317*495ae853SAndroid Build Coastguard Worker      * Pointer to a function for aligned free.
318*495ae853SAndroid Build Coastguard Worker      */
319*495ae853SAndroid Build Coastguard Worker     void   (*pf_aligned_free)(void *pv_mem_ctxt, void *pv_buf);
320*495ae853SAndroid Build Coastguard Worker 
321*495ae853SAndroid Build Coastguard Worker     /**
322*495ae853SAndroid Build Coastguard Worker      * Pointer to memory context that is needed during alloc/free for custom
323*495ae853SAndroid Build Coastguard Worker      * memory managers. This will be passed as first argument to pf_aligned_alloc and
324*495ae853SAndroid Build Coastguard Worker      * pf_aligned_free.
325*495ae853SAndroid Build Coastguard Worker      * If application is using standard memory functions like
326*495ae853SAndroid Build Coastguard Worker      * malloc/aligned_malloc/memalign/free/aligned_free,
327*495ae853SAndroid Build Coastguard Worker      * then this is not needed and can be set to NULL
328*495ae853SAndroid Build Coastguard Worker      */
329*495ae853SAndroid Build Coastguard Worker     void    *pv_mem_ctxt;
330*495ae853SAndroid Build Coastguard Worker 
331*495ae853SAndroid Build Coastguard Worker }ivd_create_ip_t;
332*495ae853SAndroid Build Coastguard Worker 
333*495ae853SAndroid Build Coastguard Worker 
334*495ae853SAndroid Build Coastguard Worker typedef struct{
335*495ae853SAndroid Build Coastguard Worker     /**
336*495ae853SAndroid Build Coastguard Worker      * u4_size of the structure
337*495ae853SAndroid Build Coastguard Worker      */
338*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_size;
339*495ae853SAndroid Build Coastguard Worker 
340*495ae853SAndroid Build Coastguard Worker     /**
341*495ae853SAndroid Build Coastguard Worker      * u4_error_code
342*495ae853SAndroid Build Coastguard Worker      */
343*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_error_code;
344*495ae853SAndroid Build Coastguard Worker 
345*495ae853SAndroid Build Coastguard Worker     /**
346*495ae853SAndroid Build Coastguard Worker      * Codec Handle
347*495ae853SAndroid Build Coastguard Worker      */
348*495ae853SAndroid Build Coastguard Worker     void                                    *pv_handle;
349*495ae853SAndroid Build Coastguard Worker 
350*495ae853SAndroid Build Coastguard Worker }ivd_create_op_t;
351*495ae853SAndroid Build Coastguard Worker 
352*495ae853SAndroid Build Coastguard Worker 
353*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
354*495ae853SAndroid Build Coastguard Worker /*  Delete decoder                                                           */
355*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
356*495ae853SAndroid Build Coastguard Worker 
357*495ae853SAndroid Build Coastguard Worker /* IVD_API_COMMAND_TYPE_T::e_cmd = IVD_CMD_DELETE                              */
358*495ae853SAndroid Build Coastguard Worker 
359*495ae853SAndroid Build Coastguard Worker 
360*495ae853SAndroid Build Coastguard Worker 
361*495ae853SAndroid Build Coastguard Worker typedef struct {
362*495ae853SAndroid Build Coastguard Worker     /**
363*495ae853SAndroid Build Coastguard Worker      * u4_size of the structure
364*495ae853SAndroid Build Coastguard Worker      */
365*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_size;
366*495ae853SAndroid Build Coastguard Worker 
367*495ae853SAndroid Build Coastguard Worker     /**
368*495ae853SAndroid Build Coastguard Worker      * cmd
369*495ae853SAndroid Build Coastguard Worker      */
370*495ae853SAndroid Build Coastguard Worker     IVD_API_COMMAND_TYPE_T                       e_cmd;
371*495ae853SAndroid Build Coastguard Worker 
372*495ae853SAndroid Build Coastguard Worker }ivd_delete_ip_t;
373*495ae853SAndroid Build Coastguard Worker 
374*495ae853SAndroid Build Coastguard Worker 
375*495ae853SAndroid Build Coastguard Worker typedef struct{
376*495ae853SAndroid Build Coastguard Worker     /**
377*495ae853SAndroid Build Coastguard Worker      * u4_size of the structure
378*495ae853SAndroid Build Coastguard Worker      */
379*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_size;
380*495ae853SAndroid Build Coastguard Worker 
381*495ae853SAndroid Build Coastguard Worker     /**
382*495ae853SAndroid Build Coastguard Worker      * error_code
383*495ae853SAndroid Build Coastguard Worker      */
384*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_error_code;
385*495ae853SAndroid Build Coastguard Worker 
386*495ae853SAndroid Build Coastguard Worker }ivd_delete_op_t;
387*495ae853SAndroid Build Coastguard Worker 
388*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
389*495ae853SAndroid Build Coastguard Worker /*   Video Decode                                                            */
390*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
391*495ae853SAndroid Build Coastguard Worker 
392*495ae853SAndroid Build Coastguard Worker /* SEI params deocde */
393*495ae853SAndroid Build Coastguard Worker typedef struct {
394*495ae853SAndroid Build Coastguard Worker     UWORD8                                         u1_sei_mdcv_params_present_flag;
395*495ae853SAndroid Build Coastguard Worker 
396*495ae853SAndroid Build Coastguard Worker     UWORD8                                         u1_sei_cll_params_present_flag;
397*495ae853SAndroid Build Coastguard Worker 
398*495ae853SAndroid Build Coastguard Worker     UWORD8                                         u1_sei_ave_params_present_flag;
399*495ae853SAndroid Build Coastguard Worker 
400*495ae853SAndroid Build Coastguard Worker     UWORD8                                         u1_sei_ccv_params_present_flag;
401*495ae853SAndroid Build Coastguard Worker 
402*495ae853SAndroid Build Coastguard Worker     UWORD8                                         u1_sei_sii_params_present_flag;
403*495ae853SAndroid Build Coastguard Worker 
404*495ae853SAndroid Build Coastguard Worker     UWORD8                                         u1_sei_fgc_params_present_flag;
405*495ae853SAndroid Build Coastguard Worker 
406*495ae853SAndroid Build Coastguard Worker }ivd_sei_decode_op_t;
407*495ae853SAndroid Build Coastguard Worker 
408*495ae853SAndroid Build Coastguard Worker /* IVD_API_COMMAND_TYPE_T::e_cmd = IVD_CMD_VIDEO_DECODE                      */
409*495ae853SAndroid Build Coastguard Worker 
410*495ae853SAndroid Build Coastguard Worker 
411*495ae853SAndroid Build Coastguard Worker typedef struct {
412*495ae853SAndroid Build Coastguard Worker     /**
413*495ae853SAndroid Build Coastguard Worker      * u4_size of the structure
414*495ae853SAndroid Build Coastguard Worker      */
415*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_size;
416*495ae853SAndroid Build Coastguard Worker 
417*495ae853SAndroid Build Coastguard Worker     /**
418*495ae853SAndroid Build Coastguard Worker      * e_cmd
419*495ae853SAndroid Build Coastguard Worker      */
420*495ae853SAndroid Build Coastguard Worker     IVD_API_COMMAND_TYPE_T                  e_cmd;
421*495ae853SAndroid Build Coastguard Worker 
422*495ae853SAndroid Build Coastguard Worker     /**
423*495ae853SAndroid Build Coastguard Worker      * u4_ts
424*495ae853SAndroid Build Coastguard Worker      */
425*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_ts;
426*495ae853SAndroid Build Coastguard Worker 
427*495ae853SAndroid Build Coastguard Worker     /**
428*495ae853SAndroid Build Coastguard Worker      * u4_num_Bytes
429*495ae853SAndroid Build Coastguard Worker      */
430*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_num_Bytes;
431*495ae853SAndroid Build Coastguard Worker 
432*495ae853SAndroid Build Coastguard Worker     /**
433*495ae853SAndroid Build Coastguard Worker      * pv_stream_buffer
434*495ae853SAndroid Build Coastguard Worker      */
435*495ae853SAndroid Build Coastguard Worker     void                                    *pv_stream_buffer;
436*495ae853SAndroid Build Coastguard Worker 
437*495ae853SAndroid Build Coastguard Worker     /**
438*495ae853SAndroid Build Coastguard Worker      * output buffer desc
439*495ae853SAndroid Build Coastguard Worker      */
440*495ae853SAndroid Build Coastguard Worker     ivd_out_bufdesc_t                       s_out_buffer;
441*495ae853SAndroid Build Coastguard Worker 
442*495ae853SAndroid Build Coastguard Worker }ivd_video_decode_ip_t;
443*495ae853SAndroid Build Coastguard Worker 
444*495ae853SAndroid Build Coastguard Worker 
445*495ae853SAndroid Build Coastguard Worker typedef struct{
446*495ae853SAndroid Build Coastguard Worker     /**
447*495ae853SAndroid Build Coastguard Worker      * u4_size of the structure
448*495ae853SAndroid Build Coastguard Worker      */
449*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_size;
450*495ae853SAndroid Build Coastguard Worker 
451*495ae853SAndroid Build Coastguard Worker     /**
452*495ae853SAndroid Build Coastguard Worker      * u4_error_code
453*495ae853SAndroid Build Coastguard Worker      */
454*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_error_code;
455*495ae853SAndroid Build Coastguard Worker 
456*495ae853SAndroid Build Coastguard Worker     /**
457*495ae853SAndroid Build Coastguard Worker      * num_bytes_consumed
458*495ae853SAndroid Build Coastguard Worker      */
459*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_num_bytes_consumed;
460*495ae853SAndroid Build Coastguard Worker 
461*495ae853SAndroid Build Coastguard Worker     /**
462*495ae853SAndroid Build Coastguard Worker      * pic_wd
463*495ae853SAndroid Build Coastguard Worker      */
464*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_pic_wd;
465*495ae853SAndroid Build Coastguard Worker 
466*495ae853SAndroid Build Coastguard Worker     /**
467*495ae853SAndroid Build Coastguard Worker      * pic_ht
468*495ae853SAndroid Build Coastguard Worker      */
469*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_pic_ht;
470*495ae853SAndroid Build Coastguard Worker 
471*495ae853SAndroid Build Coastguard Worker     /**
472*495ae853SAndroid Build Coastguard Worker      * pic_type
473*495ae853SAndroid Build Coastguard Worker      */
474*495ae853SAndroid Build Coastguard Worker     IV_PICTURE_CODING_TYPE_T                e_pic_type;
475*495ae853SAndroid Build Coastguard Worker 
476*495ae853SAndroid Build Coastguard Worker     /**
477*495ae853SAndroid Build Coastguard Worker      * frame_decoded_flag
478*495ae853SAndroid Build Coastguard Worker      */
479*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_frame_decoded_flag;
480*495ae853SAndroid Build Coastguard Worker 
481*495ae853SAndroid Build Coastguard Worker     /**
482*495ae853SAndroid Build Coastguard Worker      * new_seq
483*495ae853SAndroid Build Coastguard Worker      */
484*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_new_seq;
485*495ae853SAndroid Build Coastguard Worker 
486*495ae853SAndroid Build Coastguard Worker     /**
487*495ae853SAndroid Build Coastguard Worker      * output_present
488*495ae853SAndroid Build Coastguard Worker      */
489*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_output_present;
490*495ae853SAndroid Build Coastguard Worker 
491*495ae853SAndroid Build Coastguard Worker     /**
492*495ae853SAndroid Build Coastguard Worker      * progressive_frame_flag
493*495ae853SAndroid Build Coastguard Worker      */
494*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_progressive_frame_flag;
495*495ae853SAndroid Build Coastguard Worker 
496*495ae853SAndroid Build Coastguard Worker     /**
497*495ae853SAndroid Build Coastguard Worker      * is_ref_flag
498*495ae853SAndroid Build Coastguard Worker      */
499*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_is_ref_flag;
500*495ae853SAndroid Build Coastguard Worker 
501*495ae853SAndroid Build Coastguard Worker     /**
502*495ae853SAndroid Build Coastguard Worker      * output_format
503*495ae853SAndroid Build Coastguard Worker      */
504*495ae853SAndroid Build Coastguard Worker     IV_COLOR_FORMAT_T                       e_output_format;
505*495ae853SAndroid Build Coastguard Worker 
506*495ae853SAndroid Build Coastguard Worker     /**
507*495ae853SAndroid Build Coastguard Worker      * disp_frm_buf
508*495ae853SAndroid Build Coastguard Worker      */
509*495ae853SAndroid Build Coastguard Worker     iv_yuv_buf_t                            s_disp_frm_buf;
510*495ae853SAndroid Build Coastguard Worker 
511*495ae853SAndroid Build Coastguard Worker     /**
512*495ae853SAndroid Build Coastguard Worker      * sei params o/p struct
513*495ae853SAndroid Build Coastguard Worker      */
514*495ae853SAndroid Build Coastguard Worker     ivd_sei_decode_op_t                     s_sei_decode_op;
515*495ae853SAndroid Build Coastguard Worker 
516*495ae853SAndroid Build Coastguard Worker     /**
517*495ae853SAndroid Build Coastguard Worker      * fld_type
518*495ae853SAndroid Build Coastguard Worker      */
519*495ae853SAndroid Build Coastguard Worker     IV_FLD_TYPE_T                           e4_fld_type;
520*495ae853SAndroid Build Coastguard Worker 
521*495ae853SAndroid Build Coastguard Worker     /**
522*495ae853SAndroid Build Coastguard Worker      * ts
523*495ae853SAndroid Build Coastguard Worker      */
524*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_ts;
525*495ae853SAndroid Build Coastguard Worker 
526*495ae853SAndroid Build Coastguard Worker     /**
527*495ae853SAndroid Build Coastguard Worker      * disp_buf_id
528*495ae853SAndroid Build Coastguard Worker      */
529*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_disp_buf_id;
530*495ae853SAndroid Build Coastguard Worker 
531*495ae853SAndroid Build Coastguard Worker     /**
532*495ae853SAndroid Build Coastguard Worker      * reorder_depth
533*495ae853SAndroid Build Coastguard Worker      */
534*495ae853SAndroid Build Coastguard Worker     WORD32                                  i4_reorder_depth;
535*495ae853SAndroid Build Coastguard Worker 
536*495ae853SAndroid Build Coastguard Worker     /**
537*495ae853SAndroid Build Coastguard Worker      * disp_buf_id
538*495ae853SAndroid Build Coastguard Worker      */
539*495ae853SAndroid Build Coastguard Worker     WORD32                                  i4_display_index;
540*495ae853SAndroid Build Coastguard Worker 
541*495ae853SAndroid Build Coastguard Worker }ivd_video_decode_op_t;
542*495ae853SAndroid Build Coastguard Worker 
543*495ae853SAndroid Build Coastguard Worker 
544*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
545*495ae853SAndroid Build Coastguard Worker /*   Get Display Frame                                                       */
546*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
547*495ae853SAndroid Build Coastguard Worker 
548*495ae853SAndroid Build Coastguard Worker 
549*495ae853SAndroid Build Coastguard Worker /* IVD_API_COMMAND_TYPE_T::e_cmd = IVD_CMD_GET_DISPLAY_FRAME                 */
550*495ae853SAndroid Build Coastguard Worker 
551*495ae853SAndroid Build Coastguard Worker typedef struct
552*495ae853SAndroid Build Coastguard Worker {
553*495ae853SAndroid Build Coastguard Worker     /**
554*495ae853SAndroid Build Coastguard Worker      * u4_size of the structure
555*495ae853SAndroid Build Coastguard Worker      */
556*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_size;
557*495ae853SAndroid Build Coastguard Worker 
558*495ae853SAndroid Build Coastguard Worker     /**
559*495ae853SAndroid Build Coastguard Worker      * e_cmd
560*495ae853SAndroid Build Coastguard Worker      */
561*495ae853SAndroid Build Coastguard Worker     IVD_API_COMMAND_TYPE_T                  e_cmd;
562*495ae853SAndroid Build Coastguard Worker 
563*495ae853SAndroid Build Coastguard Worker     /**
564*495ae853SAndroid Build Coastguard Worker      * output buffer desc
565*495ae853SAndroid Build Coastguard Worker      */
566*495ae853SAndroid Build Coastguard Worker     ivd_out_bufdesc_t                       s_out_buffer;
567*495ae853SAndroid Build Coastguard Worker 
568*495ae853SAndroid Build Coastguard Worker }ivd_get_display_frame_ip_t;
569*495ae853SAndroid Build Coastguard Worker 
570*495ae853SAndroid Build Coastguard Worker 
571*495ae853SAndroid Build Coastguard Worker typedef struct
572*495ae853SAndroid Build Coastguard Worker {
573*495ae853SAndroid Build Coastguard Worker     /**
574*495ae853SAndroid Build Coastguard Worker      * u4_size of the structure
575*495ae853SAndroid Build Coastguard Worker      */
576*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_size;
577*495ae853SAndroid Build Coastguard Worker 
578*495ae853SAndroid Build Coastguard Worker     /**
579*495ae853SAndroid Build Coastguard Worker      * error_code
580*495ae853SAndroid Build Coastguard Worker      */
581*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_error_code;
582*495ae853SAndroid Build Coastguard Worker 
583*495ae853SAndroid Build Coastguard Worker     /**
584*495ae853SAndroid Build Coastguard Worker      * progressive_frame_flag
585*495ae853SAndroid Build Coastguard Worker      */
586*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_progressive_frame_flag;
587*495ae853SAndroid Build Coastguard Worker 
588*495ae853SAndroid Build Coastguard Worker     /**
589*495ae853SAndroid Build Coastguard Worker      * pic_type
590*495ae853SAndroid Build Coastguard Worker      */
591*495ae853SAndroid Build Coastguard Worker     IV_PICTURE_CODING_TYPE_T                e_pic_type;
592*495ae853SAndroid Build Coastguard Worker 
593*495ae853SAndroid Build Coastguard Worker     /**
594*495ae853SAndroid Build Coastguard Worker      * is_ref_flag
595*495ae853SAndroid Build Coastguard Worker      */
596*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_is_ref_flag;
597*495ae853SAndroid Build Coastguard Worker 
598*495ae853SAndroid Build Coastguard Worker     /**
599*495ae853SAndroid Build Coastguard Worker      * output_format
600*495ae853SAndroid Build Coastguard Worker      */
601*495ae853SAndroid Build Coastguard Worker     IV_COLOR_FORMAT_T                       e_output_format;
602*495ae853SAndroid Build Coastguard Worker 
603*495ae853SAndroid Build Coastguard Worker     /**
604*495ae853SAndroid Build Coastguard Worker      * disp_frm_buf
605*495ae853SAndroid Build Coastguard Worker      */
606*495ae853SAndroid Build Coastguard Worker     iv_yuv_buf_t                            s_disp_frm_buf;
607*495ae853SAndroid Build Coastguard Worker 
608*495ae853SAndroid Build Coastguard Worker     /**
609*495ae853SAndroid Build Coastguard Worker      * fld_type
610*495ae853SAndroid Build Coastguard Worker      */
611*495ae853SAndroid Build Coastguard Worker     IV_FLD_TYPE_T                           e4_fld_type;
612*495ae853SAndroid Build Coastguard Worker 
613*495ae853SAndroid Build Coastguard Worker     /**
614*495ae853SAndroid Build Coastguard Worker      * ts
615*495ae853SAndroid Build Coastguard Worker      */
616*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_ts;
617*495ae853SAndroid Build Coastguard Worker 
618*495ae853SAndroid Build Coastguard Worker     /**
619*495ae853SAndroid Build Coastguard Worker      * disp_buf_id
620*495ae853SAndroid Build Coastguard Worker      */
621*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_disp_buf_id;
622*495ae853SAndroid Build Coastguard Worker }ivd_get_display_frame_op_t;
623*495ae853SAndroid Build Coastguard Worker 
624*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
625*495ae853SAndroid Build Coastguard Worker /*   Set Display Frame                                                       */
626*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
627*495ae853SAndroid Build Coastguard Worker 
628*495ae853SAndroid Build Coastguard Worker 
629*495ae853SAndroid Build Coastguard Worker /* IVD_API_COMMAND_TYPE_T::e_cmd = IVD_CMD_SET_DISPLAY_FRAME                 */
630*495ae853SAndroid Build Coastguard Worker 
631*495ae853SAndroid Build Coastguard Worker typedef struct
632*495ae853SAndroid Build Coastguard Worker {
633*495ae853SAndroid Build Coastguard Worker     /**
634*495ae853SAndroid Build Coastguard Worker      * u4_size of the structure
635*495ae853SAndroid Build Coastguard Worker      */
636*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_size;
637*495ae853SAndroid Build Coastguard Worker 
638*495ae853SAndroid Build Coastguard Worker     /**
639*495ae853SAndroid Build Coastguard Worker      * cmd
640*495ae853SAndroid Build Coastguard Worker      */
641*495ae853SAndroid Build Coastguard Worker     IVD_API_COMMAND_TYPE_T                  e_cmd;
642*495ae853SAndroid Build Coastguard Worker 
643*495ae853SAndroid Build Coastguard Worker     /**
644*495ae853SAndroid Build Coastguard Worker      * num_disp_bufs
645*495ae853SAndroid Build Coastguard Worker      */
646*495ae853SAndroid Build Coastguard Worker     UWORD32                                 num_disp_bufs;
647*495ae853SAndroid Build Coastguard Worker 
648*495ae853SAndroid Build Coastguard Worker     /**
649*495ae853SAndroid Build Coastguard Worker      * output buffer desc
650*495ae853SAndroid Build Coastguard Worker      */
651*495ae853SAndroid Build Coastguard Worker     ivd_out_bufdesc_t                       s_disp_buffer[IVD_VIDDEC_MAX_IO_BUFFERS];
652*495ae853SAndroid Build Coastguard Worker 
653*495ae853SAndroid Build Coastguard Worker }ivd_set_display_frame_ip_t;
654*495ae853SAndroid Build Coastguard Worker 
655*495ae853SAndroid Build Coastguard Worker 
656*495ae853SAndroid Build Coastguard Worker typedef struct
657*495ae853SAndroid Build Coastguard Worker {
658*495ae853SAndroid Build Coastguard Worker     /**
659*495ae853SAndroid Build Coastguard Worker      * u4_size of the structure
660*495ae853SAndroid Build Coastguard Worker      */
661*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_size;
662*495ae853SAndroid Build Coastguard Worker 
663*495ae853SAndroid Build Coastguard Worker     /**
664*495ae853SAndroid Build Coastguard Worker      * error code
665*495ae853SAndroid Build Coastguard Worker      */
666*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_error_code;
667*495ae853SAndroid Build Coastguard Worker }ivd_set_display_frame_op_t;
668*495ae853SAndroid Build Coastguard Worker 
669*495ae853SAndroid Build Coastguard Worker 
670*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
671*495ae853SAndroid Build Coastguard Worker /*   Release Display Frame                                                       */
672*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
673*495ae853SAndroid Build Coastguard Worker 
674*495ae853SAndroid Build Coastguard Worker 
675*495ae853SAndroid Build Coastguard Worker /* IVD_API_COMMAND_TYPE_T::e_cmd = IVD_CMD_SET_DISPLAY_FRAME                 */
676*495ae853SAndroid Build Coastguard Worker 
677*495ae853SAndroid Build Coastguard Worker typedef struct
678*495ae853SAndroid Build Coastguard Worker {
679*495ae853SAndroid Build Coastguard Worker     /**
680*495ae853SAndroid Build Coastguard Worker      * u4_size of the structure
681*495ae853SAndroid Build Coastguard Worker      */
682*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_size;
683*495ae853SAndroid Build Coastguard Worker 
684*495ae853SAndroid Build Coastguard Worker     /**
685*495ae853SAndroid Build Coastguard Worker      * e_cmd
686*495ae853SAndroid Build Coastguard Worker      */
687*495ae853SAndroid Build Coastguard Worker     IVD_API_COMMAND_TYPE_T                  e_cmd;
688*495ae853SAndroid Build Coastguard Worker 
689*495ae853SAndroid Build Coastguard Worker     /**
690*495ae853SAndroid Build Coastguard Worker      * disp_buf_id
691*495ae853SAndroid Build Coastguard Worker      */
692*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_disp_buf_id;
693*495ae853SAndroid Build Coastguard Worker }ivd_rel_display_frame_ip_t;
694*495ae853SAndroid Build Coastguard Worker 
695*495ae853SAndroid Build Coastguard Worker 
696*495ae853SAndroid Build Coastguard Worker typedef struct
697*495ae853SAndroid Build Coastguard Worker {
698*495ae853SAndroid Build Coastguard Worker     /**
699*495ae853SAndroid Build Coastguard Worker      * u4_size of the structure
700*495ae853SAndroid Build Coastguard Worker      */
701*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_size;
702*495ae853SAndroid Build Coastguard Worker 
703*495ae853SAndroid Build Coastguard Worker     /**
704*495ae853SAndroid Build Coastguard Worker      * error code
705*495ae853SAndroid Build Coastguard Worker      */
706*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_error_code;
707*495ae853SAndroid Build Coastguard Worker }ivd_rel_display_frame_op_t;
708*495ae853SAndroid Build Coastguard Worker 
709*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
710*495ae853SAndroid Build Coastguard Worker /*   Video control  Flush                                                    */
711*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
712*495ae853SAndroid Build Coastguard Worker /* IVD_API_COMMAND_TYPE_T::e_cmd            = IVD_CMD_VIDEO_CTL              */
713*495ae853SAndroid Build Coastguard Worker /* IVD_CONTROL_API_COMMAND_TYPE_T::e_sub_cmd    = IVD_CMD_ctl_FLUSH          */
714*495ae853SAndroid Build Coastguard Worker 
715*495ae853SAndroid Build Coastguard Worker 
716*495ae853SAndroid Build Coastguard Worker 
717*495ae853SAndroid Build Coastguard Worker typedef struct{
718*495ae853SAndroid Build Coastguard Worker     /**
719*495ae853SAndroid Build Coastguard Worker      * u4_size of the structure
720*495ae853SAndroid Build Coastguard Worker      */
721*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_size;
722*495ae853SAndroid Build Coastguard Worker 
723*495ae853SAndroid Build Coastguard Worker     /**
724*495ae853SAndroid Build Coastguard Worker      * cmd
725*495ae853SAndroid Build Coastguard Worker      */
726*495ae853SAndroid Build Coastguard Worker     IVD_API_COMMAND_TYPE_T                  e_cmd;
727*495ae853SAndroid Build Coastguard Worker 
728*495ae853SAndroid Build Coastguard Worker     /**
729*495ae853SAndroid Build Coastguard Worker      * sub_cmd
730*495ae853SAndroid Build Coastguard Worker      */
731*495ae853SAndroid Build Coastguard Worker     IVD_CONTROL_API_COMMAND_TYPE_T          e_sub_cmd;
732*495ae853SAndroid Build Coastguard Worker }ivd_ctl_flush_ip_t;
733*495ae853SAndroid Build Coastguard Worker 
734*495ae853SAndroid Build Coastguard Worker 
735*495ae853SAndroid Build Coastguard Worker typedef struct{
736*495ae853SAndroid Build Coastguard Worker     /**
737*495ae853SAndroid Build Coastguard Worker      * u4_size of the structure
738*495ae853SAndroid Build Coastguard Worker      */
739*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_size;
740*495ae853SAndroid Build Coastguard Worker 
741*495ae853SAndroid Build Coastguard Worker     /**
742*495ae853SAndroid Build Coastguard Worker      * error code
743*495ae853SAndroid Build Coastguard Worker      */
744*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_error_code;
745*495ae853SAndroid Build Coastguard Worker }ivd_ctl_flush_op_t;
746*495ae853SAndroid Build Coastguard Worker 
747*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
748*495ae853SAndroid Build Coastguard Worker /*   Video control reset                                                     */
749*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
750*495ae853SAndroid Build Coastguard Worker /* IVD_API_COMMAND_TYPE_T::e_cmd            = IVD_CMD_VIDEO_CTL              */
751*495ae853SAndroid Build Coastguard Worker /* IVD_CONTROL_API_COMMAND_TYPE_T::e_sub_cmd    = IVD_CMD_ctl_RESET          */
752*495ae853SAndroid Build Coastguard Worker 
753*495ae853SAndroid Build Coastguard Worker 
754*495ae853SAndroid Build Coastguard Worker typedef struct{
755*495ae853SAndroid Build Coastguard Worker     /**
756*495ae853SAndroid Build Coastguard Worker      * u4_size of the structure
757*495ae853SAndroid Build Coastguard Worker      */
758*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_size;
759*495ae853SAndroid Build Coastguard Worker 
760*495ae853SAndroid Build Coastguard Worker     /**
761*495ae853SAndroid Build Coastguard Worker      * cmd
762*495ae853SAndroid Build Coastguard Worker      */
763*495ae853SAndroid Build Coastguard Worker     IVD_API_COMMAND_TYPE_T                  e_cmd;
764*495ae853SAndroid Build Coastguard Worker 
765*495ae853SAndroid Build Coastguard Worker     /**
766*495ae853SAndroid Build Coastguard Worker      * sub_cmd
767*495ae853SAndroid Build Coastguard Worker      */
768*495ae853SAndroid Build Coastguard Worker 
769*495ae853SAndroid Build Coastguard Worker     IVD_CONTROL_API_COMMAND_TYPE_T          e_sub_cmd;
770*495ae853SAndroid Build Coastguard Worker }ivd_ctl_reset_ip_t;
771*495ae853SAndroid Build Coastguard Worker 
772*495ae853SAndroid Build Coastguard Worker 
773*495ae853SAndroid Build Coastguard Worker typedef struct{
774*495ae853SAndroid Build Coastguard Worker     /**
775*495ae853SAndroid Build Coastguard Worker      * u4_size of the structure
776*495ae853SAndroid Build Coastguard Worker      */
777*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_size;
778*495ae853SAndroid Build Coastguard Worker 
779*495ae853SAndroid Build Coastguard Worker     /**
780*495ae853SAndroid Build Coastguard Worker      * error code
781*495ae853SAndroid Build Coastguard Worker      */
782*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_error_code;
783*495ae853SAndroid Build Coastguard Worker }ivd_ctl_reset_op_t;
784*495ae853SAndroid Build Coastguard Worker 
785*495ae853SAndroid Build Coastguard Worker 
786*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
787*495ae853SAndroid Build Coastguard Worker /*   Video control  Set Params                                               */
788*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
789*495ae853SAndroid Build Coastguard Worker /* IVD_API_COMMAND_TYPE_T::e_cmd        = IVD_CMD_VIDEO_CTL                  */
790*495ae853SAndroid Build Coastguard Worker /* IVD_CONTROL_API_COMMAND_TYPE_T::e_sub_cmd=IVD_CMD_ctl_SETPARAMS           */
791*495ae853SAndroid Build Coastguard Worker /* IVD_CONTROL_API_COMMAND_TYPE_T::e_sub_cmd=IVD_CMD_ctl_SETDEFAULT          */
792*495ae853SAndroid Build Coastguard Worker 
793*495ae853SAndroid Build Coastguard Worker 
794*495ae853SAndroid Build Coastguard Worker 
795*495ae853SAndroid Build Coastguard Worker typedef struct {
796*495ae853SAndroid Build Coastguard Worker     /**
797*495ae853SAndroid Build Coastguard Worker      * u4_size of the structure
798*495ae853SAndroid Build Coastguard Worker      */
799*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_size;
800*495ae853SAndroid Build Coastguard Worker 
801*495ae853SAndroid Build Coastguard Worker     /**
802*495ae853SAndroid Build Coastguard Worker      * cmd
803*495ae853SAndroid Build Coastguard Worker      */
804*495ae853SAndroid Build Coastguard Worker     IVD_API_COMMAND_TYPE_T                      e_cmd;
805*495ae853SAndroid Build Coastguard Worker 
806*495ae853SAndroid Build Coastguard Worker     /**
807*495ae853SAndroid Build Coastguard Worker      * sub_cmd
808*495ae853SAndroid Build Coastguard Worker      */
809*495ae853SAndroid Build Coastguard Worker     IVD_CONTROL_API_COMMAND_TYPE_T              e_sub_cmd;
810*495ae853SAndroid Build Coastguard Worker 
811*495ae853SAndroid Build Coastguard Worker     /**
812*495ae853SAndroid Build Coastguard Worker      * vid_dec_mode
813*495ae853SAndroid Build Coastguard Worker      */
814*495ae853SAndroid Build Coastguard Worker     IVD_VIDEO_DECODE_MODE_T                     e_vid_dec_mode;
815*495ae853SAndroid Build Coastguard Worker 
816*495ae853SAndroid Build Coastguard Worker     /**
817*495ae853SAndroid Build Coastguard Worker      * disp_wd
818*495ae853SAndroid Build Coastguard Worker      */
819*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_disp_wd;
820*495ae853SAndroid Build Coastguard Worker 
821*495ae853SAndroid Build Coastguard Worker     /**
822*495ae853SAndroid Build Coastguard Worker      * frm_skip_mode
823*495ae853SAndroid Build Coastguard Worker      */
824*495ae853SAndroid Build Coastguard Worker     IVD_FRAME_SKIP_MODE_T                       e_frm_skip_mode;
825*495ae853SAndroid Build Coastguard Worker 
826*495ae853SAndroid Build Coastguard Worker     /**
827*495ae853SAndroid Build Coastguard Worker      * frm_out_mode
828*495ae853SAndroid Build Coastguard Worker      */
829*495ae853SAndroid Build Coastguard Worker     IVD_DISPLAY_FRAME_OUT_MODE_T                e_frm_out_mode;
830*495ae853SAndroid Build Coastguard Worker }ivd_ctl_set_config_ip_t;
831*495ae853SAndroid Build Coastguard Worker 
832*495ae853SAndroid Build Coastguard Worker 
833*495ae853SAndroid Build Coastguard Worker typedef struct{
834*495ae853SAndroid Build Coastguard Worker     /**
835*495ae853SAndroid Build Coastguard Worker      * u4_size of the structure
836*495ae853SAndroid Build Coastguard Worker      */
837*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_size;
838*495ae853SAndroid Build Coastguard Worker 
839*495ae853SAndroid Build Coastguard Worker     /**
840*495ae853SAndroid Build Coastguard Worker      * u4_error_code
841*495ae853SAndroid Build Coastguard Worker      */
842*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_error_code;
843*495ae853SAndroid Build Coastguard Worker }ivd_ctl_set_config_op_t;
844*495ae853SAndroid Build Coastguard Worker 
845*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
846*495ae853SAndroid Build Coastguard Worker /*   Video control:Get Buf Info                                              */
847*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
848*495ae853SAndroid Build Coastguard Worker 
849*495ae853SAndroid Build Coastguard Worker /* IVD_API_COMMAND_TYPE_T::e_cmd         = IVD_CMD_VIDEO_CTL                 */
850*495ae853SAndroid Build Coastguard Worker /* IVD_CONTROL_API_COMMAND_TYPE_T::e_sub_cmd=IVD_CMD_ctl_GETBUFINFO          */
851*495ae853SAndroid Build Coastguard Worker 
852*495ae853SAndroid Build Coastguard Worker 
853*495ae853SAndroid Build Coastguard Worker typedef struct{
854*495ae853SAndroid Build Coastguard Worker     /**
855*495ae853SAndroid Build Coastguard Worker      * u4_size of the structure
856*495ae853SAndroid Build Coastguard Worker      */
857*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_size;
858*495ae853SAndroid Build Coastguard Worker 
859*495ae853SAndroid Build Coastguard Worker     /**
860*495ae853SAndroid Build Coastguard Worker      *  e_cmd
861*495ae853SAndroid Build Coastguard Worker      */
862*495ae853SAndroid Build Coastguard Worker     IVD_API_COMMAND_TYPE_T                      e_cmd;
863*495ae853SAndroid Build Coastguard Worker 
864*495ae853SAndroid Build Coastguard Worker     /**
865*495ae853SAndroid Build Coastguard Worker      * sub_cmd
866*495ae853SAndroid Build Coastguard Worker      */
867*495ae853SAndroid Build Coastguard Worker     IVD_CONTROL_API_COMMAND_TYPE_T              e_sub_cmd;
868*495ae853SAndroid Build Coastguard Worker }ivd_ctl_getbufinfo_ip_t;
869*495ae853SAndroid Build Coastguard Worker 
870*495ae853SAndroid Build Coastguard Worker 
871*495ae853SAndroid Build Coastguard Worker typedef struct{
872*495ae853SAndroid Build Coastguard Worker     /**
873*495ae853SAndroid Build Coastguard Worker      * u4_size of the structure
874*495ae853SAndroid Build Coastguard Worker      */
875*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_size;
876*495ae853SAndroid Build Coastguard Worker 
877*495ae853SAndroid Build Coastguard Worker     /**
878*495ae853SAndroid Build Coastguard Worker      * error code
879*495ae853SAndroid Build Coastguard Worker      */
880*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_error_code;
881*495ae853SAndroid Build Coastguard Worker 
882*495ae853SAndroid Build Coastguard Worker     /**
883*495ae853SAndroid Build Coastguard Worker      * no of display buffer sets required by codec
884*495ae853SAndroid Build Coastguard Worker      */
885*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_num_disp_bufs;
886*495ae853SAndroid Build Coastguard Worker 
887*495ae853SAndroid Build Coastguard Worker     /**
888*495ae853SAndroid Build Coastguard Worker      * no of input buffers required for codec
889*495ae853SAndroid Build Coastguard Worker      */
890*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_min_num_in_bufs;
891*495ae853SAndroid Build Coastguard Worker 
892*495ae853SAndroid Build Coastguard Worker     /**
893*495ae853SAndroid Build Coastguard Worker      * no of output buffers required for codec
894*495ae853SAndroid Build Coastguard Worker      */
895*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_min_num_out_bufs;
896*495ae853SAndroid Build Coastguard Worker 
897*495ae853SAndroid Build Coastguard Worker     /**
898*495ae853SAndroid Build Coastguard Worker      * sizes of each input buffer required
899*495ae853SAndroid Build Coastguard Worker      */
900*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_min_in_buf_size[IVD_VIDDEC_MAX_IO_BUFFERS];
901*495ae853SAndroid Build Coastguard Worker 
902*495ae853SAndroid Build Coastguard Worker     /**
903*495ae853SAndroid Build Coastguard Worker      * sizes of each output buffer required
904*495ae853SAndroid Build Coastguard Worker      */
905*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_min_out_buf_size[IVD_VIDDEC_MAX_IO_BUFFERS];
906*495ae853SAndroid Build Coastguard Worker }ivd_ctl_getbufinfo_op_t;
907*495ae853SAndroid Build Coastguard Worker 
908*495ae853SAndroid Build Coastguard Worker 
909*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
910*495ae853SAndroid Build Coastguard Worker /*   Video control:Getstatus Call                                            */
911*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
912*495ae853SAndroid Build Coastguard Worker 
913*495ae853SAndroid Build Coastguard Worker 
914*495ae853SAndroid Build Coastguard Worker /* IVD_API_COMMAND_TYPE_T::e_cmd        = IVD_CMD_VIDEO_CTL                  */
915*495ae853SAndroid Build Coastguard Worker /* IVD_CONTROL_API_COMMAND_TYPE_T::e_sub_cmd=IVD_CMD_ctl_GETPARAMS           */
916*495ae853SAndroid Build Coastguard Worker 
917*495ae853SAndroid Build Coastguard Worker 
918*495ae853SAndroid Build Coastguard Worker typedef struct{
919*495ae853SAndroid Build Coastguard Worker     /**
920*495ae853SAndroid Build Coastguard Worker      * u4_size of the structure
921*495ae853SAndroid Build Coastguard Worker      */
922*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_size;
923*495ae853SAndroid Build Coastguard Worker 
924*495ae853SAndroid Build Coastguard Worker     /**
925*495ae853SAndroid Build Coastguard Worker      * cmd
926*495ae853SAndroid Build Coastguard Worker      */
927*495ae853SAndroid Build Coastguard Worker     IVD_API_COMMAND_TYPE_T                      e_cmd;
928*495ae853SAndroid Build Coastguard Worker 
929*495ae853SAndroid Build Coastguard Worker     /**
930*495ae853SAndroid Build Coastguard Worker      * sub_cmd
931*495ae853SAndroid Build Coastguard Worker      */
932*495ae853SAndroid Build Coastguard Worker     IVD_CONTROL_API_COMMAND_TYPE_T              e_sub_cmd;
933*495ae853SAndroid Build Coastguard Worker }ivd_ctl_getstatus_ip_t;
934*495ae853SAndroid Build Coastguard Worker 
935*495ae853SAndroid Build Coastguard Worker 
936*495ae853SAndroid Build Coastguard Worker typedef struct{
937*495ae853SAndroid Build Coastguard Worker 
938*495ae853SAndroid Build Coastguard Worker      /**
939*495ae853SAndroid Build Coastguard Worker       * u4_size of the structure
940*495ae853SAndroid Build Coastguard Worker       */
941*495ae853SAndroid Build Coastguard Worker     UWORD32                  u4_size;
942*495ae853SAndroid Build Coastguard Worker 
943*495ae853SAndroid Build Coastguard Worker     /**
944*495ae853SAndroid Build Coastguard Worker       * error code
945*495ae853SAndroid Build Coastguard Worker       */
946*495ae853SAndroid Build Coastguard Worker     UWORD32                  u4_error_code;
947*495ae853SAndroid Build Coastguard Worker 
948*495ae853SAndroid Build Coastguard Worker     /**
949*495ae853SAndroid Build Coastguard Worker      * no of display buffer sets required by codec
950*495ae853SAndroid Build Coastguard Worker      */
951*495ae853SAndroid Build Coastguard Worker     UWORD32                  u4_num_disp_bufs;
952*495ae853SAndroid Build Coastguard Worker 
953*495ae853SAndroid Build Coastguard Worker     /**
954*495ae853SAndroid Build Coastguard Worker      * u4_pic_ht
955*495ae853SAndroid Build Coastguard Worker      */
956*495ae853SAndroid Build Coastguard Worker     UWORD32                  u4_pic_ht;
957*495ae853SAndroid Build Coastguard Worker 
958*495ae853SAndroid Build Coastguard Worker     /**
959*495ae853SAndroid Build Coastguard Worker      * u4_pic_wd
960*495ae853SAndroid Build Coastguard Worker      */
961*495ae853SAndroid Build Coastguard Worker     UWORD32                  u4_pic_wd;
962*495ae853SAndroid Build Coastguard Worker 
963*495ae853SAndroid Build Coastguard Worker     /**
964*495ae853SAndroid Build Coastguard Worker      * frame_rate
965*495ae853SAndroid Build Coastguard Worker      */
966*495ae853SAndroid Build Coastguard Worker     UWORD32                  u4_frame_rate;
967*495ae853SAndroid Build Coastguard Worker 
968*495ae853SAndroid Build Coastguard Worker     /**
969*495ae853SAndroid Build Coastguard Worker      * u4_bit_rate
970*495ae853SAndroid Build Coastguard Worker      */
971*495ae853SAndroid Build Coastguard Worker     UWORD32                  u4_bit_rate;
972*495ae853SAndroid Build Coastguard Worker 
973*495ae853SAndroid Build Coastguard Worker     /**
974*495ae853SAndroid Build Coastguard Worker      * content_type
975*495ae853SAndroid Build Coastguard Worker      */
976*495ae853SAndroid Build Coastguard Worker     IV_CONTENT_TYPE_T        e_content_type;
977*495ae853SAndroid Build Coastguard Worker 
978*495ae853SAndroid Build Coastguard Worker     /**
979*495ae853SAndroid Build Coastguard Worker      * output_chroma_format
980*495ae853SAndroid Build Coastguard Worker      */
981*495ae853SAndroid Build Coastguard Worker     IV_COLOR_FORMAT_T        e_output_chroma_format;
982*495ae853SAndroid Build Coastguard Worker 
983*495ae853SAndroid Build Coastguard Worker     /**
984*495ae853SAndroid Build Coastguard Worker      * no of input buffers required for codec
985*495ae853SAndroid Build Coastguard Worker      */
986*495ae853SAndroid Build Coastguard Worker     UWORD32                  u4_min_num_in_bufs;
987*495ae853SAndroid Build Coastguard Worker 
988*495ae853SAndroid Build Coastguard Worker     /**
989*495ae853SAndroid Build Coastguard Worker      * no of output buffers required for codec
990*495ae853SAndroid Build Coastguard Worker      */
991*495ae853SAndroid Build Coastguard Worker     UWORD32                  u4_min_num_out_bufs;
992*495ae853SAndroid Build Coastguard Worker 
993*495ae853SAndroid Build Coastguard Worker     /**
994*495ae853SAndroid Build Coastguard Worker      * sizes of each input buffer required
995*495ae853SAndroid Build Coastguard Worker      */
996*495ae853SAndroid Build Coastguard Worker     UWORD32                  u4_min_in_buf_size[IVD_VIDDEC_MAX_IO_BUFFERS];
997*495ae853SAndroid Build Coastguard Worker 
998*495ae853SAndroid Build Coastguard Worker     /**
999*495ae853SAndroid Build Coastguard Worker      * sizes of each output buffer required
1000*495ae853SAndroid Build Coastguard Worker      */
1001*495ae853SAndroid Build Coastguard Worker     UWORD32                  u4_min_out_buf_size[IVD_VIDDEC_MAX_IO_BUFFERS];
1002*495ae853SAndroid Build Coastguard Worker }ivd_ctl_getstatus_op_t;
1003*495ae853SAndroid Build Coastguard Worker 
1004*495ae853SAndroid Build Coastguard Worker 
1005*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
1006*495ae853SAndroid Build Coastguard Worker /*   Video control:Get Version Info                                          */
1007*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
1008*495ae853SAndroid Build Coastguard Worker 
1009*495ae853SAndroid Build Coastguard Worker /* IVD_API_COMMAND_TYPE_T::e_cmd        = IVD_CMD_VIDEO_CTL                  */
1010*495ae853SAndroid Build Coastguard Worker /* IVD_CONTROL_API_COMMAND_TYPE_T::e_sub_cmd=IVD_CMD_ctl_GETVERSION          */
1011*495ae853SAndroid Build Coastguard Worker 
1012*495ae853SAndroid Build Coastguard Worker 
1013*495ae853SAndroid Build Coastguard Worker typedef struct{
1014*495ae853SAndroid Build Coastguard Worker     /**
1015*495ae853SAndroid Build Coastguard Worker      * u4_size of the structure
1016*495ae853SAndroid Build Coastguard Worker      */
1017*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_size;
1018*495ae853SAndroid Build Coastguard Worker 
1019*495ae853SAndroid Build Coastguard Worker     /**
1020*495ae853SAndroid Build Coastguard Worker      * cmd
1021*495ae853SAndroid Build Coastguard Worker      */
1022*495ae853SAndroid Build Coastguard Worker     IVD_API_COMMAND_TYPE_T                      e_cmd;
1023*495ae853SAndroid Build Coastguard Worker 
1024*495ae853SAndroid Build Coastguard Worker     /**
1025*495ae853SAndroid Build Coastguard Worker      * sub_cmd
1026*495ae853SAndroid Build Coastguard Worker      */
1027*495ae853SAndroid Build Coastguard Worker     IVD_CONTROL_API_COMMAND_TYPE_T              e_sub_cmd;
1028*495ae853SAndroid Build Coastguard Worker 
1029*495ae853SAndroid Build Coastguard Worker     /**
1030*495ae853SAndroid Build Coastguard Worker      * pv_version_buffer
1031*495ae853SAndroid Build Coastguard Worker      */
1032*495ae853SAndroid Build Coastguard Worker     void                                        *pv_version_buffer;
1033*495ae853SAndroid Build Coastguard Worker 
1034*495ae853SAndroid Build Coastguard Worker     /**
1035*495ae853SAndroid Build Coastguard Worker      * version_buffer_size
1036*495ae853SAndroid Build Coastguard Worker      */
1037*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_version_buffer_size;
1038*495ae853SAndroid Build Coastguard Worker }ivd_ctl_getversioninfo_ip_t;
1039*495ae853SAndroid Build Coastguard Worker 
1040*495ae853SAndroid Build Coastguard Worker 
1041*495ae853SAndroid Build Coastguard Worker typedef struct{
1042*495ae853SAndroid Build Coastguard Worker     /**
1043*495ae853SAndroid Build Coastguard Worker      * u4_size of the structure
1044*495ae853SAndroid Build Coastguard Worker      */
1045*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_size;
1046*495ae853SAndroid Build Coastguard Worker 
1047*495ae853SAndroid Build Coastguard Worker     /**
1048*495ae853SAndroid Build Coastguard Worker      * error code
1049*495ae853SAndroid Build Coastguard Worker      */
1050*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_error_code;
1051*495ae853SAndroid Build Coastguard Worker }ivd_ctl_getversioninfo_op_t;
1052*495ae853SAndroid Build Coastguard Worker 
1053*495ae853SAndroid Build Coastguard Worker #endif /* __IVD_H__ */
1054*495ae853SAndroid Build Coastguard Worker 
1055