xref: /aosp_15_r20/external/libmpeg2/common/iv.h (revision a97c2a1f0a796dc32bed80d3353c69c5fc07c750)
1*a97c2a1fSXin Li /******************************************************************************
2*a97c2a1fSXin Li  *
3*a97c2a1fSXin Li  * Copyright (C) 2015 The Android Open Source Project
4*a97c2a1fSXin Li  *
5*a97c2a1fSXin Li  * Licensed under the Apache License, Version 2.0 (the "License");
6*a97c2a1fSXin Li  * you may not use this file except in compliance with the License.
7*a97c2a1fSXin Li  * You may obtain a copy of the License at:
8*a97c2a1fSXin Li  *
9*a97c2a1fSXin Li  * http://www.apache.org/licenses/LICENSE-2.0
10*a97c2a1fSXin Li  *
11*a97c2a1fSXin Li  * Unless required by applicable law or agreed to in writing, software
12*a97c2a1fSXin Li  * distributed under the License is distributed on an "AS IS" BASIS,
13*a97c2a1fSXin Li  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*a97c2a1fSXin Li  * See the License for the specific language governing permissions and
15*a97c2a1fSXin Li  * limitations under the License.
16*a97c2a1fSXin Li  *
17*a97c2a1fSXin Li  *****************************************************************************
18*a97c2a1fSXin Li  * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
19*a97c2a1fSXin Li */
20*a97c2a1fSXin Li /**
21*a97c2a1fSXin Li *******************************************************************************
22*a97c2a1fSXin Li * @file
23*a97c2a1fSXin Li *  iv.h
24*a97c2a1fSXin Li *
25*a97c2a1fSXin Li * @brief
26*a97c2a1fSXin Li *  This file contains all the necessary structure and  enumeration
27*a97c2a1fSXin Li * definitions needed for the Application  Program Interface(API) of the
28*a97c2a1fSXin Li * Ittiam Video and Image  codecs
29*a97c2a1fSXin Li *
30*a97c2a1fSXin Li * @author
31*a97c2a1fSXin Li *  100239(RCY)
32*a97c2a1fSXin Li *
33*a97c2a1fSXin Li * @par List of Functions:
34*a97c2a1fSXin Li *
35*a97c2a1fSXin Li * @remarks
36*a97c2a1fSXin Li *  None
37*a97c2a1fSXin Li *
38*a97c2a1fSXin Li *******************************************************************************
39*a97c2a1fSXin Li */
40*a97c2a1fSXin Li 
41*a97c2a1fSXin Li 
42*a97c2a1fSXin Li #ifndef _IV_H
43*a97c2a1fSXin Li #define _IV_H
44*a97c2a1fSXin Li 
45*a97c2a1fSXin Li /*****************************************************************************/
46*a97c2a1fSXin Li /* Constant Macros                                                           */
47*a97c2a1fSXin Li /*****************************************************************************/
48*a97c2a1fSXin Li 
49*a97c2a1fSXin Li 
50*a97c2a1fSXin Li /*****************************************************************************/
51*a97c2a1fSXin Li /* Typedefs                                                                  */
52*a97c2a1fSXin Li /*****************************************************************************/
53*a97c2a1fSXin Li 
54*a97c2a1fSXin Li /*****************************************************************************/
55*a97c2a1fSXin Li /* Enums                                                                     */
56*a97c2a1fSXin Li /*****************************************************************************/
57*a97c2a1fSXin Li 
58*a97c2a1fSXin Li 
59*a97c2a1fSXin Li /* IV_API_CALL_STATUS_T:This is only to return the FAIL/PASS status to the  */
60*a97c2a1fSXin Li /* application for the current API call                                     */
61*a97c2a1fSXin Li 
62*a97c2a1fSXin Li typedef enum{
63*a97c2a1fSXin Li     IV_STATUS_NA                                = 0x7FFFFFFF,
64*a97c2a1fSXin Li     IV_SUCCESS                                  = 0x0,
65*a97c2a1fSXin Li     IV_FAIL                                     = 0x1,
66*a97c2a1fSXin Li }IV_API_CALL_STATUS_T;
67*a97c2a1fSXin Li 
68*a97c2a1fSXin Li /* IV_MEM_TYPE_T: This Enumeration defines the type of memory (Internal/Ext */
69*a97c2a1fSXin Li /* -ernal) along with the cacheable/non-cacheable attributes                */
70*a97c2a1fSXin Li 
71*a97c2a1fSXin Li typedef enum {
72*a97c2a1fSXin Li     IV_NA_MEM_TYPE                              = 0x7FFFFFFF,
73*a97c2a1fSXin Li     IV_INTERNAL_CACHEABLE_PERSISTENT_MEM        = 0x1,
74*a97c2a1fSXin Li     IV_INTERNAL_CACHEABLE_SCRATCH_MEM           = 0x2,
75*a97c2a1fSXin Li     IV_EXTERNAL_CACHEABLE_PERSISTENT_MEM        = 0x3,
76*a97c2a1fSXin Li     IV_EXTERNAL_CACHEABLE_SCRATCH_MEM           = 0x4,
77*a97c2a1fSXin Li     IV_INTERNAL_NONCACHEABLE_PERSISTENT_MEM     = 0x5,
78*a97c2a1fSXin Li     IV_INTERNAL_NONCACHEABLE_SCRATCH_MEM        = 0x6,
79*a97c2a1fSXin Li     IV_EXTERNAL_NONCACHEABLE_PERSISTENT_MEM     = 0x7,
80*a97c2a1fSXin Li     IV_EXTERNAL_NONCACHEABLE_SCRATCH_MEM        = 0x8
81*a97c2a1fSXin Li }IV_MEM_TYPE_T;
82*a97c2a1fSXin Li 
83*a97c2a1fSXin Li /* IV_COLOR_FORMAT_T: This enumeration lists all the color formats which    */
84*a97c2a1fSXin Li /* finds usage in video/image codecs                                        */
85*a97c2a1fSXin Li 
86*a97c2a1fSXin Li typedef enum {
87*a97c2a1fSXin Li     IV_CHROMA_NA                            = 0x7FFFFFFF,
88*a97c2a1fSXin Li     IV_YUV_420P                             = 0x1,
89*a97c2a1fSXin Li     IV_YUV_422P                             = 0x2,
90*a97c2a1fSXin Li     IV_420_UV_INTL                          = 0x3,
91*a97c2a1fSXin Li     IV_YUV_422IBE                           = 0x4,
92*a97c2a1fSXin Li     IV_YUV_422ILE                           = 0x5,
93*a97c2a1fSXin Li     IV_YUV_444P                             = 0x6,
94*a97c2a1fSXin Li     IV_YUV_411P                             = 0x7,
95*a97c2a1fSXin Li     IV_GRAY                                 = 0x8,
96*a97c2a1fSXin Li     IV_RGB_565                              = 0x9,
97*a97c2a1fSXin Li     IV_RGB_24                               = 0xa,
98*a97c2a1fSXin Li     IV_YUV_420SP_UV                         = 0xb,
99*a97c2a1fSXin Li     IV_YUV_420SP_VU                         = 0xc,
100*a97c2a1fSXin Li     IV_RGBA_8888                            = 0xd
101*a97c2a1fSXin Li }IV_COLOR_FORMAT_T;
102*a97c2a1fSXin Li 
103*a97c2a1fSXin Li /* IV_PICTURE_CODING_TYPE_T: VOP/Frame coding type Enumeration              */
104*a97c2a1fSXin Li 
105*a97c2a1fSXin Li typedef enum {
106*a97c2a1fSXin Li     IV_NA_FRAME                             = 0x7FFFFFFF,
107*a97c2a1fSXin Li     IV_I_FRAME                              = 0x0,
108*a97c2a1fSXin Li     IV_P_FRAME                              = 0x1,
109*a97c2a1fSXin Li     IV_B_FRAME                              = 0x2,
110*a97c2a1fSXin Li     IV_IDR_FRAME                            = 0x3,
111*a97c2a1fSXin Li     IV_II_FRAME                             = 0x4,
112*a97c2a1fSXin Li     IV_IP_FRAME                             = 0x5,
113*a97c2a1fSXin Li     IV_IB_FRAME                             = 0x6,
114*a97c2a1fSXin Li     IV_PI_FRAME                             = 0x7,
115*a97c2a1fSXin Li     IV_PP_FRAME                             = 0x8,
116*a97c2a1fSXin Li     IV_PB_FRAME                             = 0x9,
117*a97c2a1fSXin Li     IV_BI_FRAME                             = 0xa,
118*a97c2a1fSXin Li     IV_BP_FRAME                             = 0xb,
119*a97c2a1fSXin Li     IV_BB_FRAME                             = 0xc,
120*a97c2a1fSXin Li     IV_MBAFF_I_FRAME                        = 0xd,
121*a97c2a1fSXin Li     IV_MBAFF_P_FRAME                        = 0xe,
122*a97c2a1fSXin Li     IV_MBAFF_B_FRAME                        = 0xf,
123*a97c2a1fSXin Li     IV_MBAFF_IDR_FRAME                      = 0x10,
124*a97c2a1fSXin Li     IV_NOT_CODED_FRAME                      = 0x11,
125*a97c2a1fSXin Li     IV_FRAMETYPE_DEFAULT                    = IV_I_FRAME
126*a97c2a1fSXin Li }IV_PICTURE_CODING_TYPE_T;
127*a97c2a1fSXin Li 
128*a97c2a1fSXin Li /* IV_FLD_TYPE_T: field type Enumeration                                    */
129*a97c2a1fSXin Li 
130*a97c2a1fSXin Li typedef enum {
131*a97c2a1fSXin Li     IV_NA_FLD                               = 0x7FFFFFFF,
132*a97c2a1fSXin Li     IV_TOP_FLD                              = 0x0,
133*a97c2a1fSXin Li     IV_BOT_FLD                              = 0x1,
134*a97c2a1fSXin Li     IV_FLD_TYPE_DEFAULT                     = IV_TOP_FLD
135*a97c2a1fSXin Li }IV_FLD_TYPE_T;
136*a97c2a1fSXin Li 
137*a97c2a1fSXin Li /* IV_CONTENT_TYPE_T: Video content type                                     */
138*a97c2a1fSXin Li 
139*a97c2a1fSXin Li typedef enum {
140*a97c2a1fSXin Li     IV_CONTENTTYPE_NA                       = 0x7FFFFFFF,
141*a97c2a1fSXin Li     IV_PROGRESSIVE                          = 0x0,
142*a97c2a1fSXin Li     IV_INTERLACED                           = 0x1,
143*a97c2a1fSXin Li     IV_PROGRESSIVE_FRAME                    = 0x2,
144*a97c2a1fSXin Li     IV_INTERLACED_FRAME                     = 0x3,
145*a97c2a1fSXin Li     IV_INTERLACED_TOPFIELD                  = 0x4,
146*a97c2a1fSXin Li     IV_INTERLACED_BOTTOMFIELD               = 0x5,
147*a97c2a1fSXin Li     IV_CONTENTTYPE_DEFAULT                  = IV_PROGRESSIVE,
148*a97c2a1fSXin Li }IV_CONTENT_TYPE_T;
149*a97c2a1fSXin Li 
150*a97c2a1fSXin Li /* IV_API_COMMAND_TYPE_T:API command type                                   */
151*a97c2a1fSXin Li typedef enum {
152*a97c2a1fSXin Li     IV_CMD_NA                           = 0x7FFFFFFF,
153*a97c2a1fSXin Li     IV_CMD_GET_NUM_MEM_REC              = 0x0,
154*a97c2a1fSXin Li     IV_CMD_FILL_NUM_MEM_REC             = 0x1,
155*a97c2a1fSXin Li     IV_CMD_RETRIEVE_MEMREC              = 0x2,
156*a97c2a1fSXin Li     IV_CMD_INIT                         = 0x3,
157*a97c2a1fSXin Li     IV_CMD_DUMMY_ELEMENT                = 0x4,
158*a97c2a1fSXin Li }IV_API_COMMAND_TYPE_T;
159*a97c2a1fSXin Li 
160*a97c2a1fSXin Li /*****************************************************************************/
161*a97c2a1fSXin Li /* Structure                                                                 */
162*a97c2a1fSXin Li /*****************************************************************************/
163*a97c2a1fSXin Li 
164*a97c2a1fSXin Li /* IV_OBJ_T: This structure defines the handle for the codec instance        */
165*a97c2a1fSXin Li 
166*a97c2a1fSXin Li typedef struct{
167*a97c2a1fSXin Li     /**
168*a97c2a1fSXin Li      * u4_size of the structure
169*a97c2a1fSXin Li      */
170*a97c2a1fSXin Li     UWORD32                                     u4_size;
171*a97c2a1fSXin Li 
172*a97c2a1fSXin Li     /**
173*a97c2a1fSXin Li      * Pointer to the API function pointer table of the codec
174*a97c2a1fSXin Li      */
175*a97c2a1fSXin Li     void                                        *pv_fxns;
176*a97c2a1fSXin Li 
177*a97c2a1fSXin Li     /**
178*a97c2a1fSXin Li      * Pointer to the handle of the codec
179*a97c2a1fSXin Li      */
180*a97c2a1fSXin Li     void                                        *pv_codec_handle;
181*a97c2a1fSXin Li }iv_obj_t;
182*a97c2a1fSXin Li 
183*a97c2a1fSXin Li /* iv_mem_rec_t: This structure defines the memory record holder which will  */
184*a97c2a1fSXin Li /* be used by the codec to communicate its memory requirements to the        */
185*a97c2a1fSXin Li /* application through appropriate API functions                             */
186*a97c2a1fSXin Li 
187*a97c2a1fSXin Li typedef struct {
188*a97c2a1fSXin Li     /**
189*a97c2a1fSXin Li      * u4_size of the structure
190*a97c2a1fSXin Li      */
191*a97c2a1fSXin Li     UWORD32                                     u4_size;
192*a97c2a1fSXin Li 
193*a97c2a1fSXin Li     /**
194*a97c2a1fSXin Li      * Pointer to the memory allocated by the application
195*a97c2a1fSXin Li      */
196*a97c2a1fSXin Li     void                                        *pv_base;
197*a97c2a1fSXin Li 
198*a97c2a1fSXin Li     /**
199*a97c2a1fSXin Li      * u4_size of the memory to be allocated
200*a97c2a1fSXin Li      */
201*a97c2a1fSXin Li     UWORD32                                     u4_mem_size;
202*a97c2a1fSXin Li 
203*a97c2a1fSXin Li     /**
204*a97c2a1fSXin Li      * Alignment of the memory pointer
205*a97c2a1fSXin Li      */
206*a97c2a1fSXin Li     UWORD32                                     u4_mem_alignment;
207*a97c2a1fSXin Li     /**
208*a97c2a1fSXin Li      * Nature of the memory to be allocated
209*a97c2a1fSXin Li      */
210*a97c2a1fSXin Li     IV_MEM_TYPE_T                               e_mem_type;
211*a97c2a1fSXin Li }iv_mem_rec_t;
212*a97c2a1fSXin Li 
213*a97c2a1fSXin Li /* IV_YUV_BUF_T: This structure defines attributes for the yuv buffer        */
214*a97c2a1fSXin Li 
215*a97c2a1fSXin Li typedef struct {
216*a97c2a1fSXin Li     /**
217*a97c2a1fSXin Li      * u4_size of the structure
218*a97c2a1fSXin Li      */
219*a97c2a1fSXin Li     UWORD32                                     u4_size;
220*a97c2a1fSXin Li 
221*a97c2a1fSXin Li     /**
222*a97c2a1fSXin Li      * Pointer to Luma (Y) Buffer
223*a97c2a1fSXin Li      */
224*a97c2a1fSXin Li 
225*a97c2a1fSXin Li     void                                        *pv_y_buf;
226*a97c2a1fSXin Li     /**
227*a97c2a1fSXin Li      * Pointer to Chroma (Cb) Buffer
228*a97c2a1fSXin Li      */
229*a97c2a1fSXin Li     void                                        *pv_u_buf;
230*a97c2a1fSXin Li 
231*a97c2a1fSXin Li     /**
232*a97c2a1fSXin Li      * Pointer to Chroma (Cr) Buffer
233*a97c2a1fSXin Li      */
234*a97c2a1fSXin Li     void                                        *pv_v_buf;
235*a97c2a1fSXin Li 
236*a97c2a1fSXin Li     /**
237*a97c2a1fSXin Li      * Width of the Luma (Y) Buffer
238*a97c2a1fSXin Li      */
239*a97c2a1fSXin Li     UWORD32                                     u4_y_wd;
240*a97c2a1fSXin Li 
241*a97c2a1fSXin Li     /**
242*a97c2a1fSXin Li      * Height of the Luma (Y) Buffer
243*a97c2a1fSXin Li      */
244*a97c2a1fSXin Li     UWORD32                                     u4_y_ht;
245*a97c2a1fSXin Li 
246*a97c2a1fSXin Li     /**
247*a97c2a1fSXin Li      * Stride/Pitch of the Luma (Y) Buffer
248*a97c2a1fSXin Li      */
249*a97c2a1fSXin Li     UWORD32                                     u4_y_strd;
250*a97c2a1fSXin Li 
251*a97c2a1fSXin Li     /**
252*a97c2a1fSXin Li      * Width of the Chroma (Cb) Buffer
253*a97c2a1fSXin Li      */
254*a97c2a1fSXin Li     UWORD32                                     u4_u_wd;
255*a97c2a1fSXin Li 
256*a97c2a1fSXin Li     /**
257*a97c2a1fSXin Li      * Height of the Chroma (Cb) Buffer
258*a97c2a1fSXin Li      */
259*a97c2a1fSXin Li     UWORD32                                     u4_u_ht;
260*a97c2a1fSXin Li 
261*a97c2a1fSXin Li     /**
262*a97c2a1fSXin Li      * Stride/Pitch of the Chroma (Cb) Buffer
263*a97c2a1fSXin Li      */
264*a97c2a1fSXin Li     UWORD32                                     u4_u_strd;
265*a97c2a1fSXin Li 
266*a97c2a1fSXin Li     /**
267*a97c2a1fSXin Li      * Width of the Chroma (Cr) Buffer
268*a97c2a1fSXin Li      */
269*a97c2a1fSXin Li     UWORD32                                     u4_v_wd;
270*a97c2a1fSXin Li 
271*a97c2a1fSXin Li     /**
272*a97c2a1fSXin Li      * Height of the Chroma (Cr) Buffer
273*a97c2a1fSXin Li      */
274*a97c2a1fSXin Li     UWORD32                                     u4_v_ht;
275*a97c2a1fSXin Li 
276*a97c2a1fSXin Li     /**
277*a97c2a1fSXin Li      * Stride/Pitch of the Chroma (Cr) Buffer
278*a97c2a1fSXin Li      */
279*a97c2a1fSXin Li     UWORD32                                     u4_v_strd;
280*a97c2a1fSXin Li }iv_yuv_buf_t;
281*a97c2a1fSXin Li 
282*a97c2a1fSXin Li /*****************************************************************************/
283*a97c2a1fSXin Li /*  Get Number of Memory Records                                             */
284*a97c2a1fSXin Li /*****************************************************************************/
285*a97c2a1fSXin Li 
286*a97c2a1fSXin Li /* IV_API_COMMAND_TYPE_T::e_cmd = IV_CMD_GET_NUM_MEM_REC                     */
287*a97c2a1fSXin Li 
288*a97c2a1fSXin Li 
289*a97c2a1fSXin Li typedef struct {
290*a97c2a1fSXin Li     /**
291*a97c2a1fSXin Li      * u4_size of the structure
292*a97c2a1fSXin Li      */
293*a97c2a1fSXin Li     UWORD32                                     u4_size;
294*a97c2a1fSXin Li 
295*a97c2a1fSXin Li     /**
296*a97c2a1fSXin Li      * cmd
297*a97c2a1fSXin Li      */
298*a97c2a1fSXin Li     IV_API_COMMAND_TYPE_T                       e_cmd;
299*a97c2a1fSXin Li }iv_num_mem_rec_ip_t;
300*a97c2a1fSXin Li 
301*a97c2a1fSXin Li 
302*a97c2a1fSXin Li typedef struct{
303*a97c2a1fSXin Li     /**
304*a97c2a1fSXin Li      * u4_size of the structure
305*a97c2a1fSXin Li      */
306*a97c2a1fSXin Li     UWORD32                                     u4_size;
307*a97c2a1fSXin Li 
308*a97c2a1fSXin Li     /**
309*a97c2a1fSXin Li      * error code
310*a97c2a1fSXin Li      */
311*a97c2a1fSXin Li     UWORD32                                     u4_error_code;
312*a97c2a1fSXin Li 
313*a97c2a1fSXin Li     /**
314*a97c2a1fSXin Li      * num_mem_rec
315*a97c2a1fSXin Li      */
316*a97c2a1fSXin Li     UWORD32                                     u4_num_mem_rec;
317*a97c2a1fSXin Li }iv_num_mem_rec_op_t;
318*a97c2a1fSXin Li 
319*a97c2a1fSXin Li 
320*a97c2a1fSXin Li /*****************************************************************************/
321*a97c2a1fSXin Li /*  Fill Memory Records                                                      */
322*a97c2a1fSXin Li /*****************************************************************************/
323*a97c2a1fSXin Li 
324*a97c2a1fSXin Li /* IV_API_COMMAND_TYPE_T::e_cmd = IV_CMD_FILL_NUM_MEM_REC                    */
325*a97c2a1fSXin Li 
326*a97c2a1fSXin Li 
327*a97c2a1fSXin Li typedef struct {
328*a97c2a1fSXin Li     /**
329*a97c2a1fSXin Li      * u4_size of the structure
330*a97c2a1fSXin Li      */
331*a97c2a1fSXin Li     UWORD32                                     u4_size;
332*a97c2a1fSXin Li 
333*a97c2a1fSXin Li     /**
334*a97c2a1fSXin Li      * cmd
335*a97c2a1fSXin Li      */
336*a97c2a1fSXin Li     IV_API_COMMAND_TYPE_T                       e_cmd;
337*a97c2a1fSXin Li 
338*a97c2a1fSXin Li     /**
339*a97c2a1fSXin Li      * pointer to array of memrecords structures should be filled by codec
340*a97c2a1fSXin Li     with details of memory resource requirements
341*a97c2a1fSXin Li      */
342*a97c2a1fSXin Li     iv_mem_rec_t                                *pv_mem_rec_location;
343*a97c2a1fSXin Li 
344*a97c2a1fSXin Li     /**
345*a97c2a1fSXin Li      * maximum width for which codec should request memory requirements
346*a97c2a1fSXin Li      */
347*a97c2a1fSXin Li     UWORD32                                     u4_max_frm_wd;
348*a97c2a1fSXin Li 
349*a97c2a1fSXin Li     /**
350*a97c2a1fSXin Li      * maximum height for which codec should request memory requirements
351*a97c2a1fSXin Li      */
352*a97c2a1fSXin Li     UWORD32                                     u4_max_frm_ht;
353*a97c2a1fSXin Li }iv_fill_mem_rec_ip_t;
354*a97c2a1fSXin Li 
355*a97c2a1fSXin Li 
356*a97c2a1fSXin Li typedef struct{
357*a97c2a1fSXin Li     /**
358*a97c2a1fSXin Li      * u4_size of the structure
359*a97c2a1fSXin Li      */
360*a97c2a1fSXin Li     UWORD32                                     u4_size;
361*a97c2a1fSXin Li 
362*a97c2a1fSXin Li     /**
363*a97c2a1fSXin Li      * error_code
364*a97c2a1fSXin Li      */
365*a97c2a1fSXin Li     UWORD32                                     u4_error_code;
366*a97c2a1fSXin Li 
367*a97c2a1fSXin Li     /**
368*a97c2a1fSXin Li      * no of memory record structures which are filled by codec
369*a97c2a1fSXin Li      */
370*a97c2a1fSXin Li     UWORD32                                     u4_num_mem_rec_filled;
371*a97c2a1fSXin Li }iv_fill_mem_rec_op_t;
372*a97c2a1fSXin Li 
373*a97c2a1fSXin Li 
374*a97c2a1fSXin Li /*****************************************************************************/
375*a97c2a1fSXin Li /*  Retrieve Memory Records                                                  */
376*a97c2a1fSXin Li /*****************************************************************************/
377*a97c2a1fSXin Li 
378*a97c2a1fSXin Li /* IV_API_COMMAND_TYPE_T::e_cmd = IV_CMD_RETRIEVE_MEMREC                     */
379*a97c2a1fSXin Li 
380*a97c2a1fSXin Li 
381*a97c2a1fSXin Li 
382*a97c2a1fSXin Li typedef struct {
383*a97c2a1fSXin Li     /**
384*a97c2a1fSXin Li      * u4_size of the structure
385*a97c2a1fSXin Li      */
386*a97c2a1fSXin Li     UWORD32                                     u4_size;
387*a97c2a1fSXin Li 
388*a97c2a1fSXin Li     /**
389*a97c2a1fSXin Li      * cmd
390*a97c2a1fSXin Li      */
391*a97c2a1fSXin Li     IV_API_COMMAND_TYPE_T                       e_cmd;
392*a97c2a1fSXin Li 
393*a97c2a1fSXin Li     /**
394*a97c2a1fSXin Li      * array of structures where codec should fill with all resources(memory) with it
395*a97c2a1fSXin Li      */
396*a97c2a1fSXin Li     iv_mem_rec_t                                *pv_mem_rec_location;
397*a97c2a1fSXin Li }iv_retrieve_mem_rec_ip_t;
398*a97c2a1fSXin Li 
399*a97c2a1fSXin Li 
400*a97c2a1fSXin Li typedef struct{
401*a97c2a1fSXin Li     /**
402*a97c2a1fSXin Li      * u4_size of the structure
403*a97c2a1fSXin Li      */
404*a97c2a1fSXin Li     UWORD32                                     u4_size;
405*a97c2a1fSXin Li 
406*a97c2a1fSXin Li     /**
407*a97c2a1fSXin Li      * error_code
408*a97c2a1fSXin Li      */
409*a97c2a1fSXin Li     UWORD32                                     u4_error_code;
410*a97c2a1fSXin Li 
411*a97c2a1fSXin Li     /**
412*a97c2a1fSXin Li      * no of memory records filled by codec
413*a97c2a1fSXin Li      */
414*a97c2a1fSXin Li     UWORD32                                     u4_num_mem_rec_filled;
415*a97c2a1fSXin Li }iv_retrieve_mem_rec_op_t;
416*a97c2a1fSXin Li 
417*a97c2a1fSXin Li 
418*a97c2a1fSXin Li 
419*a97c2a1fSXin Li #endif /* _IV_H */
420*a97c2a1fSXin Li 
421