xref: /aosp_15_r20/external/libavc/decoder/svc/isvcd.h (revision 495ae853bb871d1e5a258cb02c2cc13cde8ddb9a)
1*495ae853SAndroid Build Coastguard Worker /******************************************************************************
2*495ae853SAndroid Build Coastguard Worker  *
3*495ae853SAndroid Build Coastguard Worker  * Copyright (C) 2022 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  *  isvcd.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 definitions
27*495ae853SAndroid Build Coastguard Worker  *    needed for the Application.
28*495ae853SAndroid Build Coastguard Worker  *  Program Interface(API) of the Ittiam SVC ASP
29*495ae853SAndroid Build Coastguard Worker  *  Decoder on Cortex A8 - Neon platform
30*495ae853SAndroid Build Coastguard Worker  *
31*495ae853SAndroid Build Coastguard Worker  * @author
32*495ae853SAndroid Build Coastguard Worker  *  Kishore
33*495ae853SAndroid Build Coastguard Worker  *
34*495ae853SAndroid Build Coastguard Worker  * @remarks
35*495ae853SAndroid Build Coastguard Worker  *  None
36*495ae853SAndroid Build Coastguard Worker  *
37*495ae853SAndroid Build Coastguard Worker  *******************************************************************************
38*495ae853SAndroid Build Coastguard Worker  */
39*495ae853SAndroid Build Coastguard Worker 
40*495ae853SAndroid Build Coastguard Worker #ifndef _ISVCD_H_
41*495ae853SAndroid Build Coastguard Worker #define _ISVCD_H_
42*495ae853SAndroid Build Coastguard Worker #ifdef __cplusplus
43*495ae853SAndroid Build Coastguard Worker extern "C"
44*495ae853SAndroid Build Coastguard Worker {
45*495ae853SAndroid Build Coastguard Worker #endif
46*495ae853SAndroid Build Coastguard Worker 
47*495ae853SAndroid Build Coastguard Worker #include "iv.h"
48*495ae853SAndroid Build Coastguard Worker #include "ivd.h"
49*495ae853SAndroid Build Coastguard Worker 
50*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
51*495ae853SAndroid Build Coastguard Worker /* Constant Macros                                                           */
52*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
53*495ae853SAndroid Build Coastguard Worker #define IVD_ERROR_MASK 0xFF
54*495ae853SAndroid Build Coastguard Worker 
55*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
56*495ae853SAndroid Build Coastguard Worker /* Function Macros                                                           */
57*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
58*495ae853SAndroid Build Coastguard Worker #define IS_IVD_CONCEALMENT_APPLIED(x) (x & (1 << IVD_APPLIEDCONCEALMENT))
59*495ae853SAndroid Build Coastguard Worker #define IS_IVD_INSUFFICIENTDATA_ERROR(x) (x & (1 << IVD_INSUFFICIENTDATA))
60*495ae853SAndroid Build Coastguard Worker #define IS_IVD_CORRUPTEDDATA_ERROR(x) (x & (1 << IVD_CORRUPTEDDATA))
61*495ae853SAndroid Build Coastguard Worker #define IS_IVD_CORRUPTEDHEADER_ERROR(x) (x & (1 << IVD_CORRUPTEDHEADER))
62*495ae853SAndroid Build Coastguard Worker #define IS_IVD_UNSUPPORTEDINPUT_ERROR(x) (x & (1 << IVD_UNSUPPORTEDINPUT))
63*495ae853SAndroid Build Coastguard Worker #define IS_IVD_UNSUPPORTEDPARAM_ERROR(x) (x & (1 << IVD_UNSUPPORTEDPARAM))
64*495ae853SAndroid Build Coastguard Worker #define IS_IVD_FATAL_ERROR(x) (x & (1 << IVD_FATALERROR))
65*495ae853SAndroid Build Coastguard Worker #define IS_IVD_INVALID_BITSTREAM_ERROR(x) (x & (1 << IVD_INVALID_BITSTREAM))
66*495ae853SAndroid Build Coastguard Worker #define IS_IVD_INCOMPLETE_BITSTREAM_ERROR(x) (x & (1 << IVD_INCOMPLETE_BITSTREAM))
67*495ae853SAndroid Build Coastguard Worker 
68*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
69*495ae853SAndroid Build Coastguard Worker     /* API Function Prototype                                                    */
70*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
71*495ae853SAndroid Build Coastguard Worker     IV_API_CALL_STATUS_T isvcd_api_function(iv_obj_t *ps_handle, void *pv_api_ip, void *pv_api_op);
72*495ae853SAndroid Build Coastguard Worker 
73*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
74*495ae853SAndroid Build Coastguard Worker     /* Enums                                                                     */
75*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
76*495ae853SAndroid Build Coastguard Worker     /* Codec Error codes for SVC ASP Decoder                                   */
77*495ae853SAndroid Build Coastguard Worker 
78*495ae853SAndroid Build Coastguard Worker     typedef enum
79*495ae853SAndroid Build Coastguard Worker     {
80*495ae853SAndroid Build Coastguard Worker 
81*495ae853SAndroid Build Coastguard Worker         ISVCD_VID_HDR_DEC_NUM_FRM_BUF_NOT_SUFFICIENT = IVD_DUMMY_ELEMENT_FOR_CODEC_EXTENSIONS + 1,
82*495ae853SAndroid Build Coastguard Worker         ISVCD_FRAME_INFO_OP_BUF_NULL,
83*495ae853SAndroid Build Coastguard Worker         ISVCD_INSUFFICIENT_METADATA_BUFFER,
84*495ae853SAndroid Build Coastguard Worker 
85*495ae853SAndroid Build Coastguard Worker     } ISVCD_ERROR_CODES_T;
86*495ae853SAndroid Build Coastguard Worker 
87*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
88*495ae853SAndroid Build Coastguard Worker     /* Extended Structures                                                       */
89*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
90*495ae853SAndroid Build Coastguard Worker 
91*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
92*495ae853SAndroid Build Coastguard Worker     /*  Delete Codec                                                             */
93*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
94*495ae853SAndroid Build Coastguard Worker 
95*495ae853SAndroid Build Coastguard Worker     typedef struct
96*495ae853SAndroid Build Coastguard Worker     {
97*495ae853SAndroid Build Coastguard Worker         ivd_delete_ip_t s_ivd_delete_ip_t;
98*495ae853SAndroid Build Coastguard Worker     } isvcd_delete_ip_t;
99*495ae853SAndroid Build Coastguard Worker 
100*495ae853SAndroid Build Coastguard Worker     typedef struct
101*495ae853SAndroid Build Coastguard Worker     {
102*495ae853SAndroid Build Coastguard Worker         ivd_delete_op_t s_ivd_delete_op_t;
103*495ae853SAndroid Build Coastguard Worker     } isvcd_delete_op_t;
104*495ae853SAndroid Build Coastguard Worker 
105*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
106*495ae853SAndroid Build Coastguard Worker     /*   Initialize decoder                                                      */
107*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
108*495ae853SAndroid Build Coastguard Worker 
109*495ae853SAndroid Build Coastguard Worker     typedef struct
110*495ae853SAndroid Build Coastguard Worker     {
111*495ae853SAndroid Build Coastguard Worker         ivd_create_ip_t s_ivd_create_ip_t;
112*495ae853SAndroid Build Coastguard Worker         /**
113*495ae853SAndroid Build Coastguard Worker          * enable_frm_info
114*495ae853SAndroid Build Coastguard Worker          */
115*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_enable_frame_info;
116*495ae853SAndroid Build Coastguard Worker     } isvcd_create_ip_t;
117*495ae853SAndroid Build Coastguard Worker 
118*495ae853SAndroid Build Coastguard Worker     typedef struct
119*495ae853SAndroid Build Coastguard Worker     {
120*495ae853SAndroid Build Coastguard Worker         ivd_create_op_t s_ivd_create_op_t;
121*495ae853SAndroid Build Coastguard Worker     } isvcd_create_op_t;
122*495ae853SAndroid Build Coastguard Worker 
123*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
124*495ae853SAndroid Build Coastguard Worker     /*   Video Decode                                                            */
125*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
126*495ae853SAndroid Build Coastguard Worker 
127*495ae853SAndroid Build Coastguard Worker     typedef struct
128*495ae853SAndroid Build Coastguard Worker     {
129*495ae853SAndroid Build Coastguard Worker         ivd_video_decode_ip_t s_ivd_video_decode_ip_t;
130*495ae853SAndroid Build Coastguard Worker         /**
131*495ae853SAndroid Build Coastguard Worker          * 8x8 block QP map size
132*495ae853SAndroid Build Coastguard Worker          */
133*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_8x8_blk_qp_map_size;
134*495ae853SAndroid Build Coastguard Worker 
135*495ae853SAndroid Build Coastguard Worker         /**
136*495ae853SAndroid Build Coastguard Worker          * 8x8 block QP map
137*495ae853SAndroid Build Coastguard Worker          */
138*495ae853SAndroid Build Coastguard Worker         UWORD8 *pu1_8x8_blk_qp_map;
139*495ae853SAndroid Build Coastguard Worker 
140*495ae853SAndroid Build Coastguard Worker         /**
141*495ae853SAndroid Build Coastguard Worker          * 8x8 block type map size
142*495ae853SAndroid Build Coastguard Worker          */
143*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_8x8_blk_type_map_size;
144*495ae853SAndroid Build Coastguard Worker 
145*495ae853SAndroid Build Coastguard Worker         /**
146*495ae853SAndroid Build Coastguard Worker          * 8x8 block type map
147*495ae853SAndroid Build Coastguard Worker          */
148*495ae853SAndroid Build Coastguard Worker         UWORD8 *pu1_8x8_blk_type_map;
149*495ae853SAndroid Build Coastguard Worker     } isvcd_video_decode_ip_t;
150*495ae853SAndroid Build Coastguard Worker 
151*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
152*495ae853SAndroid Build Coastguard Worker     /* QP and block type maps are defined for each 8x8 MB sub-block.             */
153*495ae853SAndroid Build Coastguard Worker     /* QP can range from <0, 51> and block type can be INTER/INTRA/SKIP.         */
154*495ae853SAndroid Build Coastguard Worker     /*                                                                           */
155*495ae853SAndroid Build Coastguard Worker     /* Let’s say, a frame has a total of ‘m’ MBs (each 16x16). Since the QP      */
156*495ae853SAndroid Build Coastguard Worker     /* and block type are defined for each 8x8 block, hence each MB has          */
157*495ae853SAndroid Build Coastguard Worker     /* 4 entries giving m x 4 total entires for QP and block type map each.      */
158*495ae853SAndroid Build Coastguard Worker     /*                                                                           */
159*495ae853SAndroid Build Coastguard Worker     /* For example, for a frame of size 60x60 shown in the figure down, both     */
160*495ae853SAndroid Build Coastguard Worker     /* maps (QP and MB type) have the same layout.                               */
161*495ae853SAndroid Build Coastguard Worker     /* Each block represents an 8x8 sub-block. Both width and height are aligned */
162*495ae853SAndroid Build Coastguard Worker     /* to next largest multiple of 8, 64 in this case.                           */
163*495ae853SAndroid Build Coastguard Worker     /*                                                                           */
164*495ae853SAndroid Build Coastguard Worker     /*     0     8     16    24    32    40    48    56   64                     */
165*495ae853SAndroid Build Coastguard Worker     /*  0   ------------------------------------------------                     */
166*495ae853SAndroid Build Coastguard Worker     /*     | 0th | 1st | 2nd | 3rd | 4th | 5th | 6th | 7th |                     */
167*495ae853SAndroid Build Coastguard Worker     /*  8   ------------------------------------------------                     */
168*495ae853SAndroid Build Coastguard Worker     /*     | 8th | 9th | 10th | -  |  -  | -   | -   |  -  |                     */
169*495ae853SAndroid Build Coastguard Worker     /* 16   ------------------------------------------------                     */
170*495ae853SAndroid Build Coastguard Worker     /*     |  -  |  -  |  -   | -  |  -  |  -  |  -  |  -  |                     */
171*495ae853SAndroid Build Coastguard Worker     /* 24   ------------------------------------------------                     */
172*495ae853SAndroid Build Coastguard Worker     /*     |  -  |  -  |  -   | -  |  -  |  -  |  -  |  -  |                     */
173*495ae853SAndroid Build Coastguard Worker     /* 32   ------------------------------------------------                     */
174*495ae853SAndroid Build Coastguard Worker     /*     |  -  |  -  |  -   | -  |  -  |  -  |  -  |  -  |                     */
175*495ae853SAndroid Build Coastguard Worker     /* 40   ------------------------------------------------                     */
176*495ae853SAndroid Build Coastguard Worker     /*     |  -  |  -  |  -   | -  |  -  |  -  |  -  |  -  |                     */
177*495ae853SAndroid Build Coastguard Worker     /* 48   ------------------------------------------------                     */
178*495ae853SAndroid Build Coastguard Worker     /*     |  -  |  -  |  -   | -  |  -  |  -  |  -  |  -  |                     */
179*495ae853SAndroid Build Coastguard Worker     /* 56   ------------------------------------------------                     */
180*495ae853SAndroid Build Coastguard Worker     /*     |  -  |  -  |  -   | -  |  -  |  -  |  -  |  -  |                     */
181*495ae853SAndroid Build Coastguard Worker     /* 64   ------------------------------------------------                     */
182*495ae853SAndroid Build Coastguard Worker     /*                                                                           */
183*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
184*495ae853SAndroid Build Coastguard Worker 
185*495ae853SAndroid Build Coastguard Worker     typedef struct
186*495ae853SAndroid Build Coastguard Worker     {
187*495ae853SAndroid Build Coastguard Worker         ivd_video_decode_op_t s_ivd_video_decode_op_t;
188*495ae853SAndroid Build Coastguard Worker 
189*495ae853SAndroid Build Coastguard Worker         /**
190*495ae853SAndroid Build Coastguard Worker          * 8x8 block QP map size
191*495ae853SAndroid Build Coastguard Worker          */
192*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_8x8_blk_qp_map_size;
193*495ae853SAndroid Build Coastguard Worker 
194*495ae853SAndroid Build Coastguard Worker         /**
195*495ae853SAndroid Build Coastguard Worker          * 8x8 block QP map
196*495ae853SAndroid Build Coastguard Worker          */
197*495ae853SAndroid Build Coastguard Worker         UWORD8 *pu1_8x8_blk_qp_map;
198*495ae853SAndroid Build Coastguard Worker 
199*495ae853SAndroid Build Coastguard Worker         /**
200*495ae853SAndroid Build Coastguard Worker          * 8x8 block type map size
201*495ae853SAndroid Build Coastguard Worker          */
202*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_8x8_blk_type_map_size;
203*495ae853SAndroid Build Coastguard Worker 
204*495ae853SAndroid Build Coastguard Worker         /**
205*495ae853SAndroid Build Coastguard Worker          * 8x8 block type map
206*495ae853SAndroid Build Coastguard Worker          */
207*495ae853SAndroid Build Coastguard Worker         UWORD8 *pu1_8x8_blk_type_map;
208*495ae853SAndroid Build Coastguard Worker 
209*495ae853SAndroid Build Coastguard Worker     } isvcd_video_decode_op_t;
210*495ae853SAndroid Build Coastguard Worker 
211*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
212*495ae853SAndroid Build Coastguard Worker     /*   Get Display Frame                                                       */
213*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
214*495ae853SAndroid Build Coastguard Worker 
215*495ae853SAndroid Build Coastguard Worker     typedef struct
216*495ae853SAndroid Build Coastguard Worker     {
217*495ae853SAndroid Build Coastguard Worker         ivd_get_display_frame_ip_t s_ivd_get_display_frame_ip_t;
218*495ae853SAndroid Build Coastguard Worker     } isvcd_get_display_frame_ip_t;
219*495ae853SAndroid Build Coastguard Worker 
220*495ae853SAndroid Build Coastguard Worker     typedef struct
221*495ae853SAndroid Build Coastguard Worker     {
222*495ae853SAndroid Build Coastguard Worker         ivd_get_display_frame_op_t s_ivd_get_display_frame_op_t;
223*495ae853SAndroid Build Coastguard Worker     } isvcd_get_display_frame_op_t;
224*495ae853SAndroid Build Coastguard Worker 
225*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
226*495ae853SAndroid Build Coastguard Worker     /*   Set Display Frame                                                       */
227*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
228*495ae853SAndroid Build Coastguard Worker 
229*495ae853SAndroid Build Coastguard Worker     typedef struct
230*495ae853SAndroid Build Coastguard Worker     {
231*495ae853SAndroid Build Coastguard Worker         ivd_set_display_frame_ip_t s_ivd_set_display_frame_ip_t;
232*495ae853SAndroid Build Coastguard Worker     } isvcd_set_display_frame_ip_t;
233*495ae853SAndroid Build Coastguard Worker 
234*495ae853SAndroid Build Coastguard Worker     typedef struct
235*495ae853SAndroid Build Coastguard Worker     {
236*495ae853SAndroid Build Coastguard Worker         ivd_set_display_frame_op_t s_ivd_set_display_frame_op_t;
237*495ae853SAndroid Build Coastguard Worker     } isvcd_set_display_frame_op_t;
238*495ae853SAndroid Build Coastguard Worker 
239*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
240*495ae853SAndroid Build Coastguard Worker     /*   Release Display Buffers                                                 */
241*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
242*495ae853SAndroid Build Coastguard Worker 
243*495ae853SAndroid Build Coastguard Worker     typedef struct
244*495ae853SAndroid Build Coastguard Worker     {
245*495ae853SAndroid Build Coastguard Worker         ivd_rel_display_frame_ip_t s_ivd_rel_display_frame_ip_t;
246*495ae853SAndroid Build Coastguard Worker     } isvcd_rel_display_frame_ip_t;
247*495ae853SAndroid Build Coastguard Worker 
248*495ae853SAndroid Build Coastguard Worker     typedef struct
249*495ae853SAndroid Build Coastguard Worker     {
250*495ae853SAndroid Build Coastguard Worker         ivd_rel_display_frame_op_t s_ivd_rel_display_frame_op_t;
251*495ae853SAndroid Build Coastguard Worker     } isvcd_rel_display_frame_op_t;
252*495ae853SAndroid Build Coastguard Worker 
253*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
254*495ae853SAndroid Build Coastguard Worker     /*   Set Target Layer for SVC                                                */
255*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
256*495ae853SAndroid Build Coastguard Worker 
257*495ae853SAndroid Build Coastguard Worker     /* IVD_API_COMMAND_TYPE_T::e_cmd = ISVCD_CMD_CTL_SET_TGT_LAYER */
258*495ae853SAndroid Build Coastguard Worker 
259*495ae853SAndroid Build Coastguard Worker     typedef struct
260*495ae853SAndroid Build Coastguard Worker     {
261*495ae853SAndroid Build Coastguard Worker         /**
262*495ae853SAndroid Build Coastguard Worker          * u4_size of the structure
263*495ae853SAndroid Build Coastguard Worker          */
264*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_size;
265*495ae853SAndroid Build Coastguard Worker 
266*495ae853SAndroid Build Coastguard Worker         /**
267*495ae853SAndroid Build Coastguard Worker          * e_cmd
268*495ae853SAndroid Build Coastguard Worker          */
269*495ae853SAndroid Build Coastguard Worker         IVD_API_COMMAND_TYPE_T e_cmd;
270*495ae853SAndroid Build Coastguard Worker 
271*495ae853SAndroid Build Coastguard Worker         IVD_CONTROL_API_COMMAND_TYPE_T e_sub_cmd;
272*495ae853SAndroid Build Coastguard Worker 
273*495ae853SAndroid Build Coastguard Worker         /**
274*495ae853SAndroid Build Coastguard Worker          * set the tgt dependency id
275*495ae853SAndroid Build Coastguard Worker          */
276*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_tgt_dep_id;
277*495ae853SAndroid Build Coastguard Worker 
278*495ae853SAndroid Build Coastguard Worker         /**
279*495ae853SAndroid Build Coastguard Worker          * set the tgt quality id
280*495ae853SAndroid Build Coastguard Worker          */
281*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_tgt_quality_id;
282*495ae853SAndroid Build Coastguard Worker 
283*495ae853SAndroid Build Coastguard Worker         /**
284*495ae853SAndroid Build Coastguard Worker          * set the tgt temporal id
285*495ae853SAndroid Build Coastguard Worker          */
286*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_tgt_temp_id;
287*495ae853SAndroid Build Coastguard Worker 
288*495ae853SAndroid Build Coastguard Worker         /**
289*495ae853SAndroid Build Coastguard Worker          * set the tgt priority id
290*495ae853SAndroid Build Coastguard Worker          */
291*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_tgt_priority_id;
292*495ae853SAndroid Build Coastguard Worker 
293*495ae853SAndroid Build Coastguard Worker     } isvcd_set_target_layer_ip_t;
294*495ae853SAndroid Build Coastguard Worker 
295*495ae853SAndroid Build Coastguard Worker     typedef struct
296*495ae853SAndroid Build Coastguard Worker     {
297*495ae853SAndroid Build Coastguard Worker         /**
298*495ae853SAndroid Build Coastguard Worker          * u4_size of the structure
299*495ae853SAndroid Build Coastguard Worker          */
300*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_size;
301*495ae853SAndroid Build Coastguard Worker 
302*495ae853SAndroid Build Coastguard Worker         /**
303*495ae853SAndroid Build Coastguard Worker          * error code
304*495ae853SAndroid Build Coastguard Worker          */
305*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_error_code;
306*495ae853SAndroid Build Coastguard Worker 
307*495ae853SAndroid Build Coastguard Worker     } isvcd_set_target_layer_op_t;
308*495ae853SAndroid Build Coastguard Worker 
309*495ae853SAndroid Build Coastguard Worker     typedef enum
310*495ae853SAndroid Build Coastguard Worker     {
311*495ae853SAndroid Build Coastguard Worker 
312*495ae853SAndroid Build Coastguard Worker         /* Set TGT Layer for SVC */
313*495ae853SAndroid Build Coastguard Worker         ISVCD_CMD_CTL_SET_TGT_LAYER = IVD_CMD_CTL_CODEC_SUBCMD_START + 0x305
314*495ae853SAndroid Build Coastguard Worker 
315*495ae853SAndroid Build Coastguard Worker     } ISVCD_CMD_CTL_SUB_CMDS;
316*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
317*495ae853SAndroid Build Coastguard Worker     /*   Video control  Flush                                                    */
318*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
319*495ae853SAndroid Build Coastguard Worker 
320*495ae853SAndroid Build Coastguard Worker     typedef struct
321*495ae853SAndroid Build Coastguard Worker     {
322*495ae853SAndroid Build Coastguard Worker         ivd_ctl_flush_ip_t s_ivd_ctl_flush_ip_t;
323*495ae853SAndroid Build Coastguard Worker     } isvcd_ctl_flush_ip_t;
324*495ae853SAndroid Build Coastguard Worker 
325*495ae853SAndroid Build Coastguard Worker     typedef struct
326*495ae853SAndroid Build Coastguard Worker     {
327*495ae853SAndroid Build Coastguard Worker         ivd_ctl_flush_op_t s_ivd_ctl_flush_op_t;
328*495ae853SAndroid Build Coastguard Worker     } isvcd_ctl_flush_op_t;
329*495ae853SAndroid Build Coastguard Worker 
330*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
331*495ae853SAndroid Build Coastguard Worker     /*   Video control reset                                                     */
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         ivd_ctl_reset_ip_t s_ivd_ctl_reset_ip_t;
337*495ae853SAndroid Build Coastguard Worker     } isvcd_ctl_reset_ip_t;
338*495ae853SAndroid Build Coastguard Worker 
339*495ae853SAndroid Build Coastguard Worker     typedef struct
340*495ae853SAndroid Build Coastguard Worker     {
341*495ae853SAndroid Build Coastguard Worker         ivd_ctl_reset_op_t s_ivd_ctl_reset_op_t;
342*495ae853SAndroid Build Coastguard Worker     } isvcd_ctl_reset_op_t;
343*495ae853SAndroid Build Coastguard Worker 
344*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
345*495ae853SAndroid Build Coastguard Worker     /*   Video control  Set Params                                               */
346*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
347*495ae853SAndroid Build Coastguard Worker 
348*495ae853SAndroid Build Coastguard Worker     typedef struct
349*495ae853SAndroid Build Coastguard Worker     {
350*495ae853SAndroid Build Coastguard Worker         ivd_ctl_set_config_ip_t s_ivd_ctl_set_config_ip_t;
351*495ae853SAndroid Build Coastguard Worker     } isvcd_ctl_set_config_ip_t;
352*495ae853SAndroid Build Coastguard Worker 
353*495ae853SAndroid Build Coastguard Worker     typedef struct
354*495ae853SAndroid Build Coastguard Worker     {
355*495ae853SAndroid Build Coastguard Worker         ivd_ctl_set_config_op_t s_ivd_ctl_set_config_op_t;
356*495ae853SAndroid Build Coastguard Worker     } isvcd_ctl_set_config_op_t;
357*495ae853SAndroid Build Coastguard Worker 
358*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
359*495ae853SAndroid Build Coastguard Worker     /*   Video control:Get Buf Info                                              */
360*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
361*495ae853SAndroid Build Coastguard Worker 
362*495ae853SAndroid Build Coastguard Worker     typedef struct
363*495ae853SAndroid Build Coastguard Worker     {
364*495ae853SAndroid Build Coastguard Worker         ivd_ctl_getbufinfo_ip_t s_ivd_ctl_getbufinfo_ip_t;
365*495ae853SAndroid Build Coastguard Worker     } isvcd_ctl_getbufinfo_ip_t;
366*495ae853SAndroid Build Coastguard Worker 
367*495ae853SAndroid Build Coastguard Worker     typedef struct
368*495ae853SAndroid Build Coastguard Worker     {
369*495ae853SAndroid Build Coastguard Worker         ivd_ctl_getbufinfo_op_t s_ivd_ctl_getbufinfo_op_t;
370*495ae853SAndroid Build Coastguard Worker     } isvcd_ctl_getbufinfo_op_t;
371*495ae853SAndroid Build Coastguard Worker 
372*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
373*495ae853SAndroid Build Coastguard Worker     /*   Video control:Getstatus Call                                            */
374*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
375*495ae853SAndroid Build Coastguard Worker 
376*495ae853SAndroid Build Coastguard Worker     typedef struct
377*495ae853SAndroid Build Coastguard Worker     {
378*495ae853SAndroid Build Coastguard Worker         ivd_ctl_getstatus_ip_t s_ivd_ctl_getstatus_ip_t;
379*495ae853SAndroid Build Coastguard Worker     } isvcd_ctl_getstatus_ip_t;
380*495ae853SAndroid Build Coastguard Worker 
381*495ae853SAndroid Build Coastguard Worker     typedef struct
382*495ae853SAndroid Build Coastguard Worker     {
383*495ae853SAndroid Build Coastguard Worker         ivd_ctl_getstatus_op_t s_ivd_ctl_getstatus_op_t;
384*495ae853SAndroid Build Coastguard Worker     } isvcd_ctl_getstatus_op_t;
385*495ae853SAndroid Build Coastguard Worker 
386*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
387*495ae853SAndroid Build Coastguard Worker     /*   Video control:Get Version Info                                          */
388*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
389*495ae853SAndroid Build Coastguard Worker 
390*495ae853SAndroid Build Coastguard Worker     typedef struct
391*495ae853SAndroid Build Coastguard Worker     {
392*495ae853SAndroid Build Coastguard Worker         ivd_ctl_getversioninfo_ip_t s_ivd_ctl_getversioninfo_ip_t;
393*495ae853SAndroid Build Coastguard Worker     } isvcd_ctl_getversioninfo_ip_t;
394*495ae853SAndroid Build Coastguard Worker 
395*495ae853SAndroid Build Coastguard Worker     typedef struct
396*495ae853SAndroid Build Coastguard Worker     {
397*495ae853SAndroid Build Coastguard Worker         ivd_ctl_getversioninfo_op_t s_ivd_ctl_getversioninfo_op_t;
398*495ae853SAndroid Build Coastguard Worker     } isvcd_ctl_getversioninfo_op_t;
399*495ae853SAndroid Build Coastguard Worker 
400*495ae853SAndroid Build Coastguard Worker     typedef struct
401*495ae853SAndroid Build Coastguard Worker     {
402*495ae853SAndroid Build Coastguard Worker         /**
403*495ae853SAndroid Build Coastguard Worker          * u4_size
404*495ae853SAndroid Build Coastguard Worker          */
405*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_size;
406*495ae853SAndroid Build Coastguard Worker 
407*495ae853SAndroid Build Coastguard Worker         /**
408*495ae853SAndroid Build Coastguard Worker          * cmd
409*495ae853SAndroid Build Coastguard Worker          */
410*495ae853SAndroid Build Coastguard Worker         IVD_API_COMMAND_TYPE_T e_cmd;
411*495ae853SAndroid Build Coastguard Worker 
412*495ae853SAndroid Build Coastguard Worker         /**
413*495ae853SAndroid Build Coastguard Worker          * sub_cmd
414*495ae853SAndroid Build Coastguard Worker          */
415*495ae853SAndroid Build Coastguard Worker         IVD_CONTROL_API_COMMAND_TYPE_T e_sub_cmd;
416*495ae853SAndroid Build Coastguard Worker 
417*495ae853SAndroid Build Coastguard Worker         /**
418*495ae853SAndroid Build Coastguard Worker          * Pictures that are are degraded
419*495ae853SAndroid Build Coastguard Worker          * 0 : No degrade
420*495ae853SAndroid Build Coastguard Worker          * 1 : Only on non-reference frames
421*495ae853SAndroid Build Coastguard Worker          * 2 : Use interval specified by u4_nondegrade_interval
422*495ae853SAndroid Build Coastguard Worker          * 3 : All non-key frames
423*495ae853SAndroid Build Coastguard Worker          * 4 : All frames
424*495ae853SAndroid Build Coastguard Worker          */
425*495ae853SAndroid Build Coastguard Worker         WORD32 i4_degrade_pics;
426*495ae853SAndroid Build Coastguard Worker 
427*495ae853SAndroid Build Coastguard Worker         /**
428*495ae853SAndroid Build Coastguard Worker          * Interval for pictures which are completely decoded without any degradation
429*495ae853SAndroid Build Coastguard Worker          */
430*495ae853SAndroid Build Coastguard Worker         WORD32 i4_nondegrade_interval;
431*495ae853SAndroid Build Coastguard Worker 
432*495ae853SAndroid Build Coastguard Worker         /**
433*495ae853SAndroid Build Coastguard Worker          * bit position (lsb is zero): Type of degradation
434*495ae853SAndroid Build Coastguard Worker          * 1 : Disable deblocking
435*495ae853SAndroid Build Coastguard Worker          * 2 : Faster inter prediction filters
436*495ae853SAndroid Build Coastguard Worker          * 3 : Fastest inter prediction filters
437*495ae853SAndroid Build Coastguard Worker          */
438*495ae853SAndroid Build Coastguard Worker         WORD32 i4_degrade_type;
439*495ae853SAndroid Build Coastguard Worker 
440*495ae853SAndroid Build Coastguard Worker     } isvcd_ctl_degrade_ip_t;
441*495ae853SAndroid Build Coastguard Worker 
442*495ae853SAndroid Build Coastguard Worker     typedef struct
443*495ae853SAndroid Build Coastguard Worker     {
444*495ae853SAndroid Build Coastguard Worker         /**
445*495ae853SAndroid Build Coastguard Worker          * u4_size
446*495ae853SAndroid Build Coastguard Worker          */
447*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_size;
448*495ae853SAndroid Build Coastguard Worker 
449*495ae853SAndroid Build Coastguard Worker         /**
450*495ae853SAndroid Build Coastguard Worker          * error_code
451*495ae853SAndroid Build Coastguard Worker          */
452*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_error_code;
453*495ae853SAndroid Build Coastguard Worker     } isvcd_ctl_degrade_op_t;
454*495ae853SAndroid Build Coastguard Worker 
455*495ae853SAndroid Build Coastguard Worker     typedef struct
456*495ae853SAndroid Build Coastguard Worker     {
457*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_size;
458*495ae853SAndroid Build Coastguard Worker         IVD_API_COMMAND_TYPE_T e_cmd;
459*495ae853SAndroid Build Coastguard Worker         IVD_CONTROL_API_COMMAND_TYPE_T e_sub_cmd;
460*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_disable_deblk_level;
461*495ae853SAndroid Build Coastguard Worker     } isvcd_ctl_disable_deblock_ip_t;
462*495ae853SAndroid Build Coastguard Worker 
463*495ae853SAndroid Build Coastguard Worker     typedef struct
464*495ae853SAndroid Build Coastguard Worker     {
465*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_size;
466*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_error_code;
467*495ae853SAndroid Build Coastguard Worker     } isvcd_ctl_disable_deblock_op_t;
468*495ae853SAndroid Build Coastguard Worker 
469*495ae853SAndroid Build Coastguard Worker     typedef struct
470*495ae853SAndroid Build Coastguard Worker     {
471*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_size;
472*495ae853SAndroid Build Coastguard Worker         IVD_API_COMMAND_TYPE_T e_cmd;
473*495ae853SAndroid Build Coastguard Worker         IVD_CONTROL_API_COMMAND_TYPE_T e_sub_cmd;
474*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_num_cores;
475*495ae853SAndroid Build Coastguard Worker     } isvcd_ctl_set_num_cores_ip_t;
476*495ae853SAndroid Build Coastguard Worker 
477*495ae853SAndroid Build Coastguard Worker     typedef struct
478*495ae853SAndroid Build Coastguard Worker     {
479*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_size;
480*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_error_code;
481*495ae853SAndroid Build Coastguard Worker     } isvcd_ctl_set_num_cores_op_t;
482*495ae853SAndroid Build Coastguard Worker 
483*495ae853SAndroid Build Coastguard Worker     typedef struct
484*495ae853SAndroid Build Coastguard Worker     {
485*495ae853SAndroid Build Coastguard Worker         /**
486*495ae853SAndroid Build Coastguard Worker          * i4_size
487*495ae853SAndroid Build Coastguard Worker          */
488*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_size;
489*495ae853SAndroid Build Coastguard Worker         /**
490*495ae853SAndroid Build Coastguard Worker          * cmd
491*495ae853SAndroid Build Coastguard Worker          */
492*495ae853SAndroid Build Coastguard Worker         IVD_API_COMMAND_TYPE_T e_cmd;
493*495ae853SAndroid Build Coastguard Worker         /**
494*495ae853SAndroid Build Coastguard Worker          * sub cmd
495*495ae853SAndroid Build Coastguard Worker          */
496*495ae853SAndroid Build Coastguard Worker         IVD_CONTROL_API_COMMAND_TYPE_T e_sub_cmd;
497*495ae853SAndroid Build Coastguard Worker         /**
498*495ae853SAndroid Build Coastguard Worker          * Processor type
499*495ae853SAndroid Build Coastguard Worker          */
500*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_arch;
501*495ae853SAndroid Build Coastguard Worker         /**
502*495ae853SAndroid Build Coastguard Worker          * SOC type
503*495ae853SAndroid Build Coastguard Worker          */
504*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_soc;
505*495ae853SAndroid Build Coastguard Worker 
506*495ae853SAndroid Build Coastguard Worker         /**
507*495ae853SAndroid Build Coastguard Worker          * num_cores
508*495ae853SAndroid Build Coastguard Worker          */
509*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_num_cores;
510*495ae853SAndroid Build Coastguard Worker 
511*495ae853SAndroid Build Coastguard Worker     } isvcd_ctl_set_processor_ip_t;
512*495ae853SAndroid Build Coastguard Worker 
513*495ae853SAndroid Build Coastguard Worker     typedef struct
514*495ae853SAndroid Build Coastguard Worker     {
515*495ae853SAndroid Build Coastguard Worker         /**
516*495ae853SAndroid Build Coastguard Worker          * i4_size
517*495ae853SAndroid Build Coastguard Worker          */
518*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_size;
519*495ae853SAndroid Build Coastguard Worker         /**
520*495ae853SAndroid Build Coastguard Worker          * error_code
521*495ae853SAndroid Build Coastguard Worker          */
522*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_error_code;
523*495ae853SAndroid Build Coastguard Worker     } isvcd_ctl_set_processor_op_t;
524*495ae853SAndroid Build Coastguard Worker 
525*495ae853SAndroid Build Coastguard Worker     typedef struct
526*495ae853SAndroid Build Coastguard Worker     {
527*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_size;
528*495ae853SAndroid Build Coastguard Worker         IVD_API_COMMAND_TYPE_T e_cmd;
529*495ae853SAndroid Build Coastguard Worker         IVD_CONTROL_API_COMMAND_TYPE_T e_sub_cmd;
530*495ae853SAndroid Build Coastguard Worker     } isvcd_ctl_get_frame_dimensions_ip_t;
531*495ae853SAndroid Build Coastguard Worker 
532*495ae853SAndroid Build Coastguard Worker     typedef struct
533*495ae853SAndroid Build Coastguard Worker     {
534*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_size;
535*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_error_code;
536*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_x_offset[3];
537*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_y_offset[3];
538*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_disp_wd[3];
539*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_disp_ht[3];
540*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_buffer_wd[3];
541*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_buffer_ht[3];
542*495ae853SAndroid Build Coastguard Worker     } isvcd_ctl_get_frame_dimensions_op_t;
543*495ae853SAndroid Build Coastguard Worker 
544*495ae853SAndroid Build Coastguard Worker     typedef struct
545*495ae853SAndroid Build Coastguard Worker     {
546*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_size;
547*495ae853SAndroid Build Coastguard Worker         IVD_API_COMMAND_TYPE_T e_cmd;
548*495ae853SAndroid Build Coastguard Worker         IVD_CONTROL_API_COMMAND_TYPE_T e_sub_cmd;
549*495ae853SAndroid Build Coastguard Worker     } isvcd_ctl_get_vui_params_ip_t;
550*495ae853SAndroid Build Coastguard Worker 
551*495ae853SAndroid Build Coastguard Worker     typedef struct
552*495ae853SAndroid Build Coastguard Worker     {
553*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_size;
554*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_error_code;
555*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_aspect_ratio_idc;
556*495ae853SAndroid Build Coastguard Worker         UWORD16 u2_sar_width;
557*495ae853SAndroid Build Coastguard Worker         UWORD16 u2_sar_height;
558*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_overscan_appropriate_flag;
559*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_video_format;
560*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_video_full_range_flag;
561*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_colour_primaries;
562*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_tfr_chars;
563*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_matrix_coeffs;
564*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_cr_top_field;
565*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_cr_bottom_field;
566*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_num_units_in_tick;
567*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_time_scale;
568*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_fixed_frame_rate_flag;
569*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_nal_hrd_params_present;
570*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_vcl_hrd_params_present;
571*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_low_delay_hrd_flag;
572*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_pic_struct_present_flag;
573*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_bitstream_restriction_flag;
574*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_mv_over_pic_boundaries_flag;
575*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_max_bytes_per_pic_denom;
576*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_max_bits_per_mb_denom;
577*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_log2_max_mv_length_horz;
578*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_log2_max_mv_length_vert;
579*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_num_reorder_frames;
580*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_max_dec_frame_buffering;
581*495ae853SAndroid Build Coastguard Worker     } isvcd_ctl_get_vui_params_op_t;
582*495ae853SAndroid Build Coastguard Worker 
583*495ae853SAndroid Build Coastguard Worker     typedef struct
584*495ae853SAndroid Build Coastguard Worker     {
585*495ae853SAndroid Build Coastguard Worker         /**
586*495ae853SAndroid Build Coastguard Worker          * u4_size
587*495ae853SAndroid Build Coastguard Worker          */
588*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_size;
589*495ae853SAndroid Build Coastguard Worker 
590*495ae853SAndroid Build Coastguard Worker         /**
591*495ae853SAndroid Build Coastguard Worker          * cmd
592*495ae853SAndroid Build Coastguard Worker          */
593*495ae853SAndroid Build Coastguard Worker         IVD_API_COMMAND_TYPE_T e_cmd;
594*495ae853SAndroid Build Coastguard Worker 
595*495ae853SAndroid Build Coastguard Worker         /**
596*495ae853SAndroid Build Coastguard Worker          * sub_cmd
597*495ae853SAndroid Build Coastguard Worker          */
598*495ae853SAndroid Build Coastguard Worker         IVD_CONTROL_API_COMMAND_TYPE_T e_sub_cmd;
599*495ae853SAndroid Build Coastguard Worker     } isvcd_ctl_get_sei_mdcv_params_ip_t;
600*495ae853SAndroid Build Coastguard Worker 
601*495ae853SAndroid Build Coastguard Worker     typedef struct
602*495ae853SAndroid Build Coastguard Worker     {
603*495ae853SAndroid Build Coastguard Worker         /**
604*495ae853SAndroid Build Coastguard Worker          * u4_size
605*495ae853SAndroid Build Coastguard Worker          */
606*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_size;
607*495ae853SAndroid Build Coastguard Worker 
608*495ae853SAndroid Build Coastguard Worker         /**
609*495ae853SAndroid Build Coastguard Worker          * error_code
610*495ae853SAndroid Build Coastguard Worker          */
611*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_error_code;
612*495ae853SAndroid Build Coastguard Worker 
613*495ae853SAndroid Build Coastguard Worker         /**
614*495ae853SAndroid Build Coastguard Worker          * Array to store the display_primaries_x values
615*495ae853SAndroid Build Coastguard Worker          */
616*495ae853SAndroid Build Coastguard Worker         UWORD16 au2_display_primaries_x[NUM_SEI_MDCV_PRIMARIES];
617*495ae853SAndroid Build Coastguard Worker 
618*495ae853SAndroid Build Coastguard Worker         /**
619*495ae853SAndroid Build Coastguard Worker          * Array to store the display_primaries_y values
620*495ae853SAndroid Build Coastguard Worker          */
621*495ae853SAndroid Build Coastguard Worker         UWORD16 au2_display_primaries_y[NUM_SEI_MDCV_PRIMARIES];
622*495ae853SAndroid Build Coastguard Worker 
623*495ae853SAndroid Build Coastguard Worker         /**
624*495ae853SAndroid Build Coastguard Worker          * Variable to store the white point x value
625*495ae853SAndroid Build Coastguard Worker          */
626*495ae853SAndroid Build Coastguard Worker         UWORD16 u2_white_point_x;
627*495ae853SAndroid Build Coastguard Worker 
628*495ae853SAndroid Build Coastguard Worker         /**
629*495ae853SAndroid Build Coastguard Worker          * Variable to store the white point y value
630*495ae853SAndroid Build Coastguard Worker          */
631*495ae853SAndroid Build Coastguard Worker         UWORD16 u2_white_point_y;
632*495ae853SAndroid Build Coastguard Worker 
633*495ae853SAndroid Build Coastguard Worker         /**
634*495ae853SAndroid Build Coastguard Worker          * Variable to store the max display mastering luminance value
635*495ae853SAndroid Build Coastguard Worker          */
636*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_max_display_mastering_luminance;
637*495ae853SAndroid Build Coastguard Worker 
638*495ae853SAndroid Build Coastguard Worker         /**
639*495ae853SAndroid Build Coastguard Worker          * Variable to store the min display mastering luminance value
640*495ae853SAndroid Build Coastguard Worker          */
641*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_min_display_mastering_luminance;
642*495ae853SAndroid Build Coastguard Worker     } isvcd_ctl_get_sei_mdcv_params_op_t;
643*495ae853SAndroid Build Coastguard Worker 
644*495ae853SAndroid Build Coastguard Worker     typedef struct
645*495ae853SAndroid Build Coastguard Worker     {
646*495ae853SAndroid Build Coastguard Worker         /**
647*495ae853SAndroid Build Coastguard Worker          * u4_size
648*495ae853SAndroid Build Coastguard Worker          */
649*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_size;
650*495ae853SAndroid Build Coastguard Worker 
651*495ae853SAndroid Build Coastguard Worker         /**
652*495ae853SAndroid Build Coastguard Worker          * cmd
653*495ae853SAndroid Build Coastguard Worker          */
654*495ae853SAndroid Build Coastguard Worker         IVD_API_COMMAND_TYPE_T e_cmd;
655*495ae853SAndroid Build Coastguard Worker 
656*495ae853SAndroid Build Coastguard Worker         /**
657*495ae853SAndroid Build Coastguard Worker          * sub_cmd
658*495ae853SAndroid Build Coastguard Worker          */
659*495ae853SAndroid Build Coastguard Worker         IVD_CONTROL_API_COMMAND_TYPE_T e_sub_cmd;
660*495ae853SAndroid Build Coastguard Worker     } isvcd_ctl_get_sei_cll_params_ip_t;
661*495ae853SAndroid Build Coastguard Worker 
662*495ae853SAndroid Build Coastguard Worker     typedef struct
663*495ae853SAndroid Build Coastguard Worker     {
664*495ae853SAndroid Build Coastguard Worker         /**
665*495ae853SAndroid Build Coastguard Worker          * u4_size
666*495ae853SAndroid Build Coastguard Worker          */
667*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_size;
668*495ae853SAndroid Build Coastguard Worker 
669*495ae853SAndroid Build Coastguard Worker         /**
670*495ae853SAndroid Build Coastguard Worker          * error_code
671*495ae853SAndroid Build Coastguard Worker          */
672*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_error_code;
673*495ae853SAndroid Build Coastguard Worker 
674*495ae853SAndroid Build Coastguard Worker         /**
675*495ae853SAndroid Build Coastguard Worker          * The maximum pixel intensity of all samples
676*495ae853SAndroid Build Coastguard Worker          */
677*495ae853SAndroid Build Coastguard Worker         UWORD16 u2_max_content_light_level;
678*495ae853SAndroid Build Coastguard Worker 
679*495ae853SAndroid Build Coastguard Worker         /**
680*495ae853SAndroid Build Coastguard Worker          * The average pixel intensity of all samples
681*495ae853SAndroid Build Coastguard Worker          */
682*495ae853SAndroid Build Coastguard Worker         UWORD16 u2_max_pic_average_light_level;
683*495ae853SAndroid Build Coastguard Worker     } isvcd_ctl_get_sei_cll_params_op_t;
684*495ae853SAndroid Build Coastguard Worker 
685*495ae853SAndroid Build Coastguard Worker     typedef struct
686*495ae853SAndroid Build Coastguard Worker     {
687*495ae853SAndroid Build Coastguard Worker         /**
688*495ae853SAndroid Build Coastguard Worker          * u4_size
689*495ae853SAndroid Build Coastguard Worker          */
690*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_size;
691*495ae853SAndroid Build Coastguard Worker 
692*495ae853SAndroid Build Coastguard Worker         /**
693*495ae853SAndroid Build Coastguard Worker          * cmd
694*495ae853SAndroid Build Coastguard Worker          */
695*495ae853SAndroid Build Coastguard Worker         IVD_API_COMMAND_TYPE_T e_cmd;
696*495ae853SAndroid Build Coastguard Worker 
697*495ae853SAndroid Build Coastguard Worker         /**
698*495ae853SAndroid Build Coastguard Worker          * sub_cmd
699*495ae853SAndroid Build Coastguard Worker          */
700*495ae853SAndroid Build Coastguard Worker         IVD_CONTROL_API_COMMAND_TYPE_T e_sub_cmd;
701*495ae853SAndroid Build Coastguard Worker     } isvcd_ctl_get_sei_ave_params_ip_t;
702*495ae853SAndroid Build Coastguard Worker 
703*495ae853SAndroid Build Coastguard Worker     typedef struct
704*495ae853SAndroid Build Coastguard Worker     {
705*495ae853SAndroid Build Coastguard Worker         /**
706*495ae853SAndroid Build Coastguard Worker          * u4_size
707*495ae853SAndroid Build Coastguard Worker          */
708*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_size;
709*495ae853SAndroid Build Coastguard Worker 
710*495ae853SAndroid Build Coastguard Worker         /**
711*495ae853SAndroid Build Coastguard Worker          * error_code
712*495ae853SAndroid Build Coastguard Worker          */
713*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_error_code;
714*495ae853SAndroid Build Coastguard Worker 
715*495ae853SAndroid Build Coastguard Worker         /**
716*495ae853SAndroid Build Coastguard Worker          * specifies the environmental illluminance of the ambient viewing environment
717*495ae853SAndroid Build Coastguard Worker          */
718*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_ambient_illuminance;
719*495ae853SAndroid Build Coastguard Worker 
720*495ae853SAndroid Build Coastguard Worker         /*
721*495ae853SAndroid Build Coastguard Worker          * specify the normalized x chromaticity coordinates of the
722*495ae853SAndroid Build Coastguard Worker          * environmental ambient light in the nominal viewing environment
723*495ae853SAndroid Build Coastguard Worker          */
724*495ae853SAndroid Build Coastguard Worker         UWORD16 u2_ambient_light_x;
725*495ae853SAndroid Build Coastguard Worker 
726*495ae853SAndroid Build Coastguard Worker         /*
727*495ae853SAndroid Build Coastguard Worker          * specify the normalized y chromaticity coordinates of the
728*495ae853SAndroid Build Coastguard Worker          * environmental ambient light in the nominal viewing environment
729*495ae853SAndroid Build Coastguard Worker          */
730*495ae853SAndroid Build Coastguard Worker         UWORD16 u2_ambient_light_y;
731*495ae853SAndroid Build Coastguard Worker     } isvcd_ctl_get_sei_ave_params_op_t;
732*495ae853SAndroid Build Coastguard Worker 
733*495ae853SAndroid Build Coastguard Worker     typedef struct
734*495ae853SAndroid Build Coastguard Worker     {
735*495ae853SAndroid Build Coastguard Worker         /**
736*495ae853SAndroid Build Coastguard Worker          * u4_size
737*495ae853SAndroid Build Coastguard Worker          */
738*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_size;
739*495ae853SAndroid Build Coastguard Worker 
740*495ae853SAndroid Build Coastguard Worker         /**
741*495ae853SAndroid Build Coastguard Worker          * cmd
742*495ae853SAndroid Build Coastguard Worker          */
743*495ae853SAndroid Build Coastguard Worker         IVD_API_COMMAND_TYPE_T e_cmd;
744*495ae853SAndroid Build Coastguard Worker 
745*495ae853SAndroid Build Coastguard Worker         /**
746*495ae853SAndroid Build Coastguard Worker          * sub_cmd
747*495ae853SAndroid Build Coastguard Worker          */
748*495ae853SAndroid Build Coastguard Worker         IVD_CONTROL_API_COMMAND_TYPE_T e_sub_cmd;
749*495ae853SAndroid Build Coastguard Worker     } isvcd_ctl_get_sei_ccv_params_ip_t;
750*495ae853SAndroid Build Coastguard Worker 
751*495ae853SAndroid Build Coastguard Worker     typedef struct
752*495ae853SAndroid Build Coastguard Worker     {
753*495ae853SAndroid Build Coastguard Worker         /**
754*495ae853SAndroid Build Coastguard Worker          * u4_size
755*495ae853SAndroid Build Coastguard Worker          */
756*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_size;
757*495ae853SAndroid Build Coastguard Worker 
758*495ae853SAndroid Build Coastguard Worker         /**
759*495ae853SAndroid Build Coastguard Worker          * error_code
760*495ae853SAndroid Build Coastguard Worker          */
761*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_error_code;
762*495ae853SAndroid Build Coastguard Worker 
763*495ae853SAndroid Build Coastguard Worker         /*
764*495ae853SAndroid Build Coastguard Worker          * Flag used to control persistence of CCV SEI messages
765*495ae853SAndroid Build Coastguard Worker          */
766*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_ccv_cancel_flag;
767*495ae853SAndroid Build Coastguard Worker 
768*495ae853SAndroid Build Coastguard Worker         /*
769*495ae853SAndroid Build Coastguard Worker          * specifies the persistence of the CCV SEI message for the current layer
770*495ae853SAndroid Build Coastguard Worker          */
771*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_ccv_persistence_flag;
772*495ae853SAndroid Build Coastguard Worker 
773*495ae853SAndroid Build Coastguard Worker         /*
774*495ae853SAndroid Build Coastguard Worker          * specifies the presence of syntax elements ccv_primaries_x and
775*495ae853SAndroid Build Coastguard Worker          * ccv_primaries_y
776*495ae853SAndroid Build Coastguard Worker          */
777*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_ccv_primaries_present_flag;
778*495ae853SAndroid Build Coastguard Worker 
779*495ae853SAndroid Build Coastguard Worker         /*
780*495ae853SAndroid Build Coastguard Worker          * specifies that the syntax element ccv_min_luminance_value is present
781*495ae853SAndroid Build Coastguard Worker          */
782*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_ccv_min_luminance_value_present_flag;
783*495ae853SAndroid Build Coastguard Worker 
784*495ae853SAndroid Build Coastguard Worker         /*
785*495ae853SAndroid Build Coastguard Worker          * specifies that the syntax element ccv_max_luminance_value is present
786*495ae853SAndroid Build Coastguard Worker          */
787*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_ccv_max_luminance_value_present_flag;
788*495ae853SAndroid Build Coastguard Worker 
789*495ae853SAndroid Build Coastguard Worker         /*
790*495ae853SAndroid Build Coastguard Worker          * specifies that the syntax element ccv_avg_luminance_value is present
791*495ae853SAndroid Build Coastguard Worker          */
792*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_ccv_avg_luminance_value_present_flag;
793*495ae853SAndroid Build Coastguard Worker 
794*495ae853SAndroid Build Coastguard Worker         /*
795*495ae853SAndroid Build Coastguard Worker          * shall be equal to 0 in bitstreams conforming to this version. Other values
796*495ae853SAndroid Build Coastguard Worker          * for reserved_zero_2bits are reserved for future use
797*495ae853SAndroid Build Coastguard Worker          */
798*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_ccv_reserved_zero_2bits;
799*495ae853SAndroid Build Coastguard Worker 
800*495ae853SAndroid Build Coastguard Worker         /*
801*495ae853SAndroid Build Coastguard Worker          * specify the normalized x chromaticity coordinates of the colour
802*495ae853SAndroid Build Coastguard Worker          * primary component c of the nominal content colour volume
803*495ae853SAndroid Build Coastguard Worker          */
804*495ae853SAndroid Build Coastguard Worker         WORD32 ai4_ccv_primaries_x[NUM_SEI_CCV_PRIMARIES];
805*495ae853SAndroid Build Coastguard Worker 
806*495ae853SAndroid Build Coastguard Worker         /*
807*495ae853SAndroid Build Coastguard Worker          * specify the normalized y chromaticity coordinates of the colour
808*495ae853SAndroid Build Coastguard Worker          * primary component c of the nominal content colour volume
809*495ae853SAndroid Build Coastguard Worker          */
810*495ae853SAndroid Build Coastguard Worker         WORD32 ai4_ccv_primaries_y[NUM_SEI_CCV_PRIMARIES];
811*495ae853SAndroid Build Coastguard Worker 
812*495ae853SAndroid Build Coastguard Worker         /*
813*495ae853SAndroid Build Coastguard Worker          * specifies the normalized minimum luminance value
814*495ae853SAndroid Build Coastguard Worker          */
815*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_ccv_min_luminance_value;
816*495ae853SAndroid Build Coastguard Worker 
817*495ae853SAndroid Build Coastguard Worker         /*
818*495ae853SAndroid Build Coastguard Worker          * specifies the normalized maximum luminance value
819*495ae853SAndroid Build Coastguard Worker          */
820*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_ccv_max_luminance_value;
821*495ae853SAndroid Build Coastguard Worker 
822*495ae853SAndroid Build Coastguard Worker         /*
823*495ae853SAndroid Build Coastguard Worker          * specifies the normalized average luminance value
824*495ae853SAndroid Build Coastguard Worker          */
825*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_ccv_avg_luminance_value;
826*495ae853SAndroid Build Coastguard Worker     } isvcd_ctl_get_sei_ccv_params_op_t;
827*495ae853SAndroid Build Coastguard Worker 
828*495ae853SAndroid Build Coastguard Worker #ifdef __cplusplus
829*495ae853SAndroid Build Coastguard Worker } /* closing brace for extern "C" */
830*495ae853SAndroid Build Coastguard Worker #endif
831*495ae853SAndroid Build Coastguard Worker #endif /* _ISVCD_H_ */
832