xref: /aosp_15_r20/external/libavc/encoder/svc/isvce.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 Name         : isvce.h                                              */
23*495ae853SAndroid Build Coastguard Worker /*                                                                           */
24*495ae853SAndroid Build Coastguard Worker /*  Description       : This file contains all the necessary structure and   */
25*495ae853SAndroid Build Coastguard Worker /*                      enumeration definitions needed for the Application   */
26*495ae853SAndroid Build Coastguard Worker /*                      Program Interface(API) of the Ittiam SVC Encoder     */
27*495ae853SAndroid Build Coastguard Worker /*                                                                           */
28*495ae853SAndroid Build Coastguard Worker /*  List of Functions : isvce_api_function                                   */
29*495ae853SAndroid Build Coastguard Worker /*                                                                           */
30*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
31*495ae853SAndroid Build Coastguard Worker 
32*495ae853SAndroid Build Coastguard Worker #ifndef _ISVCE_H_
33*495ae853SAndroid Build Coastguard Worker #define _ISVCE_H_
34*495ae853SAndroid Build Coastguard Worker 
35*495ae853SAndroid Build Coastguard Worker #ifdef __cplusplus
36*495ae853SAndroid Build Coastguard Worker extern "C"
37*495ae853SAndroid Build Coastguard Worker {
38*495ae853SAndroid Build Coastguard Worker #endif
39*495ae853SAndroid Build Coastguard Worker 
40*495ae853SAndroid Build Coastguard Worker #include <stdbool.h>
41*495ae853SAndroid Build Coastguard Worker 
42*495ae853SAndroid Build Coastguard Worker #include "iv2.h"
43*495ae853SAndroid Build Coastguard Worker #include "ive2.h"
44*495ae853SAndroid Build Coastguard Worker 
45*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
46*495ae853SAndroid Build Coastguard Worker     /* Enums                                                                     */
47*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
48*495ae853SAndroid Build Coastguard Worker     typedef enum ISVCE_API_COMMAND_TYPE_T
49*495ae853SAndroid Build Coastguard Worker     {
50*495ae853SAndroid Build Coastguard Worker         ISVCE_CMD_VIDEO_NA = 0x7FFFFFFF,
51*495ae853SAndroid Build Coastguard Worker         ISVCE_CMD_GET_NUM_MEM_REC = 0x0,
52*495ae853SAndroid Build Coastguard Worker         ISVCE_CMD_FILL_NUM_MEM_REC = 0x1,
53*495ae853SAndroid Build Coastguard Worker         ISVCE_CMD_RETRIEVE_MEMREC = 0x2,
54*495ae853SAndroid Build Coastguard Worker         ISVCE_CMD_INIT = 0x3,
55*495ae853SAndroid Build Coastguard Worker         ISVCE_CMD_EXTENSIONS = 0x100,
56*495ae853SAndroid Build Coastguard Worker         ISVCE_CMD_VIDEO_CTL,
57*495ae853SAndroid Build Coastguard Worker         ISVCE_CMD_VIDEO_ENCODE
58*495ae853SAndroid Build Coastguard Worker     } ISVCE_API_COMMAND_TYPE_T;
59*495ae853SAndroid Build Coastguard Worker 
60*495ae853SAndroid Build Coastguard Worker     typedef enum ISVCE_CONTROL_API_COMMAND_TYPE_T
61*495ae853SAndroid Build Coastguard Worker     {
62*495ae853SAndroid Build Coastguard Worker         ISVCE_CMD_CT_NA = 0x7FFFFFFF,
63*495ae853SAndroid Build Coastguard Worker         ISVCE_CMD_CTL_SETDEFAULT = 0x0,
64*495ae853SAndroid Build Coastguard Worker         ISVCE_CMD_CTL_SET_DIMENSIONS = 0x1,
65*495ae853SAndroid Build Coastguard Worker         ISVCE_CMD_CTL_SET_FRAMERATE = 0x2,
66*495ae853SAndroid Build Coastguard Worker         ISVCE_CMD_CTL_SET_BITRATE = 0x3,
67*495ae853SAndroid Build Coastguard Worker         ISVCE_CMD_CTL_SET_FRAMETYPE = 0x4,
68*495ae853SAndroid Build Coastguard Worker         ISVCE_CMD_CTL_SET_QP = 0x5,
69*495ae853SAndroid Build Coastguard Worker         ISVCE_CMD_CTL_SET_ENC_MODE = 0x6,
70*495ae853SAndroid Build Coastguard Worker         ISVCE_CMD_CTL_SET_VBV_PARAMS = 0x7,
71*495ae853SAndroid Build Coastguard Worker         ISVCE_CMD_CTL_SET_AIR_PARAMS = 0x8,
72*495ae853SAndroid Build Coastguard Worker         ISVCE_CMD_CTL_SET_ME_PARAMS = 0X9,
73*495ae853SAndroid Build Coastguard Worker         ISVCE_CMD_CTL_SET_GOP_PARAMS = 0XA,
74*495ae853SAndroid Build Coastguard Worker         ISVCE_CMD_CTL_SET_PROFILE_PARAMS = 0XB,
75*495ae853SAndroid Build Coastguard Worker         ISVCE_CMD_CTL_SET_DEBLOCK_PARAMS = 0XC,
76*495ae853SAndroid Build Coastguard Worker         ISVCE_CMD_CTL_SET_IPE_PARAMS = 0XD,
77*495ae853SAndroid Build Coastguard Worker         ISVCE_CMD_CTL_SET_VUI_PARAMS = 0XE,
78*495ae853SAndroid Build Coastguard Worker         ISVCE_CMD_CTL_SET_NUM_CORES = 0x30,
79*495ae853SAndroid Build Coastguard Worker         ISVCE_CMD_CTL_RESET = 0xA0,
80*495ae853SAndroid Build Coastguard Worker         ISVCE_CMD_CTL_FLUSH = 0xB0,
81*495ae853SAndroid Build Coastguard Worker         ISVCE_CMD_CTL_GETBUFINFO = 0xC0,
82*495ae853SAndroid Build Coastguard Worker         ISVCE_CMD_CTL_GETVERSION = 0xC1,
83*495ae853SAndroid Build Coastguard Worker         ISVCE_CMD_CTL_SET_SEI_MDCV_PARAMS = 0xD0,
84*495ae853SAndroid Build Coastguard Worker         ISVCE_CMD_CTL_SET_SEI_CLL_PARAMS = 0xD1,
85*495ae853SAndroid Build Coastguard Worker         ISVCE_CMD_CTL_SET_SEI_AVE_PARAMS = 0xD2,
86*495ae853SAndroid Build Coastguard Worker         ISVCE_CMD_CTL_SET_SEI_CCV_PARAMS = 0xD3,
87*495ae853SAndroid Build Coastguard Worker         ISVCE_CMD_CTL_GET_ENC_FRAME_DIMENSIONS = 0xE1
88*495ae853SAndroid Build Coastguard Worker     } ISVCE_CONTROL_API_COMMAND_TYPE_T;
89*495ae853SAndroid Build Coastguard Worker 
90*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
91*495ae853SAndroid Build Coastguard Worker     /* Extended Structures                                                       */
92*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
93*495ae853SAndroid Build Coastguard Worker 
94*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
95*495ae853SAndroid Build Coastguard Worker     /*  Get Number of Memory Records                                             */
96*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
97*495ae853SAndroid Build Coastguard Worker     typedef struct svc_inp_params_t
98*495ae853SAndroid Build Coastguard Worker     {
99*495ae853SAndroid Build Coastguard Worker         /**
100*495ae853SAndroid Build Coastguard Worker          * Num Temporal Layers
101*495ae853SAndroid Build Coastguard Worker          */
102*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_num_temporal_layers;
103*495ae853SAndroid Build Coastguard Worker 
104*495ae853SAndroid Build Coastguard Worker         /**
105*495ae853SAndroid Build Coastguard Worker          * Num Spatial Layers
106*495ae853SAndroid Build Coastguard Worker          */
107*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_num_spatial_layers;
108*495ae853SAndroid Build Coastguard Worker 
109*495ae853SAndroid Build Coastguard Worker         /**
110*495ae853SAndroid Build Coastguard Worker          * Resolution ration b/w spatial layers
111*495ae853SAndroid Build Coastguard Worker          */
112*495ae853SAndroid Build Coastguard Worker         DOUBLE d_spatial_res_ratio;
113*495ae853SAndroid Build Coastguard Worker 
114*495ae853SAndroid Build Coastguard Worker     } svc_inp_params_t;
115*495ae853SAndroid Build Coastguard Worker 
116*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_num_mem_rec_ip_t
117*495ae853SAndroid Build Coastguard Worker     {
118*495ae853SAndroid Build Coastguard Worker         iv_num_mem_rec_ip_t s_ive_ip;
119*495ae853SAndroid Build Coastguard Worker     } isvce_num_mem_rec_ip_t;
120*495ae853SAndroid Build Coastguard Worker 
121*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_num_mem_rec_op_t
122*495ae853SAndroid Build Coastguard Worker     {
123*495ae853SAndroid Build Coastguard Worker         iv_num_mem_rec_op_t s_ive_op;
124*495ae853SAndroid Build Coastguard Worker     } isvce_num_mem_rec_op_t;
125*495ae853SAndroid Build Coastguard Worker 
126*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
127*495ae853SAndroid Build Coastguard Worker     /*  Fill Memory Records                                                      */
128*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
129*495ae853SAndroid Build Coastguard Worker 
130*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_fill_mem_rec_ip_t
131*495ae853SAndroid Build Coastguard Worker     {
132*495ae853SAndroid Build Coastguard Worker         iv_fill_mem_rec_ip_t s_ive_ip;
133*495ae853SAndroid Build Coastguard Worker 
134*495ae853SAndroid Build Coastguard Worker         svc_inp_params_t s_svc_inp_params;
135*495ae853SAndroid Build Coastguard Worker 
136*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_wd;
137*495ae853SAndroid Build Coastguard Worker 
138*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_ht;
139*495ae853SAndroid Build Coastguard Worker 
140*495ae853SAndroid Build Coastguard Worker     } isvce_fill_mem_rec_ip_t;
141*495ae853SAndroid Build Coastguard Worker 
142*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_fill_mem_rec_op_t
143*495ae853SAndroid Build Coastguard Worker     {
144*495ae853SAndroid Build Coastguard Worker         iv_fill_mem_rec_op_t s_ive_op;
145*495ae853SAndroid Build Coastguard Worker     } isvce_fill_mem_rec_op_t;
146*495ae853SAndroid Build Coastguard Worker 
147*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
148*495ae853SAndroid Build Coastguard Worker     /*  Retrieve Memory Records                                                  */
149*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
150*495ae853SAndroid Build Coastguard Worker 
151*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_retrieve_mem_rec_ip_t
152*495ae853SAndroid Build Coastguard Worker     {
153*495ae853SAndroid Build Coastguard Worker         iv_retrieve_mem_rec_ip_t s_ive_ip;
154*495ae853SAndroid Build Coastguard Worker     } isvce_retrieve_mem_rec_ip_t;
155*495ae853SAndroid Build Coastguard Worker 
156*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_retrieve_mem_rec_op_t
157*495ae853SAndroid Build Coastguard Worker     {
158*495ae853SAndroid Build Coastguard Worker         iv_retrieve_mem_rec_op_t s_ive_op;
159*495ae853SAndroid Build Coastguard Worker     } isvce_retrieve_mem_rec_op_t;
160*495ae853SAndroid Build Coastguard Worker 
161*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
162*495ae853SAndroid Build Coastguard Worker     /*   Initialize encoder                                                      */
163*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
164*495ae853SAndroid Build Coastguard Worker 
165*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_init_ip_t
166*495ae853SAndroid Build Coastguard Worker     {
167*495ae853SAndroid Build Coastguard Worker         ive_init_ip_t s_ive_ip;
168*495ae853SAndroid Build Coastguard Worker 
169*495ae853SAndroid Build Coastguard Worker         svc_inp_params_t s_svc_inp_params;
170*495ae853SAndroid Build Coastguard Worker 
171*495ae853SAndroid Build Coastguard Worker         UWORD32 *pu4_max_bitrate;
172*495ae853SAndroid Build Coastguard Worker 
173*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_wd;
174*495ae853SAndroid Build Coastguard Worker 
175*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_ht;
176*495ae853SAndroid Build Coastguard Worker 
177*495ae853SAndroid Build Coastguard Worker         bool b_use_default_vui;
178*495ae853SAndroid Build Coastguard Worker 
179*495ae853SAndroid Build Coastguard Worker         bool b_nalu_info_export_enable;
180*495ae853SAndroid Build Coastguard Worker 
181*495ae853SAndroid Build Coastguard Worker     } isvce_init_ip_t;
182*495ae853SAndroid Build Coastguard Worker 
183*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_init_op_t
184*495ae853SAndroid Build Coastguard Worker     {
185*495ae853SAndroid Build Coastguard Worker         ive_init_op_t s_ive_op;
186*495ae853SAndroid Build Coastguard Worker     } isvce_init_op_t;
187*495ae853SAndroid Build Coastguard Worker 
188*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
189*495ae853SAndroid Build Coastguard Worker     /*   Video control  Flush                                                    */
190*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
191*495ae853SAndroid Build Coastguard Worker 
192*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_flush_ip_t
193*495ae853SAndroid Build Coastguard Worker     {
194*495ae853SAndroid Build Coastguard Worker         ive_ctl_flush_ip_t s_ive_ip;
195*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_flush_ip_t;
196*495ae853SAndroid Build Coastguard Worker 
197*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_flush_op_t
198*495ae853SAndroid Build Coastguard Worker     {
199*495ae853SAndroid Build Coastguard Worker         ive_ctl_flush_op_t s_ive_op;
200*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_flush_op_t;
201*495ae853SAndroid Build Coastguard Worker 
202*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
203*495ae853SAndroid Build Coastguard Worker     /*   Video control reset                                                     */
204*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
205*495ae853SAndroid Build Coastguard Worker 
206*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_reset_ip_t
207*495ae853SAndroid Build Coastguard Worker     {
208*495ae853SAndroid Build Coastguard Worker         ive_ctl_reset_ip_t s_ive_ip;
209*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_reset_ip_t;
210*495ae853SAndroid Build Coastguard Worker 
211*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_reset_op_t
212*495ae853SAndroid Build Coastguard Worker     {
213*495ae853SAndroid Build Coastguard Worker         ive_ctl_reset_op_t s_ive_op;
214*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_reset_op_t;
215*495ae853SAndroid Build Coastguard Worker 
216*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
217*495ae853SAndroid Build Coastguard Worker     /*   Video control:Get Buf Info                                              */
218*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
219*495ae853SAndroid Build Coastguard Worker 
220*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_getbufinfo_ip_t
221*495ae853SAndroid Build Coastguard Worker     {
222*495ae853SAndroid Build Coastguard Worker         ive_ctl_getbufinfo_ip_t s_ive_ip;
223*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_getbufinfo_ip_t;
224*495ae853SAndroid Build Coastguard Worker 
225*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_getbufinfo_op_t
226*495ae853SAndroid Build Coastguard Worker     {
227*495ae853SAndroid Build Coastguard Worker         ive_ctl_getbufinfo_op_t s_ive_op;
228*495ae853SAndroid Build Coastguard Worker 
229*495ae853SAndroid Build Coastguard Worker         UWORD32 au4_min_rec_buf_size[IVE_MAX_IO_BUFFER_COMPONENTS];
230*495ae853SAndroid Build Coastguard Worker 
231*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_rec_comp_cnt;
232*495ae853SAndroid Build Coastguard Worker 
233*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_min_rec_bufs;
234*495ae853SAndroid Build Coastguard Worker 
235*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_min_nalu_info_bufs;
236*495ae853SAndroid Build Coastguard Worker 
237*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_min_nalu_info_buf_size;
238*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_getbufinfo_op_t;
239*495ae853SAndroid Build Coastguard Worker 
240*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
241*495ae853SAndroid Build Coastguard Worker     /*   Video control:Get Version Info                                          */
242*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
243*495ae853SAndroid Build Coastguard Worker 
244*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_getversioninfo_ip_t
245*495ae853SAndroid Build Coastguard Worker     {
246*495ae853SAndroid Build Coastguard Worker         ive_ctl_getversioninfo_ip_t s_ive_ip;
247*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_getversioninfo_ip_t;
248*495ae853SAndroid Build Coastguard Worker 
249*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_getversioninfo_op_t
250*495ae853SAndroid Build Coastguard Worker     {
251*495ae853SAndroid Build Coastguard Worker         ive_ctl_getversioninfo_op_t s_ive_op;
252*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_getversioninfo_op_t;
253*495ae853SAndroid Build Coastguard Worker 
254*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
255*495ae853SAndroid Build Coastguard Worker     /*   Video control:Set default params                                       */
256*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
257*495ae853SAndroid Build Coastguard Worker 
258*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_setdefault_ip_t
259*495ae853SAndroid Build Coastguard Worker     {
260*495ae853SAndroid Build Coastguard Worker         ive_ctl_setdefault_ip_t s_ive_ip;
261*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_setdefault_ip_t;
262*495ae853SAndroid Build Coastguard Worker 
263*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_setdefault_op_t
264*495ae853SAndroid Build Coastguard Worker     {
265*495ae853SAndroid Build Coastguard Worker         ive_ctl_setdefault_op_t s_ive_op;
266*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_setdefault_op_t;
267*495ae853SAndroid Build Coastguard Worker 
268*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
269*495ae853SAndroid Build Coastguard Worker     /*   Video control  Set IPE params                                           */
270*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
271*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_set_ipe_params_ip_t
272*495ae853SAndroid Build Coastguard Worker     {
273*495ae853SAndroid Build Coastguard Worker         ive_ctl_set_ipe_params_ip_t s_ive_ip;
274*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_set_ipe_params_ip_t;
275*495ae853SAndroid Build Coastguard Worker 
276*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_set_ipe_params_op_t
277*495ae853SAndroid Build Coastguard Worker     {
278*495ae853SAndroid Build Coastguard Worker         ive_ctl_set_ipe_params_op_t s_ive_op;
279*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_set_ipe_params_op_t;
280*495ae853SAndroid Build Coastguard Worker 
281*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
282*495ae853SAndroid Build Coastguard Worker     /*   Video control  Set Frame dimensions                                     */
283*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
284*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_set_dimensions_ip_t
285*495ae853SAndroid Build Coastguard Worker     {
286*495ae853SAndroid Build Coastguard Worker         ive_ctl_set_dimensions_ip_t s_ive_ip;
287*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_set_dimensions_ip_t;
288*495ae853SAndroid Build Coastguard Worker 
289*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_set_dimensions_op_t
290*495ae853SAndroid Build Coastguard Worker     {
291*495ae853SAndroid Build Coastguard Worker         ive_ctl_set_dimensions_op_t s_ive_op;
292*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_set_dimensions_op_t;
293*495ae853SAndroid Build Coastguard Worker 
294*495ae853SAndroid Build Coastguard Worker     /*   Video control - Get Enc Frame dimensions */
295*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_get_enc_dimensions_ip_t
296*495ae853SAndroid Build Coastguard Worker     {
297*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_inp_frame_wd;
298*495ae853SAndroid Build Coastguard Worker 
299*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_inp_frame_ht;
300*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_get_enc_dimensions_ip_t;
301*495ae853SAndroid Build Coastguard Worker 
302*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_get_enc_dimensions_op_t
303*495ae853SAndroid Build Coastguard Worker     {
304*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_error_code;
305*495ae853SAndroid Build Coastguard Worker 
306*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_enc_frame_wd;
307*495ae853SAndroid Build Coastguard Worker 
308*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_enc_frame_ht;
309*495ae853SAndroid Build Coastguard Worker 
310*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_get_enc_dimensions_op_t;
311*495ae853SAndroid Build Coastguard Worker 
312*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
313*495ae853SAndroid Build Coastguard Worker     /*   Video control  Set Frame rates                                          */
314*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
315*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_set_frame_rate_ip_t
316*495ae853SAndroid Build Coastguard Worker     {
317*495ae853SAndroid Build Coastguard Worker         ive_ctl_set_frame_rate_ip_t s_ive_ip;
318*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_set_frame_rate_ip_t;
319*495ae853SAndroid Build Coastguard Worker 
320*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_set_frame_rate_op_t
321*495ae853SAndroid Build Coastguard Worker     {
322*495ae853SAndroid Build Coastguard Worker         ive_ctl_set_frame_rate_op_t s_ive_op;
323*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_set_frame_rate_op_t;
324*495ae853SAndroid Build Coastguard Worker 
325*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
326*495ae853SAndroid Build Coastguard Worker     /*   Video control  Set Bitrate                                              */
327*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
328*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_set_bitrate_ip_t
329*495ae853SAndroid Build Coastguard Worker     {
330*495ae853SAndroid Build Coastguard Worker         ive_ctl_set_bitrate_ip_t s_ive_ip;
331*495ae853SAndroid Build Coastguard Worker 
332*495ae853SAndroid Build Coastguard Worker         UWORD32 *pu4_target_bitrate;
333*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_set_bitrate_ip_t;
334*495ae853SAndroid Build Coastguard Worker 
335*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_set_bitrate_op_t
336*495ae853SAndroid Build Coastguard Worker     {
337*495ae853SAndroid Build Coastguard Worker         ive_ctl_set_bitrate_op_t s_ive_op;
338*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_set_bitrate_op_t;
339*495ae853SAndroid Build Coastguard Worker 
340*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
341*495ae853SAndroid Build Coastguard Worker     /*   Video control  Set Frame type                                           */
342*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
343*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_set_frame_type_ip_t
344*495ae853SAndroid Build Coastguard Worker     {
345*495ae853SAndroid Build Coastguard Worker         ive_ctl_set_frame_type_ip_t s_ive_ip;
346*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_set_frame_type_ip_t;
347*495ae853SAndroid Build Coastguard Worker 
348*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_set_frame_type_op_t
349*495ae853SAndroid Build Coastguard Worker     {
350*495ae853SAndroid Build Coastguard Worker         ive_ctl_set_frame_type_op_t s_ive_op;
351*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_set_frame_type_op_t;
352*495ae853SAndroid Build Coastguard Worker 
353*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
354*495ae853SAndroid Build Coastguard Worker     /*   Video control  Set Encode mode                                          */
355*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
356*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_set_enc_mode_ip_t
357*495ae853SAndroid Build Coastguard Worker     {
358*495ae853SAndroid Build Coastguard Worker         ive_ctl_set_enc_mode_ip_t s_ive_ip;
359*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_set_enc_mode_ip_t;
360*495ae853SAndroid Build Coastguard Worker 
361*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_set_enc_mode_op_t
362*495ae853SAndroid Build Coastguard Worker     {
363*495ae853SAndroid Build Coastguard Worker         ive_ctl_set_enc_mode_op_t s_ive_op;
364*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_set_enc_mode_op_t;
365*495ae853SAndroid Build Coastguard Worker 
366*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
367*495ae853SAndroid Build Coastguard Worker     /*   Video control  Set QP                                                   */
368*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
369*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_set_qp_ip_t
370*495ae853SAndroid Build Coastguard Worker     {
371*495ae853SAndroid Build Coastguard Worker         ive_ctl_set_qp_ip_t s_ive_ip;
372*495ae853SAndroid Build Coastguard Worker 
373*495ae853SAndroid Build Coastguard Worker         UWORD32 *pu4_i_qp;
374*495ae853SAndroid Build Coastguard Worker 
375*495ae853SAndroid Build Coastguard Worker         UWORD32 *pu4_i_qp_max;
376*495ae853SAndroid Build Coastguard Worker 
377*495ae853SAndroid Build Coastguard Worker         UWORD32 *pu4_i_qp_min;
378*495ae853SAndroid Build Coastguard Worker 
379*495ae853SAndroid Build Coastguard Worker         UWORD32 *pu4_p_qp;
380*495ae853SAndroid Build Coastguard Worker 
381*495ae853SAndroid Build Coastguard Worker         UWORD32 *pu4_p_qp_max;
382*495ae853SAndroid Build Coastguard Worker 
383*495ae853SAndroid Build Coastguard Worker         UWORD32 *pu4_p_qp_min;
384*495ae853SAndroid Build Coastguard Worker 
385*495ae853SAndroid Build Coastguard Worker         UWORD32 *pu4_b_qp;
386*495ae853SAndroid Build Coastguard Worker 
387*495ae853SAndroid Build Coastguard Worker         UWORD32 *pu4_b_qp_max;
388*495ae853SAndroid Build Coastguard Worker 
389*495ae853SAndroid Build Coastguard Worker         UWORD32 *pu4_b_qp_min;
390*495ae853SAndroid Build Coastguard Worker 
391*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_set_qp_ip_t;
392*495ae853SAndroid Build Coastguard Worker 
393*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_set_qp_op_t
394*495ae853SAndroid Build Coastguard Worker     {
395*495ae853SAndroid Build Coastguard Worker         ive_ctl_set_qp_op_t s_ive_op;
396*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_set_qp_op_t;
397*495ae853SAndroid Build Coastguard Worker 
398*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
399*495ae853SAndroid Build Coastguard Worker     /*   Video control  Set AIR params                                           */
400*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
401*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_set_air_params_ip_t
402*495ae853SAndroid Build Coastguard Worker     {
403*495ae853SAndroid Build Coastguard Worker         ive_ctl_set_air_params_ip_t s_ive_ip;
404*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_set_air_params_ip_t;
405*495ae853SAndroid Build Coastguard Worker 
406*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_set_air_params_op_t
407*495ae853SAndroid Build Coastguard Worker     {
408*495ae853SAndroid Build Coastguard Worker         ive_ctl_set_air_params_op_t s_ive_op;
409*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_set_air_params_op_t;
410*495ae853SAndroid Build Coastguard Worker 
411*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
412*495ae853SAndroid Build Coastguard Worker     /*   Video control  Set VBV params                                           */
413*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
414*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_set_vbv_params_ip_t
415*495ae853SAndroid Build Coastguard Worker     {
416*495ae853SAndroid Build Coastguard Worker         ive_ctl_set_vbv_params_ip_t s_ive_ip;
417*495ae853SAndroid Build Coastguard Worker 
418*495ae853SAndroid Build Coastguard Worker         UWORD32 *pu4_vbv_buffer_delay;
419*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_set_vbv_params_ip_t;
420*495ae853SAndroid Build Coastguard Worker 
421*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_set_vbv_params_op_t
422*495ae853SAndroid Build Coastguard Worker     {
423*495ae853SAndroid Build Coastguard Worker         ive_ctl_set_vbv_params_op_t s_ive_op;
424*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_set_vbv_params_op_t;
425*495ae853SAndroid Build Coastguard Worker 
426*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
427*495ae853SAndroid Build Coastguard Worker     /*   Video control  Set Processor Details                                    */
428*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
429*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_set_num_cores_ip_t
430*495ae853SAndroid Build Coastguard Worker     {
431*495ae853SAndroid Build Coastguard Worker         ive_ctl_set_num_cores_ip_t s_ive_ip;
432*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_set_num_cores_ip_t;
433*495ae853SAndroid Build Coastguard Worker 
434*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_set_num_cores_op_t
435*495ae853SAndroid Build Coastguard Worker     {
436*495ae853SAndroid Build Coastguard Worker         ive_ctl_set_num_cores_op_t s_ive_op;
437*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_set_num_cores_op_t;
438*495ae853SAndroid Build Coastguard Worker 
439*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
440*495ae853SAndroid Build Coastguard Worker     /*   Video control  Set Motion estimation params                             */
441*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
442*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_set_me_params_ip_t
443*495ae853SAndroid Build Coastguard Worker     {
444*495ae853SAndroid Build Coastguard Worker         ive_ctl_set_me_params_ip_t s_ive_ip;
445*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_set_me_params_ip_t;
446*495ae853SAndroid Build Coastguard Worker 
447*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_set_me_params_op_t
448*495ae853SAndroid Build Coastguard Worker     {
449*495ae853SAndroid Build Coastguard Worker         ive_ctl_set_me_params_op_t s_ive_op;
450*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_set_me_params_op_t;
451*495ae853SAndroid Build Coastguard Worker 
452*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
453*495ae853SAndroid Build Coastguard Worker     /*   Video control  Set GOP params                                           */
454*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
455*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_set_gop_params_ip_t
456*495ae853SAndroid Build Coastguard Worker     {
457*495ae853SAndroid Build Coastguard Worker         ive_ctl_set_gop_params_ip_t s_ive_ip;
458*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_set_gop_params_ip_t;
459*495ae853SAndroid Build Coastguard Worker 
460*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_set_gop_params_op_t
461*495ae853SAndroid Build Coastguard Worker     {
462*495ae853SAndroid Build Coastguard Worker         ive_ctl_set_gop_params_op_t s_ive_op;
463*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_set_gop_params_op_t;
464*495ae853SAndroid Build Coastguard Worker 
465*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
466*495ae853SAndroid Build Coastguard Worker     /*   Video control  Set Deblock params                                       */
467*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
468*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_set_deblock_params_ip_t
469*495ae853SAndroid Build Coastguard Worker     {
470*495ae853SAndroid Build Coastguard Worker         ive_ctl_set_deblock_params_ip_t s_ive_ip;
471*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_set_deblock_params_ip_t;
472*495ae853SAndroid Build Coastguard Worker 
473*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_set_deblock_params_op_t
474*495ae853SAndroid Build Coastguard Worker     {
475*495ae853SAndroid Build Coastguard Worker         ive_ctl_set_deblock_params_op_t s_ive_op;
476*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_set_deblock_params_op_t;
477*495ae853SAndroid Build Coastguard Worker 
478*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
479*495ae853SAndroid Build Coastguard Worker     /*   Video control  Set Profile params                                       */
480*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
481*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_set_profile_params_ip_t
482*495ae853SAndroid Build Coastguard Worker     {
483*495ae853SAndroid Build Coastguard Worker         ive_ctl_set_profile_params_ip_t s_ive_ip;
484*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_set_profile_params_ip_t;
485*495ae853SAndroid Build Coastguard Worker 
486*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_set_profile_params_op_t
487*495ae853SAndroid Build Coastguard Worker     {
488*495ae853SAndroid Build Coastguard Worker         ive_ctl_set_profile_params_op_t s_ive_op;
489*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_set_profile_params_op_t;
490*495ae853SAndroid Build Coastguard Worker 
491*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
492*495ae853SAndroid Build Coastguard Worker     /*   Synchronous video encode call                                           */
493*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
494*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_nalu_info_buf_t
495*495ae853SAndroid Build Coastguard Worker     {
496*495ae853SAndroid Build Coastguard Worker         /* For each NALU, following info will be copied as a csv string - */
497*495ae853SAndroid Build Coastguard Worker         /* 'type,length,SId,TID,isIDR,isFirstSliceInLayer,isLastSliceInLayer' */
498*495ae853SAndroid Build Coastguard Worker         UWORD8 *pu1_buf;
499*495ae853SAndroid Build Coastguard Worker 
500*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_num_bytes;
501*495ae853SAndroid Build Coastguard Worker 
502*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_buf_size;
503*495ae853SAndroid Build Coastguard Worker     } isvce_nalu_info_buf_t;
504*495ae853SAndroid Build Coastguard Worker 
505*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_video_encode_ip_t
506*495ae853SAndroid Build Coastguard Worker     {
507*495ae853SAndroid Build Coastguard Worker         ive_video_encode_ip_t s_ive_ip;
508*495ae853SAndroid Build Coastguard Worker 
509*495ae853SAndroid Build Coastguard Worker         isvce_nalu_info_buf_t *ps_nalu_info_buf;
510*495ae853SAndroid Build Coastguard Worker 
511*495ae853SAndroid Build Coastguard Worker     } isvce_video_encode_ip_t;
512*495ae853SAndroid Build Coastguard Worker 
513*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_video_encode_op_t
514*495ae853SAndroid Build Coastguard Worker     {
515*495ae853SAndroid Build Coastguard Worker         ive_video_encode_op_t s_ive_op;
516*495ae853SAndroid Build Coastguard Worker 
517*495ae853SAndroid Build Coastguard Worker         bool b_is_nalu_info_present;
518*495ae853SAndroid Build Coastguard Worker 
519*495ae853SAndroid Build Coastguard Worker         isvce_nalu_info_buf_t *ps_nalu_info_buf;
520*495ae853SAndroid Build Coastguard Worker 
521*495ae853SAndroid Build Coastguard Worker     } isvce_video_encode_op_t;
522*495ae853SAndroid Build Coastguard Worker 
523*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
524*495ae853SAndroid Build Coastguard Worker     /*   Video usability information                                             */
525*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
526*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_vui_ip_t
527*495ae853SAndroid Build Coastguard Worker     {
528*495ae853SAndroid Build Coastguard Worker         /** size of the structure  */
529*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_size;
530*495ae853SAndroid Build Coastguard Worker 
531*495ae853SAndroid Build Coastguard Worker         /** Command type : ISVCE_CMD_VIDEO_CTL  */
532*495ae853SAndroid Build Coastguard Worker         ISVCE_API_COMMAND_TYPE_T e_cmd;
533*495ae853SAndroid Build Coastguard Worker 
534*495ae853SAndroid Build Coastguard Worker         /** Sub command type : ISVCE_CMD_CTL_SET_GOP_PARAMS */
535*495ae853SAndroid Build Coastguard Worker         ISVCE_CONTROL_API_COMMAND_TYPE_T e_sub_cmd;
536*495ae853SAndroid Build Coastguard Worker 
537*495ae853SAndroid Build Coastguard Worker         /** indicates the presence of aspect_ratio */
538*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_aspect_ratio_info_present_flag;
539*495ae853SAndroid Build Coastguard Worker 
540*495ae853SAndroid Build Coastguard Worker         /** specifies the aspect ratio of the luma samples */
541*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_aspect_ratio_idc;
542*495ae853SAndroid Build Coastguard Worker 
543*495ae853SAndroid Build Coastguard Worker         /** width of the luma samples. user dependent */
544*495ae853SAndroid Build Coastguard Worker         UWORD16 u2_sar_width;
545*495ae853SAndroid Build Coastguard Worker 
546*495ae853SAndroid Build Coastguard Worker         /** Height of the luma samples. user dependent */
547*495ae853SAndroid Build Coastguard Worker         UWORD16 u2_sar_height;
548*495ae853SAndroid Build Coastguard Worker 
549*495ae853SAndroid Build Coastguard Worker         /** if 1, specifies that the overscan_appropriate_flag is present
550*495ae853SAndroid Build Coastguard Worker          * if 0, the preferred display method for the video signal is unspecified */
551*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_overscan_info_present_flag;
552*495ae853SAndroid Build Coastguard Worker 
553*495ae853SAndroid Build Coastguard Worker         /** if 1,indicates that the cropped decoded pictures output
554*495ae853SAndroid Build Coastguard Worker          * are suitable for display using overscan */
555*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_overscan_appropriate_flag;
556*495ae853SAndroid Build Coastguard Worker 
557*495ae853SAndroid Build Coastguard Worker         /** if 1 specifies that video_format, video_full_range_flag and
558*495ae853SAndroid Build Coastguard Worker          * colour_description_present_flag are present */
559*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_video_signal_type_present_flag;
560*495ae853SAndroid Build Coastguard Worker 
561*495ae853SAndroid Build Coastguard Worker         /** pal, secam, ntsc, ...  */
562*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_video_format;
563*495ae853SAndroid Build Coastguard Worker 
564*495ae853SAndroid Build Coastguard Worker         /** indicates the black level and range of the luma and chroma signals */
565*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_video_full_range_flag;
566*495ae853SAndroid Build Coastguard Worker 
567*495ae853SAndroid Build Coastguard Worker         /** if 1,specifies that colour_primaries, transfer_characteristics
568*495ae853SAndroid Build Coastguard Worker          * and matrix_coefficients are present */
569*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_colour_description_present_flag;
570*495ae853SAndroid Build Coastguard Worker 
571*495ae853SAndroid Build Coastguard Worker         /** indicates the chromaticity coordinates of the source primaries  */
572*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_colour_primaries;
573*495ae853SAndroid Build Coastguard Worker 
574*495ae853SAndroid Build Coastguard Worker         /** indicates the opto-electronic transfer characteristic of the source picture */
575*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_transfer_characteristics;
576*495ae853SAndroid Build Coastguard Worker 
577*495ae853SAndroid Build Coastguard Worker         /** the matrix coefficients used in deriving luma and chroma signals
578*495ae853SAndroid Build Coastguard Worker          * from the green, blue, and red primaries */
579*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_matrix_coefficients;
580*495ae853SAndroid Build Coastguard Worker 
581*495ae853SAndroid Build Coastguard Worker         /** if 1, specifies that chroma_sample_loc_type_top_field and
582*495ae853SAndroid Build Coastguard Worker          * chroma_sample_loc_type_bottom_field are present */
583*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_chroma_loc_info_present_flag;
584*495ae853SAndroid Build Coastguard Worker 
585*495ae853SAndroid Build Coastguard Worker         /** location of chroma samples */
586*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_chroma_sample_loc_type_top_field;
587*495ae853SAndroid Build Coastguard Worker 
588*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_chroma_sample_loc_type_bottom_field;
589*495ae853SAndroid Build Coastguard Worker 
590*495ae853SAndroid Build Coastguard Worker         /**  Indicates the presence of the num_units_in_ticks, time_scale flag */
591*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_vui_timing_info_present_flag;
592*495ae853SAndroid Build Coastguard Worker 
593*495ae853SAndroid Build Coastguard Worker         /**  Number of units that correspond to one increment of the
594*495ae853SAndroid Build Coastguard Worker          *   clock. Indicates the  resolution */
595*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_vui_num_units_in_tick;
596*495ae853SAndroid Build Coastguard Worker 
597*495ae853SAndroid Build Coastguard Worker         /**  The number of time units that pass in one second */
598*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_vui_time_scale;
599*495ae853SAndroid Build Coastguard Worker 
600*495ae853SAndroid Build Coastguard Worker         /** Flag indicating that time difference between two frames is a constant */
601*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_fixed_frame_rate_flag;
602*495ae853SAndroid Build Coastguard Worker 
603*495ae853SAndroid Build Coastguard Worker         /** Indicates the presence of NAL HRD parameters */
604*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_nal_hrd_parameters_present_flag;
605*495ae853SAndroid Build Coastguard Worker 
606*495ae853SAndroid Build Coastguard Worker         /** Indicates the presence of VCL HRD parameters */
607*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_vcl_hrd_parameters_present_flag;
608*495ae853SAndroid Build Coastguard Worker 
609*495ae853SAndroid Build Coastguard Worker         /** Specifies the HRD operational mode */
610*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_low_delay_hrd_flag;
611*495ae853SAndroid Build Coastguard Worker 
612*495ae853SAndroid Build Coastguard Worker         /** Indicates presence of SEI messages which include pic_struct syntax element */
613*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_pic_struct_present_flag;
614*495ae853SAndroid Build Coastguard Worker 
615*495ae853SAndroid Build Coastguard Worker         /** 1, specifies that the following cvs bitstream restriction parameters are present */
616*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_bitstream_restriction_flag;
617*495ae853SAndroid Build Coastguard Worker 
618*495ae853SAndroid Build Coastguard Worker         /** if 0, indicates that no pel outside the pic boundaries and
619*495ae853SAndroid Build Coastguard Worker          * no sub-pels derived using pels outside the pic boundaries is used for inter prediction */
620*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_motion_vectors_over_pic_boundaries_flag;
621*495ae853SAndroid Build Coastguard Worker 
622*495ae853SAndroid Build Coastguard Worker         /** Indicates a number of bytes not exceeded by the sum of the sizes of the VCL NAL units
623*495ae853SAndroid Build Coastguard Worker          * associated with any coded picture */
624*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_max_bytes_per_pic_denom;
625*495ae853SAndroid Build Coastguard Worker 
626*495ae853SAndroid Build Coastguard Worker         /** Indicates an upper bound for the number of bits of coding_unit() data */
627*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_max_bits_per_mb_denom;
628*495ae853SAndroid Build Coastguard Worker 
629*495ae853SAndroid Build Coastguard Worker         /** Indicate the maximum absolute value of a decoded horizontal MV component
630*495ae853SAndroid Build Coastguard Worker          * in quarter-pel luma units */
631*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_log2_max_mv_length_horizontal;
632*495ae853SAndroid Build Coastguard Worker 
633*495ae853SAndroid Build Coastguard Worker         /** Indicate the maximum absolute value of a decoded vertical MV component
634*495ae853SAndroid Build Coastguard Worker          * in quarter-pel luma units */
635*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_log2_max_mv_length_vertical;
636*495ae853SAndroid Build Coastguard Worker 
637*495ae853SAndroid Build Coastguard Worker         /** Max number of frames that are not synchronized in display and decode order */
638*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_num_reorder_frames;
639*495ae853SAndroid Build Coastguard Worker 
640*495ae853SAndroid Build Coastguard Worker         /** specifies required size of the HRD DPB in units of frame buffers */
641*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_max_dec_frame_buffering;
642*495ae853SAndroid Build Coastguard Worker 
643*495ae853SAndroid Build Coastguard Worker     } isvce_vui_ip_t;
644*495ae853SAndroid Build Coastguard Worker 
645*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_vui_op_t
646*495ae853SAndroid Build Coastguard Worker     {
647*495ae853SAndroid Build Coastguard Worker         /** size of the structure                                           */
648*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_size;
649*495ae853SAndroid Build Coastguard Worker 
650*495ae853SAndroid Build Coastguard Worker         /** Return error code                                               */
651*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_error_code;
652*495ae853SAndroid Build Coastguard Worker     } isvce_vui_op_t;
653*495ae853SAndroid Build Coastguard Worker 
654*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
655*495ae853SAndroid Build Coastguard Worker     /*    Video control  Set SEI MDCV params                                     */
656*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
657*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_set_sei_mdcv_params_ip_t
658*495ae853SAndroid Build Coastguard Worker     {
659*495ae853SAndroid Build Coastguard Worker         /** size of the structure                                             */
660*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_size;
661*495ae853SAndroid Build Coastguard Worker 
662*495ae853SAndroid Build Coastguard Worker         /** Command type : ISVCE_CMD_VIDEO_CTL                                  */
663*495ae853SAndroid Build Coastguard Worker         ISVCE_API_COMMAND_TYPE_T e_cmd;
664*495ae853SAndroid Build Coastguard Worker 
665*495ae853SAndroid Build Coastguard Worker         /** Sub command type : ISVCE_CMD_CTL_SET_SEI_MDCV_PARAMS                */
666*495ae853SAndroid Build Coastguard Worker         ISVCE_CONTROL_API_COMMAND_TYPE_T e_sub_cmd;
667*495ae853SAndroid Build Coastguard Worker 
668*495ae853SAndroid Build Coastguard Worker         /** mastering display color volume info present flag                  */
669*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_sei_mdcv_params_present_flag;
670*495ae853SAndroid Build Coastguard Worker 
671*495ae853SAndroid Build Coastguard Worker         /** Array to store the display_primaries_x values                     */
672*495ae853SAndroid Build Coastguard Worker         UWORD16 au2_display_primaries_x[3];
673*495ae853SAndroid Build Coastguard Worker 
674*495ae853SAndroid Build Coastguard Worker         /** Array to store the display_primaries_y values                     */
675*495ae853SAndroid Build Coastguard Worker         UWORD16 au2_display_primaries_y[3];
676*495ae853SAndroid Build Coastguard Worker 
677*495ae853SAndroid Build Coastguard Worker         /** Variable to store the white point x value                         */
678*495ae853SAndroid Build Coastguard Worker         UWORD16 u2_white_point_x;
679*495ae853SAndroid Build Coastguard Worker 
680*495ae853SAndroid Build Coastguard Worker         /** Variable to store the white point y value                         */
681*495ae853SAndroid Build Coastguard Worker         UWORD16 u2_white_point_y;
682*495ae853SAndroid Build Coastguard Worker 
683*495ae853SAndroid Build Coastguard Worker         /** Variable to store the max display mastering luminance value       */
684*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_max_display_mastering_luminance;
685*495ae853SAndroid Build Coastguard Worker 
686*495ae853SAndroid Build Coastguard Worker         /** Variable to store the min display mastering luminance value       */
687*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_min_display_mastering_luminance;
688*495ae853SAndroid Build Coastguard Worker 
689*495ae853SAndroid Build Coastguard Worker         /** Lower 32bits of time stamp corresponding to input buffer,
690*495ae853SAndroid Build Coastguard Worker          * from which this command takes effect                               */
691*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_timestamp_low;
692*495ae853SAndroid Build Coastguard Worker 
693*495ae853SAndroid Build Coastguard Worker         /** Upper 32bits of time stamp corresponding to input buffer,
694*495ae853SAndroid Build Coastguard Worker          * from which this command takes effect                               */
695*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_timestamp_high;
696*495ae853SAndroid Build Coastguard Worker 
697*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_set_sei_mdcv_params_ip_t;
698*495ae853SAndroid Build Coastguard Worker 
699*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_set_sei_mdcv_params_op_t
700*495ae853SAndroid Build Coastguard Worker     {
701*495ae853SAndroid Build Coastguard Worker         /** size of the structure                                           */
702*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_size;
703*495ae853SAndroid Build Coastguard Worker 
704*495ae853SAndroid Build Coastguard Worker         /** Return error code                                               */
705*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_error_code;
706*495ae853SAndroid Build Coastguard Worker 
707*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_set_sei_mdcv_params_op_t;
708*495ae853SAndroid Build Coastguard Worker 
709*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
710*495ae853SAndroid Build Coastguard Worker     /*    Video control  Set SEI CLL params                                      */
711*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
712*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_set_sei_cll_params_ip_t
713*495ae853SAndroid Build Coastguard Worker     {
714*495ae853SAndroid Build Coastguard Worker         /** size of the structure                                             */
715*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_size;
716*495ae853SAndroid Build Coastguard Worker 
717*495ae853SAndroid Build Coastguard Worker         /** Command type : ISVCE_CMD_VIDEO_CTL                                  */
718*495ae853SAndroid Build Coastguard Worker         ISVCE_API_COMMAND_TYPE_T e_cmd;
719*495ae853SAndroid Build Coastguard Worker 
720*495ae853SAndroid Build Coastguard Worker         /** Sub command type : ISVCE_CMD_CTL_SET_SEI_CLL_PARAMS                 */
721*495ae853SAndroid Build Coastguard Worker         ISVCE_CONTROL_API_COMMAND_TYPE_T e_sub_cmd;
722*495ae853SAndroid Build Coastguard Worker 
723*495ae853SAndroid Build Coastguard Worker         /** content light level info present flag                             */
724*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_sei_cll_params_present_flag;
725*495ae853SAndroid Build Coastguard Worker 
726*495ae853SAndroid Build Coastguard Worker         /** The maximum pixel intensity of all samples                        */
727*495ae853SAndroid Build Coastguard Worker         UWORD16 u2_max_content_light_level;
728*495ae853SAndroid Build Coastguard Worker 
729*495ae853SAndroid Build Coastguard Worker         /** The average pixel intensity of all samples                        */
730*495ae853SAndroid Build Coastguard Worker         UWORD16 u2_max_pic_average_light_level;
731*495ae853SAndroid Build Coastguard Worker 
732*495ae853SAndroid Build Coastguard Worker         /** Lower 32bits of time stamp corresponding to input buffer,
733*495ae853SAndroid Build Coastguard Worker          * from which this command takes effect                               */
734*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_timestamp_low;
735*495ae853SAndroid Build Coastguard Worker 
736*495ae853SAndroid Build Coastguard Worker         /** Upper 32bits of time stamp corresponding to input buffer,
737*495ae853SAndroid Build Coastguard Worker          * from which this command takes effect                               */
738*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_timestamp_high;
739*495ae853SAndroid Build Coastguard Worker 
740*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_set_sei_cll_params_ip_t;
741*495ae853SAndroid Build Coastguard Worker 
742*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_set_sei_cll_params_op_t
743*495ae853SAndroid Build Coastguard Worker     {
744*495ae853SAndroid Build Coastguard Worker         /** size of the structure                                             */
745*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_size;
746*495ae853SAndroid Build Coastguard Worker 
747*495ae853SAndroid Build Coastguard Worker         /** Return error code                                                 */
748*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_error_code;
749*495ae853SAndroid Build Coastguard Worker 
750*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_set_sei_cll_params_op_t;
751*495ae853SAndroid Build Coastguard Worker 
752*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
753*495ae853SAndroid Build Coastguard Worker     /*    Video control  Set SEI AVE params                                      */
754*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
755*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_set_sei_ave_params_ip_t
756*495ae853SAndroid Build Coastguard Worker     {
757*495ae853SAndroid Build Coastguard Worker         /** size of the structure                                             */
758*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_size;
759*495ae853SAndroid Build Coastguard Worker 
760*495ae853SAndroid Build Coastguard Worker         /** Command type : ISVCE_CMD_VIDEO_CTL                                  */
761*495ae853SAndroid Build Coastguard Worker         ISVCE_API_COMMAND_TYPE_T e_cmd;
762*495ae853SAndroid Build Coastguard Worker 
763*495ae853SAndroid Build Coastguard Worker         /** Sub command type : ISVCE_CMD_CTL_SET_SEI_AVE_PARAMS                 */
764*495ae853SAndroid Build Coastguard Worker         ISVCE_CONTROL_API_COMMAND_TYPE_T e_sub_cmd;
765*495ae853SAndroid Build Coastguard Worker 
766*495ae853SAndroid Build Coastguard Worker         /** ambient viewing environment info present flag                     */
767*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_sei_ave_params_present_flag;
768*495ae853SAndroid Build Coastguard Worker 
769*495ae853SAndroid Build Coastguard Worker         /** specifies the environmental illluminance of the ambient viewing
770*495ae853SAndroid Build Coastguard Worker          * environment                                                        */
771*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_ambient_illuminance;
772*495ae853SAndroid Build Coastguard Worker 
773*495ae853SAndroid Build Coastguard Worker         /** specify the normalized x chromaticity coordinates of the
774*495ae853SAndroid Build Coastguard Worker          * environmental ambient light in the nominal viewing environment     */
775*495ae853SAndroid Build Coastguard Worker         UWORD16 u2_ambient_light_x;
776*495ae853SAndroid Build Coastguard Worker 
777*495ae853SAndroid Build Coastguard Worker         /** specify the normalized y chromaticity coordinates of the
778*495ae853SAndroid Build Coastguard Worker          * environmental ambient light in the nominal viewing environment     */
779*495ae853SAndroid Build Coastguard Worker         UWORD16 u2_ambient_light_y;
780*495ae853SAndroid Build Coastguard Worker 
781*495ae853SAndroid Build Coastguard Worker         /** Lower 32bits of time stamp corresponding to input buffer,
782*495ae853SAndroid Build Coastguard Worker          * from which this command takes effect                               */
783*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_timestamp_low;
784*495ae853SAndroid Build Coastguard Worker 
785*495ae853SAndroid Build Coastguard Worker         /** Upper 32bits of time stamp corresponding to input buffer,
786*495ae853SAndroid Build Coastguard Worker          * from which this command takes effect                               */
787*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_timestamp_high;
788*495ae853SAndroid Build Coastguard Worker 
789*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_set_sei_ave_params_ip_t;
790*495ae853SAndroid Build Coastguard Worker 
791*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_set_sei_ave_params_op_t
792*495ae853SAndroid Build Coastguard Worker     {
793*495ae853SAndroid Build Coastguard Worker         /** size of the structure                                             */
794*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_size;
795*495ae853SAndroid Build Coastguard Worker 
796*495ae853SAndroid Build Coastguard Worker         /** Return error code                                                 */
797*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_error_code;
798*495ae853SAndroid Build Coastguard Worker 
799*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_set_sei_ave_params_op_t;
800*495ae853SAndroid Build Coastguard Worker 
801*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
802*495ae853SAndroid Build Coastguard Worker     /*    Video control  Set SEI CCV params                                      */
803*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
804*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_set_sei_ccv_params_ip_t
805*495ae853SAndroid Build Coastguard Worker     {
806*495ae853SAndroid Build Coastguard Worker         /** size of the structure                                             */
807*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_size;
808*495ae853SAndroid Build Coastguard Worker 
809*495ae853SAndroid Build Coastguard Worker         /** Command type : ISVCE_CMD_VIDEO_CTL                                  */
810*495ae853SAndroid Build Coastguard Worker         ISVCE_API_COMMAND_TYPE_T e_cmd;
811*495ae853SAndroid Build Coastguard Worker 
812*495ae853SAndroid Build Coastguard Worker         /** Sub command type : ISVCE_CMD_CTL_SET_SEI_CCV_PARAMS                 */
813*495ae853SAndroid Build Coastguard Worker         ISVCE_CONTROL_API_COMMAND_TYPE_T e_sub_cmd;
814*495ae853SAndroid Build Coastguard Worker 
815*495ae853SAndroid Build Coastguard Worker         /** content color volume info present flag                            */
816*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_sei_ccv_params_present_flag;
817*495ae853SAndroid Build Coastguard Worker 
818*495ae853SAndroid Build Coastguard Worker         /** Flag used to control persistence of CCV SEI messages              */
819*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_ccv_cancel_flag;
820*495ae853SAndroid Build Coastguard Worker 
821*495ae853SAndroid Build Coastguard Worker         /** specifies the persistence of the CCV SEI message for the
822*495ae853SAndroid Build Coastguard Worker          * current layer                                                      */
823*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_ccv_persistence_flag;
824*495ae853SAndroid Build Coastguard Worker 
825*495ae853SAndroid Build Coastguard Worker         /** specifies the presence of syntax elements ccv_primaries_x
826*495ae853SAndroid Build Coastguard Worker          * and ccv_primaries_y                                                */
827*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_ccv_primaries_present_flag;
828*495ae853SAndroid Build Coastguard Worker 
829*495ae853SAndroid Build Coastguard Worker         /** specifies that the syntax element ccv_min_luminance_value
830*495ae853SAndroid Build Coastguard Worker          * is present                                                         */
831*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_ccv_min_luminance_value_present_flag;
832*495ae853SAndroid Build Coastguard Worker 
833*495ae853SAndroid Build Coastguard Worker         /** specifies that the syntax element ccv_max_luminance_value
834*495ae853SAndroid Build Coastguard Worker          *  is present                                                        */
835*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_ccv_max_luminance_value_present_flag;
836*495ae853SAndroid Build Coastguard Worker 
837*495ae853SAndroid Build Coastguard Worker         /** specifies that the syntax element ccv_avg_luminance_value
838*495ae853SAndroid Build Coastguard Worker          *  is present                                                        */
839*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_ccv_avg_luminance_value_present_flag;
840*495ae853SAndroid Build Coastguard Worker 
841*495ae853SAndroid Build Coastguard Worker         /** shall be equal to 0 in bitstreams conforming to this version.
842*495ae853SAndroid Build Coastguard Worker          * Other values for reserved_zero_2bits are reserved for future use   */
843*495ae853SAndroid Build Coastguard Worker         UWORD8 u1_ccv_reserved_zero_2bits;
844*495ae853SAndroid Build Coastguard Worker 
845*495ae853SAndroid Build Coastguard Worker         /** specify the normalized x chromaticity coordinates of the colour
846*495ae853SAndroid Build Coastguard Worker          * primary component c of the nominal content colour volume           */
847*495ae853SAndroid Build Coastguard Worker         WORD32 ai4_ccv_primaries_x[3];
848*495ae853SAndroid Build Coastguard Worker 
849*495ae853SAndroid Build Coastguard Worker         /** specify the normalized y chromaticity coordinates of the colour
850*495ae853SAndroid Build Coastguard Worker          * primary component c of the nominal content colour volume           */
851*495ae853SAndroid Build Coastguard Worker         WORD32 ai4_ccv_primaries_y[3];
852*495ae853SAndroid Build Coastguard Worker 
853*495ae853SAndroid Build Coastguard Worker         /** specifies the normalized minimum luminance value                  */
854*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_ccv_min_luminance_value;
855*495ae853SAndroid Build Coastguard Worker 
856*495ae853SAndroid Build Coastguard Worker         /** specifies the normalized maximum luminance value                  */
857*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_ccv_max_luminance_value;
858*495ae853SAndroid Build Coastguard Worker 
859*495ae853SAndroid Build Coastguard Worker         /** specifies the normalized average luminance value                  */
860*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_ccv_avg_luminance_value;
861*495ae853SAndroid Build Coastguard Worker 
862*495ae853SAndroid Build Coastguard Worker         /** Lower 32bits of time stamp corresponding to input buffer,
863*495ae853SAndroid Build Coastguard Worker          * from which this command takes effect                               */
864*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_timestamp_low;
865*495ae853SAndroid Build Coastguard Worker 
866*495ae853SAndroid Build Coastguard Worker         /** Upper 32bits of time stamp corresponding to input buffer,
867*495ae853SAndroid Build Coastguard Worker          * from which this command takes effect                               */
868*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_timestamp_high;
869*495ae853SAndroid Build Coastguard Worker 
870*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_set_sei_ccv_params_ip_t;
871*495ae853SAndroid Build Coastguard Worker 
872*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_ctl_set_sei_ccv_params_op_t
873*495ae853SAndroid Build Coastguard Worker     {
874*495ae853SAndroid Build Coastguard Worker         /** size of the structure                                             */
875*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_size;
876*495ae853SAndroid Build Coastguard Worker 
877*495ae853SAndroid Build Coastguard Worker         /** Return error code                                                 */
878*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_error_code;
879*495ae853SAndroid Build Coastguard Worker 
880*495ae853SAndroid Build Coastguard Worker     } isvce_ctl_set_sei_ccv_params_op_t;
881*495ae853SAndroid Build Coastguard Worker 
882*495ae853SAndroid Build Coastguard Worker     /* The enum values should not have greater than 8 bits as this is assigned to WORD8 */
883*495ae853SAndroid Build Coastguard Worker     typedef enum IV_MB_TYPE_T
884*495ae853SAndroid Build Coastguard Worker     {
885*495ae853SAndroid Build Coastguard Worker         INTRA16x16 = 0,
886*495ae853SAndroid Build Coastguard Worker         INTRA4x4,
887*495ae853SAndroid Build Coastguard Worker         INTER16x16
888*495ae853SAndroid Build Coastguard Worker     } IV_MB_TYPE_T;
889*495ae853SAndroid Build Coastguard Worker 
890*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
891*495ae853SAndroid Build Coastguard Worker     /*   Pic info structures                                                     */
892*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
893*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_pic_info1_t
894*495ae853SAndroid Build Coastguard Worker     {
895*495ae853SAndroid Build Coastguard Worker         /** Qp  */
896*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_qp;
897*495ae853SAndroid Build Coastguard Worker 
898*495ae853SAndroid Build Coastguard Worker         /** Pic Type */
899*495ae853SAndroid Build Coastguard Worker         IV_PICTURE_CODING_TYPE_T e_frame_type;
900*495ae853SAndroid Build Coastguard Worker 
901*495ae853SAndroid Build Coastguard Worker     } isvce_pic_info1_t;
902*495ae853SAndroid Build Coastguard Worker 
903*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
904*495ae853SAndroid Build Coastguard Worker     /*   MB info structures                                                     */
905*495ae853SAndroid Build Coastguard Worker     /*****************************************************************************/
906*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_mv_t
907*495ae853SAndroid Build Coastguard Worker     {
908*495ae853SAndroid Build Coastguard Worker         /** MV X    */
909*495ae853SAndroid Build Coastguard Worker         WORD16 i2_mv_x;
910*495ae853SAndroid Build Coastguard Worker 
911*495ae853SAndroid Build Coastguard Worker         /** MV Y    */
912*495ae853SAndroid Build Coastguard Worker         WORD16 i2_mv_y;
913*495ae853SAndroid Build Coastguard Worker     } isvce_mv_t;
914*495ae853SAndroid Build Coastguard Worker 
915*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_mb_info1_t
916*495ae853SAndroid Build Coastguard Worker     {
917*495ae853SAndroid Build Coastguard Worker         /** Intra / Inter    */
918*495ae853SAndroid Build Coastguard Worker         WORD8 i1_mb_type;
919*495ae853SAndroid Build Coastguard Worker 
920*495ae853SAndroid Build Coastguard Worker         union
921*495ae853SAndroid Build Coastguard Worker         {
922*495ae853SAndroid Build Coastguard Worker             isvce_mv_t as_mv[1];
923*495ae853SAndroid Build Coastguard Worker 
924*495ae853SAndroid Build Coastguard Worker             /** Intra mode */
925*495ae853SAndroid Build Coastguard Worker             WORD8 ai1_intra_mode[1];
926*495ae853SAndroid Build Coastguard Worker         };
927*495ae853SAndroid Build Coastguard Worker     } isvce_mb_info1_t;
928*495ae853SAndroid Build Coastguard Worker 
929*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_mb_info2_t
930*495ae853SAndroid Build Coastguard Worker     {
931*495ae853SAndroid Build Coastguard Worker         /** Intra / Inter    */
932*495ae853SAndroid Build Coastguard Worker         WORD8 i1_mb_type;
933*495ae853SAndroid Build Coastguard Worker 
934*495ae853SAndroid Build Coastguard Worker         /** SAD     */
935*495ae853SAndroid Build Coastguard Worker         UWORD16 u2_sad;
936*495ae853SAndroid Build Coastguard Worker 
937*495ae853SAndroid Build Coastguard Worker         union
938*495ae853SAndroid Build Coastguard Worker         {
939*495ae853SAndroid Build Coastguard Worker             isvce_mv_t as_mv[1];
940*495ae853SAndroid Build Coastguard Worker 
941*495ae853SAndroid Build Coastguard Worker             /** Intra mode */
942*495ae853SAndroid Build Coastguard Worker             WORD8 ai1_intra_mode[1];
943*495ae853SAndroid Build Coastguard Worker         };
944*495ae853SAndroid Build Coastguard Worker 
945*495ae853SAndroid Build Coastguard Worker     } isvce_mb_info2_t;
946*495ae853SAndroid Build Coastguard Worker 
947*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_mb_info3_t
948*495ae853SAndroid Build Coastguard Worker     {
949*495ae853SAndroid Build Coastguard Worker         /** Intra / Inter    */
950*495ae853SAndroid Build Coastguard Worker         WORD8 i1_mb_type;
951*495ae853SAndroid Build Coastguard Worker 
952*495ae853SAndroid Build Coastguard Worker         union
953*495ae853SAndroid Build Coastguard Worker         {
954*495ae853SAndroid Build Coastguard Worker             isvce_mv_t as_mv[4];
955*495ae853SAndroid Build Coastguard Worker 
956*495ae853SAndroid Build Coastguard Worker             /** Intra mode */
957*495ae853SAndroid Build Coastguard Worker             WORD8 ai1_intra_mode[16];
958*495ae853SAndroid Build Coastguard Worker         };
959*495ae853SAndroid Build Coastguard Worker 
960*495ae853SAndroid Build Coastguard Worker     } isvce_mb_info3_t;
961*495ae853SAndroid Build Coastguard Worker 
962*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_mb_info4_t
963*495ae853SAndroid Build Coastguard Worker     {
964*495ae853SAndroid Build Coastguard Worker         /** Intra / Inter    */
965*495ae853SAndroid Build Coastguard Worker         WORD8 i1_mb_type;
966*495ae853SAndroid Build Coastguard Worker 
967*495ae853SAndroid Build Coastguard Worker         /** Intra Mode      */
968*495ae853SAndroid Build Coastguard Worker         WORD8 i1_intra_mode;
969*495ae853SAndroid Build Coastguard Worker 
970*495ae853SAndroid Build Coastguard Worker         /** SAD     */
971*495ae853SAndroid Build Coastguard Worker         UWORD16 u2_sad;
972*495ae853SAndroid Build Coastguard Worker 
973*495ae853SAndroid Build Coastguard Worker         union
974*495ae853SAndroid Build Coastguard Worker         {
975*495ae853SAndroid Build Coastguard Worker             isvce_mv_t as_mv[16];
976*495ae853SAndroid Build Coastguard Worker 
977*495ae853SAndroid Build Coastguard Worker             /** Intra mode */
978*495ae853SAndroid Build Coastguard Worker             WORD8 ai1_intra_mode[16];
979*495ae853SAndroid Build Coastguard Worker         };
980*495ae853SAndroid Build Coastguard Worker 
981*495ae853SAndroid Build Coastguard Worker     } isvce_mb_info4_t;
982*495ae853SAndroid Build Coastguard Worker 
983*495ae853SAndroid Build Coastguard Worker     /* Add any new structures to the following union. It is used to calculate the
984*495ae853SAndroid Build Coastguard Worker      * max size needed for allocation of memory */
985*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_api_mb_info_t
986*495ae853SAndroid Build Coastguard Worker     {
987*495ae853SAndroid Build Coastguard Worker         union
988*495ae853SAndroid Build Coastguard Worker         {
989*495ae853SAndroid Build Coastguard Worker             isvce_mb_info1_t s_mb_info1;
990*495ae853SAndroid Build Coastguard Worker             isvce_mb_info2_t s_mb_info2;
991*495ae853SAndroid Build Coastguard Worker             isvce_mb_info3_t s_mb_info3;
992*495ae853SAndroid Build Coastguard Worker             isvce_mb_info4_t s_mb_info4;
993*495ae853SAndroid Build Coastguard Worker         };
994*495ae853SAndroid Build Coastguard Worker     } isvce_api_mb_info_t;
995*495ae853SAndroid Build Coastguard Worker 
996*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_pic_info2_t
997*495ae853SAndroid Build Coastguard Worker     {
998*495ae853SAndroid Build Coastguard Worker         /** Qp  */
999*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_qp;
1000*495ae853SAndroid Build Coastguard Worker 
1001*495ae853SAndroid Build Coastguard Worker         /** Pic Type */
1002*495ae853SAndroid Build Coastguard Worker         IV_PICTURE_CODING_TYPE_T e_frame_type;
1003*495ae853SAndroid Build Coastguard Worker 
1004*495ae853SAndroid Build Coastguard Worker         /** Disable deblock level (0: Enable completely, 3: Disable completely */
1005*495ae853SAndroid Build Coastguard Worker         UWORD32 u4_disable_deblock_level;
1006*495ae853SAndroid Build Coastguard Worker 
1007*495ae853SAndroid Build Coastguard Worker     } isvce_pic_info2_t;
1008*495ae853SAndroid Build Coastguard Worker 
1009*495ae853SAndroid Build Coastguard Worker     typedef struct isvce_api_cmds_t
1010*495ae853SAndroid Build Coastguard Worker     {
1011*495ae853SAndroid Build Coastguard Worker         ISVCE_API_COMMAND_TYPE_T e_cmd;
1012*495ae853SAndroid Build Coastguard Worker 
1013*495ae853SAndroid Build Coastguard Worker         ISVCE_CONTROL_API_COMMAND_TYPE_T e_ctl_cmd;
1014*495ae853SAndroid Build Coastguard Worker     } isvce_api_cmds_t;
1015*495ae853SAndroid Build Coastguard Worker 
1016*495ae853SAndroid Build Coastguard Worker     extern IV_STATUS_T isvce_api_function(iv_obj_t *ps_handle, void *pv_api_ip, void *pv_api_op,
1017*495ae853SAndroid Build Coastguard Worker                                           isvce_api_cmds_t *ps_iv_api_cmds);
1018*495ae853SAndroid Build Coastguard Worker 
1019*495ae853SAndroid Build Coastguard Worker #ifdef __cplusplus
1020*495ae853SAndroid Build Coastguard Worker } /* closing brace for extern "C" */
1021*495ae853SAndroid Build Coastguard Worker #endif
1022*495ae853SAndroid Build Coastguard Worker 
1023*495ae853SAndroid Build Coastguard Worker #endif
1024