xref: /aosp_15_r20/external/libavc/encoder/ih264e.h (revision 495ae853bb871d1e5a258cb02c2cc13cde8ddb9a)
1*495ae853SAndroid Build Coastguard Worker /******************************************************************************
2*495ae853SAndroid Build Coastguard Worker  *
3*495ae853SAndroid Build Coastguard Worker  * Copyright (C) 2015 The Android Open Source Project
4*495ae853SAndroid Build Coastguard Worker  *
5*495ae853SAndroid Build Coastguard Worker  * Licensed under the Apache License, Version 2.0 (the "License");
6*495ae853SAndroid Build Coastguard Worker  * you may not use this file except in compliance with the License.
7*495ae853SAndroid Build Coastguard Worker  * You may obtain a copy of the License at:
8*495ae853SAndroid Build Coastguard Worker  *
9*495ae853SAndroid Build Coastguard Worker  * http://www.apache.org/licenses/LICENSE-2.0
10*495ae853SAndroid Build Coastguard Worker  *
11*495ae853SAndroid Build Coastguard Worker  * Unless required by applicable law or agreed to in writing, software
12*495ae853SAndroid Build Coastguard Worker  * distributed under the License is distributed on an "AS IS" BASIS,
13*495ae853SAndroid Build Coastguard Worker  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*495ae853SAndroid Build Coastguard Worker  * See the License for the specific language governing permissions and
15*495ae853SAndroid Build Coastguard Worker  * limitations under the License.
16*495ae853SAndroid Build Coastguard Worker  *
17*495ae853SAndroid Build Coastguard Worker  *****************************************************************************
18*495ae853SAndroid Build Coastguard Worker  * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
19*495ae853SAndroid Build Coastguard Worker */
20*495ae853SAndroid Build Coastguard Worker 
21*495ae853SAndroid Build Coastguard Worker /**
22*495ae853SAndroid Build Coastguard Worker ******************************************************************************
23*495ae853SAndroid Build Coastguard Worker * @file
24*495ae853SAndroid Build Coastguard Worker *  ih264e.h
25*495ae853SAndroid Build Coastguard Worker *
26*495ae853SAndroid Build Coastguard Worker * @brief
27*495ae853SAndroid Build Coastguard Worker *  This file contains all the necessary structure and enumeration definitions
28*495ae853SAndroid Build Coastguard Worker *  needed for the Application Program Interface(API) of the Ittiam H264 Encoder
29*495ae853SAndroid Build Coastguard Worker *
30*495ae853SAndroid Build Coastguard Worker * @author
31*495ae853SAndroid Build Coastguard Worker *  ittiam
32*495ae853SAndroid Build Coastguard Worker *
33*495ae853SAndroid Build Coastguard Worker * @remarks
34*495ae853SAndroid Build Coastguard Worker *  none
35*495ae853SAndroid Build Coastguard Worker ******************************************************************************
36*495ae853SAndroid Build Coastguard Worker */
37*495ae853SAndroid Build Coastguard Worker 
38*495ae853SAndroid Build Coastguard Worker #ifndef _IH264E_H_
39*495ae853SAndroid Build Coastguard Worker #define _IH264E_H_
40*495ae853SAndroid Build Coastguard Worker 
41*495ae853SAndroid Build Coastguard Worker #ifdef __cplusplus
42*495ae853SAndroid Build Coastguard Worker extern "C" {
43*495ae853SAndroid Build Coastguard Worker #endif
44*495ae853SAndroid Build Coastguard Worker 
45*495ae853SAndroid Build Coastguard Worker #include "iv2.h"
46*495ae853SAndroid Build Coastguard Worker #include "ive2.h"
47*495ae853SAndroid Build Coastguard Worker 
48*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
49*495ae853SAndroid Build Coastguard Worker /* Constant Macros                                                           */
50*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
51*495ae853SAndroid Build Coastguard Worker 
52*495ae853SAndroid Build Coastguard Worker 
53*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
54*495ae853SAndroid Build Coastguard Worker /* Function Declarations                                                     */
55*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
56*495ae853SAndroid Build Coastguard Worker IV_STATUS_T ih264e_api_function(iv_obj_t *ps_handle, void *pv_api_ip,
57*495ae853SAndroid Build Coastguard Worker                                 void *pv_api_op);
58*495ae853SAndroid Build Coastguard Worker 
59*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
60*495ae853SAndroid Build Coastguard Worker /* Enums                                                                     */
61*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
62*495ae853SAndroid Build Coastguard Worker typedef enum
63*495ae853SAndroid Build Coastguard Worker {
64*495ae853SAndroid Build Coastguard Worker     IH264E_CMD_CTL_SET_ME_INFO_ENABLE,
65*495ae853SAndroid Build Coastguard Worker }IH264E_CMD_CTL_SUB_CMDS;
66*495ae853SAndroid Build Coastguard Worker 
67*495ae853SAndroid Build Coastguard Worker /* NOTE: Ensure this enum values are not greater than 8 bits as this is being
68*495ae853SAndroid Build Coastguard Worker  * assigned to WORD8 */
69*495ae853SAndroid Build Coastguard Worker typedef enum
70*495ae853SAndroid Build Coastguard Worker {
71*495ae853SAndroid Build Coastguard Worker     INTRA16x16 = 0,
72*495ae853SAndroid Build Coastguard Worker     INTRA4x4,
73*495ae853SAndroid Build Coastguard Worker     INTER16x16,
74*495ae853SAndroid Build Coastguard Worker }IV_MB_TYPE_T;
75*495ae853SAndroid Build Coastguard Worker 
76*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
77*495ae853SAndroid Build Coastguard Worker /* Extended Structures                                                       */
78*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
79*495ae853SAndroid Build Coastguard Worker 
80*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
81*495ae853SAndroid Build Coastguard Worker /*  Get Number of Memory Records                                             */
82*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
83*495ae853SAndroid Build Coastguard Worker typedef struct
84*495ae853SAndroid Build Coastguard Worker {
85*495ae853SAndroid Build Coastguard Worker     iv_num_mem_rec_ip_t                    s_ive_ip;
86*495ae853SAndroid Build Coastguard Worker }ih264e_num_mem_rec_ip_t;
87*495ae853SAndroid Build Coastguard Worker 
88*495ae853SAndroid Build Coastguard Worker typedef struct
89*495ae853SAndroid Build Coastguard Worker {
90*495ae853SAndroid Build Coastguard Worker     iv_num_mem_rec_op_t                    s_ive_op;
91*495ae853SAndroid Build Coastguard Worker }ih264e_num_mem_rec_op_t;
92*495ae853SAndroid Build Coastguard Worker 
93*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
94*495ae853SAndroid Build Coastguard Worker /*  Fill Memory Records                                                      */
95*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
96*495ae853SAndroid Build Coastguard Worker typedef struct
97*495ae853SAndroid Build Coastguard Worker {
98*495ae853SAndroid Build Coastguard Worker     iv_fill_mem_rec_ip_t                   s_ive_ip;
99*495ae853SAndroid Build Coastguard Worker }ih264e_fill_mem_rec_ip_t;
100*495ae853SAndroid Build Coastguard Worker 
101*495ae853SAndroid Build Coastguard Worker typedef struct
102*495ae853SAndroid Build Coastguard Worker {
103*495ae853SAndroid Build Coastguard Worker     iv_fill_mem_rec_op_t                   s_ive_op;
104*495ae853SAndroid Build Coastguard Worker }ih264e_fill_mem_rec_op_t;
105*495ae853SAndroid Build Coastguard Worker 
106*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
107*495ae853SAndroid Build Coastguard Worker /*  Retrieve Memory Records                                                  */
108*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
109*495ae853SAndroid Build Coastguard Worker typedef struct
110*495ae853SAndroid Build Coastguard Worker {
111*495ae853SAndroid Build Coastguard Worker     iv_retrieve_mem_rec_ip_t               s_ive_ip;
112*495ae853SAndroid Build Coastguard Worker }ih264e_retrieve_mem_rec_ip_t;
113*495ae853SAndroid Build Coastguard Worker 
114*495ae853SAndroid Build Coastguard Worker typedef struct
115*495ae853SAndroid Build Coastguard Worker {
116*495ae853SAndroid Build Coastguard Worker     iv_retrieve_mem_rec_op_t               s_ive_op;
117*495ae853SAndroid Build Coastguard Worker }ih264e_retrieve_mem_rec_op_t;
118*495ae853SAndroid Build Coastguard Worker 
119*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
120*495ae853SAndroid Build Coastguard Worker /*   Initialize encoder                                                      */
121*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
122*495ae853SAndroid Build Coastguard Worker typedef struct
123*495ae853SAndroid Build Coastguard Worker {
124*495ae853SAndroid Build Coastguard Worker     ive_init_ip_t                           s_ive_ip;
125*495ae853SAndroid Build Coastguard Worker }ih264e_init_ip_t;
126*495ae853SAndroid Build Coastguard Worker 
127*495ae853SAndroid Build Coastguard Worker typedef struct
128*495ae853SAndroid Build Coastguard Worker {
129*495ae853SAndroid Build Coastguard Worker     ive_init_op_t                           s_ive_op;
130*495ae853SAndroid Build Coastguard Worker }ih264e_init_op_t;
131*495ae853SAndroid Build Coastguard Worker 
132*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
133*495ae853SAndroid Build Coastguard Worker /*   Queue Input raw buffer - Send the YUV buffer to be encoded              */
134*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
135*495ae853SAndroid Build Coastguard Worker typedef struct
136*495ae853SAndroid Build Coastguard Worker {
137*495ae853SAndroid Build Coastguard Worker     ive_queue_inp_ip_t                      s_ive_ip;
138*495ae853SAndroid Build Coastguard Worker }ih264e_queue_inp_ip_t;
139*495ae853SAndroid Build Coastguard Worker 
140*495ae853SAndroid Build Coastguard Worker typedef struct
141*495ae853SAndroid Build Coastguard Worker {
142*495ae853SAndroid Build Coastguard Worker     ive_queue_inp_op_t                      s_ive_op;
143*495ae853SAndroid Build Coastguard Worker }ih264e_queue_inp_op_t;
144*495ae853SAndroid Build Coastguard Worker 
145*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
146*495ae853SAndroid Build Coastguard Worker /*   Dequeue Input raw buffer - Get free YUV buffer from the encoder         */
147*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
148*495ae853SAndroid Build Coastguard Worker typedef struct
149*495ae853SAndroid Build Coastguard Worker {
150*495ae853SAndroid Build Coastguard Worker     ive_dequeue_inp_ip_t                      s_ive_ip;
151*495ae853SAndroid Build Coastguard Worker }ih264e_dequeue_inp_ip_t;
152*495ae853SAndroid Build Coastguard Worker 
153*495ae853SAndroid Build Coastguard Worker typedef struct
154*495ae853SAndroid Build Coastguard Worker {
155*495ae853SAndroid Build Coastguard Worker     ive_dequeue_inp_op_t                      s_ive_op;
156*495ae853SAndroid Build Coastguard Worker }ih264e_dequeue_inp_op_t;
157*495ae853SAndroid Build Coastguard Worker 
158*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
159*495ae853SAndroid Build Coastguard Worker /*   Queue Output bitstream buffer - Send the bistream buffer to be filled   */
160*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
161*495ae853SAndroid Build Coastguard Worker typedef struct
162*495ae853SAndroid Build Coastguard Worker {
163*495ae853SAndroid Build Coastguard Worker     ive_queue_out_ip_t                      s_ive_ip;
164*495ae853SAndroid Build Coastguard Worker }ih264e_queue_out_ip_t;
165*495ae853SAndroid Build Coastguard Worker 
166*495ae853SAndroid Build Coastguard Worker typedef struct
167*495ae853SAndroid Build Coastguard Worker {
168*495ae853SAndroid Build Coastguard Worker     ive_queue_out_op_t                      s_ive_op;
169*495ae853SAndroid Build Coastguard Worker }ih264e_queue_out_op_t;
170*495ae853SAndroid Build Coastguard Worker 
171*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
172*495ae853SAndroid Build Coastguard Worker /* Dequeue Output bitstream buffer - Get the bistream buffer filled          */
173*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
174*495ae853SAndroid Build Coastguard Worker typedef struct
175*495ae853SAndroid Build Coastguard Worker {
176*495ae853SAndroid Build Coastguard Worker     ive_dequeue_out_ip_t                      s_ive_ip;
177*495ae853SAndroid Build Coastguard Worker }ih264e_dequeue_out_ip_t;
178*495ae853SAndroid Build Coastguard Worker 
179*495ae853SAndroid Build Coastguard Worker typedef struct
180*495ae853SAndroid Build Coastguard Worker {
181*495ae853SAndroid Build Coastguard Worker     ive_dequeue_out_op_t                      s_ive_op;
182*495ae853SAndroid Build Coastguard Worker }ih264e_dequeue_out_op_t;
183*495ae853SAndroid Build Coastguard Worker 
184*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
185*495ae853SAndroid Build Coastguard Worker /* Get Recon data - Get the reconstructed data from encoder                  */
186*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
187*495ae853SAndroid Build Coastguard Worker typedef struct
188*495ae853SAndroid Build Coastguard Worker {
189*495ae853SAndroid Build Coastguard Worker     ive_get_recon_ip_t                        s_ive_ip;
190*495ae853SAndroid Build Coastguard Worker }ih264e_get_recon_ip_t;
191*495ae853SAndroid Build Coastguard Worker 
192*495ae853SAndroid Build Coastguard Worker typedef struct
193*495ae853SAndroid Build Coastguard Worker {
194*495ae853SAndroid Build Coastguard Worker     ive_get_recon_op_t                        s_ive_op;
195*495ae853SAndroid Build Coastguard Worker }ih264e_get_recon_op_t;
196*495ae853SAndroid Build Coastguard Worker 
197*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
198*495ae853SAndroid Build Coastguard Worker /*   Video control  Flush                                                    */
199*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
200*495ae853SAndroid Build Coastguard Worker typedef struct
201*495ae853SAndroid Build Coastguard Worker {
202*495ae853SAndroid Build Coastguard Worker     ive_ctl_flush_ip_t                      s_ive_ip;
203*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_flush_ip_t;
204*495ae853SAndroid Build Coastguard Worker 
205*495ae853SAndroid Build Coastguard Worker typedef struct
206*495ae853SAndroid Build Coastguard Worker {
207*495ae853SAndroid Build Coastguard Worker     ive_ctl_flush_op_t                      s_ive_op;
208*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_flush_op_t;
209*495ae853SAndroid Build Coastguard Worker 
210*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
211*495ae853SAndroid Build Coastguard Worker /*   Video control reset                                                     */
212*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
213*495ae853SAndroid Build Coastguard Worker typedef struct
214*495ae853SAndroid Build Coastguard Worker {
215*495ae853SAndroid Build Coastguard Worker     ive_ctl_reset_ip_t                      s_ive_ip;
216*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_reset_ip_t;
217*495ae853SAndroid Build Coastguard Worker 
218*495ae853SAndroid Build Coastguard Worker typedef struct
219*495ae853SAndroid Build Coastguard Worker {
220*495ae853SAndroid Build Coastguard Worker     ive_ctl_reset_op_t                      s_ive_op;
221*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_reset_op_t;
222*495ae853SAndroid Build Coastguard Worker 
223*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
224*495ae853SAndroid Build Coastguard Worker /*   Video control:Get Buf Info                                              */
225*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
226*495ae853SAndroid Build Coastguard Worker typedef struct
227*495ae853SAndroid Build Coastguard Worker {
228*495ae853SAndroid Build Coastguard Worker     ive_ctl_getbufinfo_ip_t             s_ive_ip;
229*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_getbufinfo_ip_t;
230*495ae853SAndroid Build Coastguard Worker 
231*495ae853SAndroid Build Coastguard Worker typedef struct
232*495ae853SAndroid Build Coastguard Worker {
233*495ae853SAndroid Build Coastguard Worker     ive_ctl_getbufinfo_op_t             s_ive_op;
234*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_getbufinfo_op_t;
235*495ae853SAndroid Build Coastguard Worker 
236*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
237*495ae853SAndroid Build Coastguard Worker /*   Video control:Get Version Info                                          */
238*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
239*495ae853SAndroid Build Coastguard Worker typedef struct
240*495ae853SAndroid Build Coastguard Worker {
241*495ae853SAndroid Build Coastguard Worker     ive_ctl_getversioninfo_ip_t         s_ive_ip;
242*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_getversioninfo_ip_t;
243*495ae853SAndroid Build Coastguard Worker 
244*495ae853SAndroid Build Coastguard Worker typedef struct
245*495ae853SAndroid Build Coastguard Worker {
246*495ae853SAndroid Build Coastguard Worker     ive_ctl_getversioninfo_op_t         s_ive_op;
247*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_getversioninfo_op_t;
248*495ae853SAndroid Build Coastguard Worker 
249*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
250*495ae853SAndroid Build Coastguard Worker /*   Video control:Set default params                                        */
251*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
252*495ae853SAndroid Build Coastguard Worker typedef struct
253*495ae853SAndroid Build Coastguard Worker {
254*495ae853SAndroid Build Coastguard Worker     ive_ctl_setdefault_ip_t         s_ive_ip;
255*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_setdefault_ip_t;
256*495ae853SAndroid Build Coastguard Worker 
257*495ae853SAndroid Build Coastguard Worker typedef struct
258*495ae853SAndroid Build Coastguard Worker {
259*495ae853SAndroid Build Coastguard Worker     ive_ctl_setdefault_op_t         s_ive_op;
260*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_setdefault_op_t;
261*495ae853SAndroid Build Coastguard Worker 
262*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
263*495ae853SAndroid Build Coastguard Worker /*   Video control  Set IPE params                                           */
264*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
265*495ae853SAndroid Build Coastguard Worker typedef struct
266*495ae853SAndroid Build Coastguard Worker {
267*495ae853SAndroid Build Coastguard Worker     ive_ctl_set_ipe_params_ip_t     s_ive_ip;
268*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_ipe_params_ip_t;
269*495ae853SAndroid Build Coastguard Worker 
270*495ae853SAndroid Build Coastguard Worker typedef struct
271*495ae853SAndroid Build Coastguard Worker {
272*495ae853SAndroid Build Coastguard Worker     ive_ctl_set_ipe_params_op_t     s_ive_op;
273*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_ipe_params_op_t;
274*495ae853SAndroid Build Coastguard Worker 
275*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
276*495ae853SAndroid Build Coastguard Worker /*   Video control  Set Frame dimensions                                     */
277*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
278*495ae853SAndroid Build Coastguard Worker typedef struct
279*495ae853SAndroid Build Coastguard Worker {
280*495ae853SAndroid Build Coastguard Worker     ive_ctl_set_dimensions_ip_t     s_ive_ip;
281*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_dimensions_ip_t;
282*495ae853SAndroid Build Coastguard Worker 
283*495ae853SAndroid Build Coastguard Worker typedef struct
284*495ae853SAndroid Build Coastguard Worker {
285*495ae853SAndroid Build Coastguard Worker     ive_ctl_set_dimensions_op_t     s_ive_op;
286*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_dimensions_op_t;
287*495ae853SAndroid Build Coastguard Worker 
288*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
289*495ae853SAndroid Build Coastguard Worker /*   Video control  Set Frame rates                                          */
290*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
291*495ae853SAndroid Build Coastguard Worker typedef struct
292*495ae853SAndroid Build Coastguard Worker {
293*495ae853SAndroid Build Coastguard Worker     ive_ctl_set_frame_rate_ip_t     s_ive_ip;
294*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_frame_rate_ip_t;
295*495ae853SAndroid Build Coastguard Worker 
296*495ae853SAndroid Build Coastguard Worker typedef struct
297*495ae853SAndroid Build Coastguard Worker {
298*495ae853SAndroid Build Coastguard Worker     ive_ctl_set_frame_rate_op_t     s_ive_op;
299*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_frame_rate_op_t;
300*495ae853SAndroid Build Coastguard Worker 
301*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
302*495ae853SAndroid Build Coastguard Worker /*   Video control  Set Bitrate                                              */
303*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
304*495ae853SAndroid Build Coastguard Worker typedef struct
305*495ae853SAndroid Build Coastguard Worker {
306*495ae853SAndroid Build Coastguard Worker     ive_ctl_set_bitrate_ip_t        s_ive_ip;
307*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_bitrate_ip_t;
308*495ae853SAndroid Build Coastguard Worker 
309*495ae853SAndroid Build Coastguard Worker typedef struct
310*495ae853SAndroid Build Coastguard Worker {
311*495ae853SAndroid Build Coastguard Worker     ive_ctl_set_bitrate_op_t        s_ive_op;
312*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_bitrate_op_t;
313*495ae853SAndroid Build Coastguard Worker 
314*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
315*495ae853SAndroid Build Coastguard Worker /*   Video control  Set Frame type                                           */
316*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
317*495ae853SAndroid Build Coastguard Worker typedef struct
318*495ae853SAndroid Build Coastguard Worker {
319*495ae853SAndroid Build Coastguard Worker     ive_ctl_set_frame_type_ip_t     s_ive_ip;
320*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_frame_type_ip_t;
321*495ae853SAndroid Build Coastguard Worker 
322*495ae853SAndroid Build Coastguard Worker typedef struct
323*495ae853SAndroid Build Coastguard Worker {
324*495ae853SAndroid Build Coastguard Worker     ive_ctl_set_frame_type_op_t     s_ive_op;
325*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_frame_type_op_t;
326*495ae853SAndroid Build Coastguard Worker 
327*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
328*495ae853SAndroid Build Coastguard Worker /*   Video control  Set Encode mode                                          */
329*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
330*495ae853SAndroid Build Coastguard Worker typedef struct
331*495ae853SAndroid Build Coastguard Worker {
332*495ae853SAndroid Build Coastguard Worker     ive_ctl_set_enc_mode_ip_t       s_ive_ip;
333*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_enc_mode_ip_t;
334*495ae853SAndroid Build Coastguard Worker 
335*495ae853SAndroid Build Coastguard Worker typedef struct
336*495ae853SAndroid Build Coastguard Worker {
337*495ae853SAndroid Build Coastguard Worker     ive_ctl_set_enc_mode_op_t       s_ive_op;
338*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_enc_mode_op_t;
339*495ae853SAndroid Build Coastguard Worker 
340*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
341*495ae853SAndroid Build Coastguard Worker /*   Video control  Set QP                                                   */
342*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
343*495ae853SAndroid Build Coastguard Worker typedef struct
344*495ae853SAndroid Build Coastguard Worker {
345*495ae853SAndroid Build Coastguard Worker     ive_ctl_set_qp_ip_t             s_ive_ip;
346*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_qp_ip_t;
347*495ae853SAndroid Build Coastguard Worker 
348*495ae853SAndroid Build Coastguard Worker typedef struct
349*495ae853SAndroid Build Coastguard Worker {
350*495ae853SAndroid Build Coastguard Worker     ive_ctl_set_qp_op_t             s_ive_op;
351*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_qp_op_t;
352*495ae853SAndroid Build Coastguard Worker 
353*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
354*495ae853SAndroid Build Coastguard Worker /*   Video control  Set AIR params                                           */
355*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
356*495ae853SAndroid Build Coastguard Worker typedef struct
357*495ae853SAndroid Build Coastguard Worker {
358*495ae853SAndroid Build Coastguard Worker     ive_ctl_set_air_params_ip_t     s_ive_ip;
359*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_air_params_ip_t;
360*495ae853SAndroid Build Coastguard Worker 
361*495ae853SAndroid Build Coastguard Worker typedef struct
362*495ae853SAndroid Build Coastguard Worker {
363*495ae853SAndroid Build Coastguard Worker     ive_ctl_set_air_params_op_t     s_ive_op;
364*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_air_params_op_t;
365*495ae853SAndroid Build Coastguard Worker 
366*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
367*495ae853SAndroid Build Coastguard Worker /*   Video control  Set VBV params                                           */
368*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
369*495ae853SAndroid Build Coastguard Worker typedef struct
370*495ae853SAndroid Build Coastguard Worker {
371*495ae853SAndroid Build Coastguard Worker     ive_ctl_set_vbv_params_ip_t     s_ive_ip;
372*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_vbv_params_ip_t;
373*495ae853SAndroid Build Coastguard Worker 
374*495ae853SAndroid Build Coastguard Worker typedef struct
375*495ae853SAndroid Build Coastguard Worker {
376*495ae853SAndroid Build Coastguard Worker     ive_ctl_set_vbv_params_op_t     s_ive_op;
377*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_vbv_params_op_t;
378*495ae853SAndroid Build Coastguard Worker 
379*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
380*495ae853SAndroid Build Coastguard Worker /*   Video control  Set Processor Details                                    */
381*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
382*495ae853SAndroid Build Coastguard Worker typedef struct
383*495ae853SAndroid Build Coastguard Worker {
384*495ae853SAndroid Build Coastguard Worker     ive_ctl_set_num_cores_ip_t      s_ive_ip;
385*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_num_cores_ip_t;
386*495ae853SAndroid Build Coastguard Worker 
387*495ae853SAndroid Build Coastguard Worker typedef struct
388*495ae853SAndroid Build Coastguard Worker {
389*495ae853SAndroid Build Coastguard Worker     ive_ctl_set_num_cores_op_t      s_ive_op;
390*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_num_cores_op_t;
391*495ae853SAndroid Build Coastguard Worker 
392*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
393*495ae853SAndroid Build Coastguard Worker /*   Video control  Set Motion estimation params                             */
394*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
395*495ae853SAndroid Build Coastguard Worker typedef struct
396*495ae853SAndroid Build Coastguard Worker {
397*495ae853SAndroid Build Coastguard Worker     ive_ctl_set_me_params_ip_t      s_ive_ip;
398*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_me_params_ip_t;
399*495ae853SAndroid Build Coastguard Worker 
400*495ae853SAndroid Build Coastguard Worker typedef struct
401*495ae853SAndroid Build Coastguard Worker {
402*495ae853SAndroid Build Coastguard Worker     ive_ctl_set_me_params_op_t      s_ive_op;
403*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_me_params_op_t;
404*495ae853SAndroid Build Coastguard Worker 
405*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
406*495ae853SAndroid Build Coastguard Worker /*   Video control  Set GOP params                                           */
407*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
408*495ae853SAndroid Build Coastguard Worker typedef struct
409*495ae853SAndroid Build Coastguard Worker {
410*495ae853SAndroid Build Coastguard Worker     ive_ctl_set_gop_params_ip_t     s_ive_ip;
411*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_gop_params_ip_t;
412*495ae853SAndroid Build Coastguard Worker 
413*495ae853SAndroid Build Coastguard Worker typedef struct
414*495ae853SAndroid Build Coastguard Worker {
415*495ae853SAndroid Build Coastguard Worker     ive_ctl_set_gop_params_op_t     s_ive_op;
416*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_gop_params_op_t;
417*495ae853SAndroid Build Coastguard Worker 
418*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
419*495ae853SAndroid Build Coastguard Worker /*   Video control  Set Deblock params                                       */
420*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
421*495ae853SAndroid Build Coastguard Worker typedef struct
422*495ae853SAndroid Build Coastguard Worker {
423*495ae853SAndroid Build Coastguard Worker     ive_ctl_set_deblock_params_ip_t s_ive_ip;
424*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_deblock_params_ip_t;
425*495ae853SAndroid Build Coastguard Worker 
426*495ae853SAndroid Build Coastguard Worker typedef struct
427*495ae853SAndroid Build Coastguard Worker {
428*495ae853SAndroid Build Coastguard Worker     ive_ctl_set_deblock_params_op_t s_ive_op;
429*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_deblock_params_op_t;
430*495ae853SAndroid Build Coastguard Worker 
431*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
432*495ae853SAndroid Build Coastguard Worker /*   Video control  Set Profile params                                       */
433*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
434*495ae853SAndroid Build Coastguard Worker typedef struct
435*495ae853SAndroid Build Coastguard Worker {
436*495ae853SAndroid Build Coastguard Worker     ive_ctl_set_profile_params_ip_t s_ive_ip;
437*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_profile_params_ip_t;
438*495ae853SAndroid Build Coastguard Worker 
439*495ae853SAndroid Build Coastguard Worker typedef struct
440*495ae853SAndroid Build Coastguard Worker {
441*495ae853SAndroid Build Coastguard Worker     ive_ctl_set_profile_params_op_t s_ive_op;
442*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_profile_params_op_t;
443*495ae853SAndroid Build Coastguard Worker 
444*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
445*495ae853SAndroid Build Coastguard Worker /*   Synchronous video encode call                                           */
446*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
447*495ae853SAndroid Build Coastguard Worker typedef struct
448*495ae853SAndroid Build Coastguard Worker {
449*495ae853SAndroid Build Coastguard Worker     ive_video_encode_ip_t s_ive_ip;
450*495ae853SAndroid Build Coastguard Worker }ih264e_video_encode_ip_t;
451*495ae853SAndroid Build Coastguard Worker 
452*495ae853SAndroid Build Coastguard Worker typedef struct
453*495ae853SAndroid Build Coastguard Worker {
454*495ae853SAndroid Build Coastguard Worker     ive_video_encode_op_t s_ive_op;
455*495ae853SAndroid Build Coastguard Worker }ih264e_video_encode_op_t;
456*495ae853SAndroid Build Coastguard Worker 
457*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
458*495ae853SAndroid Build Coastguard Worker /*   Video usability information                                             */
459*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
460*495ae853SAndroid Build Coastguard Worker typedef struct
461*495ae853SAndroid Build Coastguard Worker {
462*495ae853SAndroid Build Coastguard Worker     /** size of the structure  */
463*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_size;
464*495ae853SAndroid Build Coastguard Worker 
465*495ae853SAndroid Build Coastguard Worker     /** Command type : IVE_CMD_VIDEO_CTL  */
466*495ae853SAndroid Build Coastguard Worker     IVE_API_COMMAND_TYPE_T                      e_cmd;
467*495ae853SAndroid Build Coastguard Worker 
468*495ae853SAndroid Build Coastguard Worker     /** Sub command type : IVE_CMD_CTL_SET_GOP_PARAMS */
469*495ae853SAndroid Build Coastguard Worker     IVE_CONTROL_API_COMMAND_TYPE_T              e_sub_cmd;
470*495ae853SAndroid Build Coastguard Worker 
471*495ae853SAndroid Build Coastguard Worker     /** indicates the presence of aspect_ratio */
472*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_aspect_ratio_info_present_flag;
473*495ae853SAndroid Build Coastguard Worker 
474*495ae853SAndroid Build Coastguard Worker     /** specifies the aspect ratio of the luma samples */
475*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_aspect_ratio_idc;
476*495ae853SAndroid Build Coastguard Worker 
477*495ae853SAndroid Build Coastguard Worker     /** width of the luma samples. user dependent */
478*495ae853SAndroid Build Coastguard Worker     UWORD16                                     u2_sar_width;
479*495ae853SAndroid Build Coastguard Worker 
480*495ae853SAndroid Build Coastguard Worker     /** Height of the luma samples. user dependent */
481*495ae853SAndroid Build Coastguard Worker     UWORD16                                     u2_sar_height;
482*495ae853SAndroid Build Coastguard Worker 
483*495ae853SAndroid Build Coastguard Worker     /** if 1, specifies that the overscan_appropriate_flag is present
484*495ae853SAndroid Build Coastguard Worker      * if 0, the preferred display method for the video signal is unspecified */
485*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_overscan_info_present_flag;
486*495ae853SAndroid Build Coastguard Worker 
487*495ae853SAndroid Build Coastguard Worker     /** if 1,indicates that the cropped decoded pictures output
488*495ae853SAndroid Build Coastguard Worker      * are suitable for display using overscan */
489*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_overscan_appropriate_flag;
490*495ae853SAndroid Build Coastguard Worker 
491*495ae853SAndroid Build Coastguard Worker     /** if 1 specifies that video_format, video_full_range_flag and
492*495ae853SAndroid Build Coastguard Worker      * colour_description_present_flag are present */
493*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_video_signal_type_present_flag;
494*495ae853SAndroid Build Coastguard Worker 
495*495ae853SAndroid Build Coastguard Worker     /** pal, secam, ntsc, ...  */
496*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_video_format;
497*495ae853SAndroid Build Coastguard Worker 
498*495ae853SAndroid Build Coastguard Worker     /** indicates the black level and range of the luma and chroma signals */
499*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_video_full_range_flag;
500*495ae853SAndroid Build Coastguard Worker 
501*495ae853SAndroid Build Coastguard Worker     /** if 1,specifies that colour_primaries, transfer_characteristics
502*495ae853SAndroid Build Coastguard Worker      * and matrix_coefficients are present */
503*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_colour_description_present_flag;
504*495ae853SAndroid Build Coastguard Worker 
505*495ae853SAndroid Build Coastguard Worker     /** indicates the chromaticity coordinates of the source primaries  */
506*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_colour_primaries;
507*495ae853SAndroid Build Coastguard Worker 
508*495ae853SAndroid Build Coastguard Worker     /** indicates the opto-electronic transfer characteristic of the source picture */
509*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_transfer_characteristics;
510*495ae853SAndroid Build Coastguard Worker 
511*495ae853SAndroid Build Coastguard Worker     /** the matrix coefficients used in deriving luma and chroma signals
512*495ae853SAndroid Build Coastguard Worker      * from the green, blue, and red primaries */
513*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_matrix_coefficients;
514*495ae853SAndroid Build Coastguard Worker 
515*495ae853SAndroid Build Coastguard Worker     /** if 1, specifies that chroma_sample_loc_type_top_field and
516*495ae853SAndroid Build Coastguard Worker      * chroma_sample_loc_type_bottom_field are present */
517*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_chroma_loc_info_present_flag;
518*495ae853SAndroid Build Coastguard Worker 
519*495ae853SAndroid Build Coastguard Worker     /** location of chroma samples */
520*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_chroma_sample_loc_type_top_field;
521*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_chroma_sample_loc_type_bottom_field;
522*495ae853SAndroid Build Coastguard Worker 
523*495ae853SAndroid Build Coastguard Worker     /**  Indicates the presence of the num_units_in_ticks, time_scale flag */
524*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_vui_timing_info_present_flag;
525*495ae853SAndroid Build Coastguard Worker 
526*495ae853SAndroid Build Coastguard Worker     /**  Number of units that correspond to one increment of the
527*495ae853SAndroid Build Coastguard Worker     *   clock. Indicates the  resolution */
528*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_vui_num_units_in_tick;
529*495ae853SAndroid Build Coastguard Worker 
530*495ae853SAndroid Build Coastguard Worker     /**  The number of time units that pass in one second */
531*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_vui_time_scale;
532*495ae853SAndroid Build Coastguard Worker 
533*495ae853SAndroid Build Coastguard Worker     /** Flag indicating that time difference between two frames is a constant */
534*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_fixed_frame_rate_flag;
535*495ae853SAndroid Build Coastguard Worker 
536*495ae853SAndroid Build Coastguard Worker     /** Indicates the presence of NAL HRD parameters */
537*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_nal_hrd_parameters_present_flag;
538*495ae853SAndroid Build Coastguard Worker 
539*495ae853SAndroid Build Coastguard Worker     /** Indicates the presence of VCL HRD parameters */
540*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_vcl_hrd_parameters_present_flag;
541*495ae853SAndroid Build Coastguard Worker 
542*495ae853SAndroid Build Coastguard Worker     /** Specifies the HRD operational mode */
543*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_low_delay_hrd_flag;
544*495ae853SAndroid Build Coastguard Worker 
545*495ae853SAndroid Build Coastguard Worker     /** Indicates presence of SEI messages which include pic_struct syntax element */
546*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_pic_struct_present_flag;
547*495ae853SAndroid Build Coastguard Worker 
548*495ae853SAndroid Build Coastguard Worker     /** 1, specifies that the following cvs bitstream restriction parameters are present */
549*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_bitstream_restriction_flag;
550*495ae853SAndroid Build Coastguard Worker 
551*495ae853SAndroid Build Coastguard Worker     /** if 0, indicates that no pel outside the pic boundaries and
552*495ae853SAndroid Build Coastguard Worker      * no sub-pels derived using pels outside the pic boundaries is used for inter prediction */
553*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_motion_vectors_over_pic_boundaries_flag;
554*495ae853SAndroid Build Coastguard Worker 
555*495ae853SAndroid Build Coastguard Worker     /** Indicates a number of bytes not exceeded by the sum of the sizes of the VCL NAL units
556*495ae853SAndroid Build Coastguard Worker      * associated with any coded picture */
557*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_max_bytes_per_pic_denom;
558*495ae853SAndroid Build Coastguard Worker 
559*495ae853SAndroid Build Coastguard Worker     /** Indicates an upper bound for the number of bits of coding_unit() data */
560*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_max_bits_per_mb_denom;
561*495ae853SAndroid Build Coastguard Worker 
562*495ae853SAndroid Build Coastguard Worker     /** Indicate the maximum absolute value of a decoded horizontal MV component
563*495ae853SAndroid Build Coastguard Worker      * in quarter-pel luma units */
564*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_log2_max_mv_length_horizontal;
565*495ae853SAndroid Build Coastguard Worker 
566*495ae853SAndroid Build Coastguard Worker     /** Indicate the maximum absolute value of a decoded vertical MV component
567*495ae853SAndroid Build Coastguard Worker      * in quarter-pel luma units */
568*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_log2_max_mv_length_vertical;
569*495ae853SAndroid Build Coastguard Worker 
570*495ae853SAndroid Build Coastguard Worker     /** Max number of frames that are not synchronized in display and decode order */
571*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_num_reorder_frames;
572*495ae853SAndroid Build Coastguard Worker 
573*495ae853SAndroid Build Coastguard Worker     /** specifies required size of the HRD DPB in units of frame buffers */
574*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_max_dec_frame_buffering;
575*495ae853SAndroid Build Coastguard Worker 
576*495ae853SAndroid Build Coastguard Worker }ih264e_vui_ip_t;
577*495ae853SAndroid Build Coastguard Worker 
578*495ae853SAndroid Build Coastguard Worker typedef struct
579*495ae853SAndroid Build Coastguard Worker {
580*495ae853SAndroid Build Coastguard Worker     /** size of the structure                                           */
581*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_size;
582*495ae853SAndroid Build Coastguard Worker 
583*495ae853SAndroid Build Coastguard Worker     /** Return error code                                               */
584*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_error_code;
585*495ae853SAndroid Build Coastguard Worker }ih264e_vui_op_t;
586*495ae853SAndroid Build Coastguard Worker 
587*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
588*495ae853SAndroid Build Coastguard Worker /*    Video control  Set SEI MDCV params                                     */
589*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
590*495ae853SAndroid Build Coastguard Worker typedef struct
591*495ae853SAndroid Build Coastguard Worker {
592*495ae853SAndroid Build Coastguard Worker     /** size of the structure                                             */
593*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_size;
594*495ae853SAndroid Build Coastguard Worker 
595*495ae853SAndroid Build Coastguard Worker     /** Command type : IVE_CMD_VIDEO_CTL                                  */
596*495ae853SAndroid Build Coastguard Worker     IVE_API_COMMAND_TYPE_T                      e_cmd;
597*495ae853SAndroid Build Coastguard Worker 
598*495ae853SAndroid Build Coastguard Worker     /** Sub command type : IVE_CMD_CTL_SET_SEI_MDCV_PARAMS                */
599*495ae853SAndroid Build Coastguard Worker     IVE_CONTROL_API_COMMAND_TYPE_T              e_sub_cmd;
600*495ae853SAndroid Build Coastguard Worker 
601*495ae853SAndroid Build Coastguard Worker     /** mastering display color volume info present flag                  */
602*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_sei_mdcv_params_present_flag;
603*495ae853SAndroid Build Coastguard Worker 
604*495ae853SAndroid Build Coastguard Worker     /** Array to store the display_primaries_x values                     */
605*495ae853SAndroid Build Coastguard Worker     UWORD16                                     au2_display_primaries_x[3];
606*495ae853SAndroid Build Coastguard Worker 
607*495ae853SAndroid Build Coastguard Worker     /** Array to store the display_primaries_y values                     */
608*495ae853SAndroid Build Coastguard Worker     UWORD16                                     au2_display_primaries_y[3];
609*495ae853SAndroid Build Coastguard Worker 
610*495ae853SAndroid Build Coastguard Worker     /** Variable to store the white point x value                         */
611*495ae853SAndroid Build Coastguard Worker     UWORD16                                     u2_white_point_x;
612*495ae853SAndroid Build Coastguard Worker 
613*495ae853SAndroid Build Coastguard Worker     /** Variable to store the white point y value                         */
614*495ae853SAndroid Build Coastguard Worker     UWORD16                                     u2_white_point_y;
615*495ae853SAndroid Build Coastguard Worker 
616*495ae853SAndroid Build Coastguard Worker     /** Variable to store the max display mastering luminance value       */
617*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_max_display_mastering_luminance;
618*495ae853SAndroid Build Coastguard Worker 
619*495ae853SAndroid Build Coastguard Worker     /** Variable to store the min display mastering luminance value       */
620*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_min_display_mastering_luminance;
621*495ae853SAndroid Build Coastguard Worker 
622*495ae853SAndroid Build Coastguard Worker     /** Lower 32bits of time stamp corresponding to input buffer,
623*495ae853SAndroid Build Coastguard Worker      * from which this command takes effect                               */
624*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_timestamp_low;
625*495ae853SAndroid Build Coastguard Worker 
626*495ae853SAndroid Build Coastguard Worker     /** Upper 32bits of time stamp corresponding to input buffer,
627*495ae853SAndroid Build Coastguard Worker      * from which this command takes effect                               */
628*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_timestamp_high;
629*495ae853SAndroid Build Coastguard Worker 
630*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_sei_mdcv_params_ip_t;
631*495ae853SAndroid Build Coastguard Worker 
632*495ae853SAndroid Build Coastguard Worker typedef struct
633*495ae853SAndroid Build Coastguard Worker {
634*495ae853SAndroid Build Coastguard Worker     /** size of the structure                                           */
635*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_size;
636*495ae853SAndroid Build Coastguard Worker 
637*495ae853SAndroid Build Coastguard Worker     /** Return error code                                               */
638*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_error_code;
639*495ae853SAndroid Build Coastguard Worker 
640*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_sei_mdcv_params_op_t;
641*495ae853SAndroid Build Coastguard Worker 
642*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
643*495ae853SAndroid Build Coastguard Worker /*    Video control  Set SEI CLL params                                      */
644*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
645*495ae853SAndroid Build Coastguard Worker typedef struct
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     /** Command type : IVE_CMD_VIDEO_CTL                                  */
651*495ae853SAndroid Build Coastguard Worker     IVE_API_COMMAND_TYPE_T                      e_cmd;
652*495ae853SAndroid Build Coastguard Worker 
653*495ae853SAndroid Build Coastguard Worker     /** Sub command type : IVE_CMD_CTL_SET_SEI_CLL_PARAMS                 */
654*495ae853SAndroid Build Coastguard Worker     IVE_CONTROL_API_COMMAND_TYPE_T              e_sub_cmd;
655*495ae853SAndroid Build Coastguard Worker 
656*495ae853SAndroid Build Coastguard Worker     /** content light level info present flag                             */
657*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_sei_cll_params_present_flag;
658*495ae853SAndroid Build Coastguard Worker 
659*495ae853SAndroid Build Coastguard Worker     /** The maximum pixel intensity of all samples                        */
660*495ae853SAndroid Build Coastguard Worker     UWORD16                                     u2_max_content_light_level;
661*495ae853SAndroid Build Coastguard Worker 
662*495ae853SAndroid Build Coastguard Worker     /** The average pixel intensity of all samples                        */
663*495ae853SAndroid Build Coastguard Worker     UWORD16                                     u2_max_pic_average_light_level;
664*495ae853SAndroid Build Coastguard Worker 
665*495ae853SAndroid Build Coastguard Worker     /** Lower 32bits of time stamp corresponding to input buffer,
666*495ae853SAndroid Build Coastguard Worker      * from which this command takes effect                               */
667*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_timestamp_low;
668*495ae853SAndroid Build Coastguard Worker 
669*495ae853SAndroid Build Coastguard Worker     /** Upper 32bits of time stamp corresponding to input buffer,
670*495ae853SAndroid Build Coastguard Worker      * from which this command takes effect                               */
671*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_timestamp_high;
672*495ae853SAndroid Build Coastguard Worker 
673*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_sei_cll_params_ip_t;
674*495ae853SAndroid Build Coastguard Worker 
675*495ae853SAndroid Build Coastguard Worker typedef struct
676*495ae853SAndroid Build Coastguard Worker {
677*495ae853SAndroid Build Coastguard Worker     /** size of the structure                                             */
678*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_size;
679*495ae853SAndroid Build Coastguard Worker 
680*495ae853SAndroid Build Coastguard Worker     /** Return error code                                                 */
681*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_error_code;
682*495ae853SAndroid Build Coastguard Worker 
683*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_sei_cll_params_op_t;
684*495ae853SAndroid Build Coastguard Worker 
685*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
686*495ae853SAndroid Build Coastguard Worker /*    Video control  Set SEI AVE params                                      */
687*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
688*495ae853SAndroid Build Coastguard Worker typedef struct
689*495ae853SAndroid Build Coastguard Worker {
690*495ae853SAndroid Build Coastguard Worker     /** size of the structure                                             */
691*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_size;
692*495ae853SAndroid Build Coastguard Worker 
693*495ae853SAndroid Build Coastguard Worker     /** Command type : IVE_CMD_VIDEO_CTL                                  */
694*495ae853SAndroid Build Coastguard Worker     IVE_API_COMMAND_TYPE_T                      e_cmd;
695*495ae853SAndroid Build Coastguard Worker 
696*495ae853SAndroid Build Coastguard Worker     /** Sub command type : IVE_CMD_CTL_SET_SEI_AVE_PARAMS                 */
697*495ae853SAndroid Build Coastguard Worker     IVE_CONTROL_API_COMMAND_TYPE_T              e_sub_cmd;
698*495ae853SAndroid Build Coastguard Worker 
699*495ae853SAndroid Build Coastguard Worker     /** ambient viewing environment info present flag                     */
700*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_sei_ave_params_present_flag;
701*495ae853SAndroid Build Coastguard Worker 
702*495ae853SAndroid Build Coastguard Worker     /** specifies the environmental illluminance of the ambient viewing
703*495ae853SAndroid Build Coastguard Worker      * environment                                                        */
704*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_ambient_illuminance;
705*495ae853SAndroid Build Coastguard Worker 
706*495ae853SAndroid Build Coastguard Worker     /** specify the normalized x chromaticity coordinates of the
707*495ae853SAndroid Build Coastguard Worker      * environmental ambient light in the nominal viewing environment     */
708*495ae853SAndroid Build Coastguard Worker     UWORD16                                     u2_ambient_light_x;
709*495ae853SAndroid Build Coastguard Worker 
710*495ae853SAndroid Build Coastguard Worker     /** specify the normalized y chromaticity coordinates of the
711*495ae853SAndroid Build Coastguard Worker      * environmental ambient light in the nominal viewing environment     */
712*495ae853SAndroid Build Coastguard Worker     UWORD16                                     u2_ambient_light_y;
713*495ae853SAndroid Build Coastguard Worker 
714*495ae853SAndroid Build Coastguard Worker     /** Lower 32bits of time stamp corresponding to input buffer,
715*495ae853SAndroid Build Coastguard Worker      * from which this command takes effect                               */
716*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_timestamp_low;
717*495ae853SAndroid Build Coastguard Worker 
718*495ae853SAndroid Build Coastguard Worker     /** Upper 32bits of time stamp corresponding to input buffer,
719*495ae853SAndroid Build Coastguard Worker      * from which this command takes effect                               */
720*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_timestamp_high;
721*495ae853SAndroid Build Coastguard Worker 
722*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_sei_ave_params_ip_t;
723*495ae853SAndroid Build Coastguard Worker 
724*495ae853SAndroid Build Coastguard Worker typedef struct
725*495ae853SAndroid Build Coastguard Worker {
726*495ae853SAndroid Build Coastguard Worker     /** size of the structure                                             */
727*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_size;
728*495ae853SAndroid Build Coastguard Worker 
729*495ae853SAndroid Build Coastguard Worker     /** Return error code                                                 */
730*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_error_code;
731*495ae853SAndroid Build Coastguard Worker 
732*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_sei_ave_params_op_t;
733*495ae853SAndroid Build Coastguard Worker 
734*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
735*495ae853SAndroid Build Coastguard Worker /*    Video control  Set SEI CCV params                                      */
736*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
737*495ae853SAndroid Build Coastguard Worker typedef struct
738*495ae853SAndroid Build Coastguard Worker {
739*495ae853SAndroid Build Coastguard Worker     /** size of the structure                                             */
740*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_size;
741*495ae853SAndroid Build Coastguard Worker 
742*495ae853SAndroid Build Coastguard Worker     /** Command type : IVE_CMD_VIDEO_CTL                                  */
743*495ae853SAndroid Build Coastguard Worker     IVE_API_COMMAND_TYPE_T                      e_cmd;
744*495ae853SAndroid Build Coastguard Worker 
745*495ae853SAndroid Build Coastguard Worker     /** Sub command type : IVE_CMD_CTL_SET_SEI_CCV_PARAMS                 */
746*495ae853SAndroid Build Coastguard Worker     IVE_CONTROL_API_COMMAND_TYPE_T              e_sub_cmd;
747*495ae853SAndroid Build Coastguard Worker 
748*495ae853SAndroid Build Coastguard Worker     /** content color volume info present flag                            */
749*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_sei_ccv_params_present_flag;
750*495ae853SAndroid Build Coastguard Worker 
751*495ae853SAndroid Build Coastguard Worker     /** Flag used to control persistence of CCV SEI messages              */
752*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_ccv_cancel_flag;
753*495ae853SAndroid Build Coastguard Worker 
754*495ae853SAndroid Build Coastguard Worker     /** specifies the persistence of the CCV SEI message for the
755*495ae853SAndroid Build Coastguard Worker      * current layer                                                      */
756*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_ccv_persistence_flag;
757*495ae853SAndroid Build Coastguard Worker 
758*495ae853SAndroid Build Coastguard Worker     /** specifies the presence of syntax elements ccv_primaries_x
759*495ae853SAndroid Build Coastguard Worker      * and ccv_primaries_y                                                */
760*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_ccv_primaries_present_flag;
761*495ae853SAndroid Build Coastguard Worker 
762*495ae853SAndroid Build Coastguard Worker     /** specifies that the syntax element ccv_min_luminance_value
763*495ae853SAndroid Build Coastguard Worker      * is present                                                         */
764*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_ccv_min_luminance_value_present_flag;
765*495ae853SAndroid Build Coastguard Worker 
766*495ae853SAndroid Build Coastguard Worker     /** specifies that the syntax element ccv_max_luminance_value
767*495ae853SAndroid Build Coastguard Worker      *  is present                                                        */
768*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_ccv_max_luminance_value_present_flag;
769*495ae853SAndroid Build Coastguard Worker 
770*495ae853SAndroid Build Coastguard Worker     /** specifies that the syntax element ccv_avg_luminance_value
771*495ae853SAndroid Build Coastguard Worker      *  is present                                                        */
772*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_ccv_avg_luminance_value_present_flag;
773*495ae853SAndroid Build Coastguard Worker 
774*495ae853SAndroid Build Coastguard Worker     /** shall be equal to 0 in bitstreams conforming to this version.
775*495ae853SAndroid Build Coastguard Worker      * Other values for reserved_zero_2bits are reserved for future use   */
776*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_ccv_reserved_zero_2bits;
777*495ae853SAndroid Build Coastguard Worker 
778*495ae853SAndroid Build Coastguard Worker     /** specify the normalized x chromaticity coordinates of the colour
779*495ae853SAndroid Build Coastguard Worker      * primary component c of the nominal content colour volume           */
780*495ae853SAndroid Build Coastguard Worker     WORD32                                      ai4_ccv_primaries_x[3];
781*495ae853SAndroid Build Coastguard Worker 
782*495ae853SAndroid Build Coastguard Worker     /** specify the normalized y chromaticity coordinates of the colour
783*495ae853SAndroid Build Coastguard Worker      * primary component c of the nominal content colour volume           */
784*495ae853SAndroid Build Coastguard Worker     WORD32                                      ai4_ccv_primaries_y[3];
785*495ae853SAndroid Build Coastguard Worker 
786*495ae853SAndroid Build Coastguard Worker     /** specifies the normalized minimum luminance value                  */
787*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_ccv_min_luminance_value;
788*495ae853SAndroid Build Coastguard Worker 
789*495ae853SAndroid Build Coastguard Worker     /** specifies the normalized maximum luminance value                  */
790*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_ccv_max_luminance_value;
791*495ae853SAndroid Build Coastguard Worker 
792*495ae853SAndroid Build Coastguard Worker     /** specifies the normalized average luminance value                  */
793*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_ccv_avg_luminance_value;
794*495ae853SAndroid Build Coastguard Worker 
795*495ae853SAndroid Build Coastguard Worker     /** Lower 32bits of time stamp corresponding to input buffer,
796*495ae853SAndroid Build Coastguard Worker      * from which this command takes effect                               */
797*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_timestamp_low;
798*495ae853SAndroid Build Coastguard Worker 
799*495ae853SAndroid Build Coastguard Worker     /** Upper 32bits of time stamp corresponding to input buffer,
800*495ae853SAndroid Build Coastguard Worker      * from which this command takes effect                               */
801*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_timestamp_high;
802*495ae853SAndroid Build Coastguard Worker 
803*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_sei_ccv_params_ip_t;
804*495ae853SAndroid Build Coastguard Worker 
805*495ae853SAndroid Build Coastguard Worker typedef struct
806*495ae853SAndroid Build Coastguard Worker {
807*495ae853SAndroid Build Coastguard Worker     /** size of the structure                                             */
808*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_size;
809*495ae853SAndroid Build Coastguard Worker 
810*495ae853SAndroid Build Coastguard Worker     /** Return error code                                                 */
811*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_error_code;
812*495ae853SAndroid Build Coastguard Worker 
813*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_sei_ccv_params_op_t;
814*495ae853SAndroid Build Coastguard Worker 
815*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
816*495ae853SAndroid Build Coastguard Worker /*    Video control  Set SEI SII params                                      */
817*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
818*495ae853SAndroid Build Coastguard Worker 
819*495ae853SAndroid Build Coastguard Worker typedef struct
820*495ae853SAndroid Build Coastguard Worker {
821*495ae853SAndroid Build Coastguard Worker     /** size of the structure                                             */
822*495ae853SAndroid Build Coastguard Worker     UWORD32 u4_size;
823*495ae853SAndroid Build Coastguard Worker 
824*495ae853SAndroid Build Coastguard Worker     /** Command type : IVE_CMD_VIDEO_CTL                                  */
825*495ae853SAndroid Build Coastguard Worker     IVE_API_COMMAND_TYPE_T e_cmd;
826*495ae853SAndroid Build Coastguard Worker 
827*495ae853SAndroid Build Coastguard Worker     /** Sub command type : IVE_CMD_CTL_SET_SEI_SII_PARAMS                 */
828*495ae853SAndroid Build Coastguard Worker     IVE_CONTROL_API_COMMAND_TYPE_T e_sub_cmd;
829*495ae853SAndroid Build Coastguard Worker 
830*495ae853SAndroid Build Coastguard Worker     /**
831*495ae853SAndroid Build Coastguard Worker      * specifies if the sei sii is enabled                                */
832*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_shutter_interval_info_present_flag;
833*495ae853SAndroid Build Coastguard Worker 
834*495ae853SAndroid Build Coastguard Worker     /**
835*495ae853SAndroid Build Coastguard Worker      * specifies the shutter interval temporal sub-layer index
836*495ae853SAndroid Build Coastguard Worker      * of the current picture                                             */
837*495ae853SAndroid Build Coastguard Worker     UWORD32 u4_sii_sub_layer_idx;
838*495ae853SAndroid Build Coastguard Worker 
839*495ae853SAndroid Build Coastguard Worker     /**
840*495ae853SAndroid Build Coastguard Worker      * specify the number of time units that pass in one second           */
841*495ae853SAndroid Build Coastguard Worker     UWORD32 u4_sii_time_scale;
842*495ae853SAndroid Build Coastguard Worker 
843*495ae853SAndroid Build Coastguard Worker     /**
844*495ae853SAndroid Build Coastguard Worker      * specifies that the indicated shutter interval is the same
845*495ae853SAndroid Build Coastguard Worker      * for all pictures in the coded video sequence                       */
846*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_fixed_shutter_interval_within_cvs_flag;
847*495ae853SAndroid Build Coastguard Worker 
848*495ae853SAndroid Build Coastguard Worker     /**
849*495ae853SAndroid Build Coastguard Worker      * specifies the the number of time units of a clock operating at
850*495ae853SAndroid Build Coastguard Worker      * the frequency sii_time_scale Hz that corresponds to the indicated
851*495ae853SAndroid Build Coastguard Worker      * shutter interval of each picture in the coded video sequence       */
852*495ae853SAndroid Build Coastguard Worker     UWORD32 u4_sii_num_units_in_shutter_interval;
853*495ae853SAndroid Build Coastguard Worker 
854*495ae853SAndroid Build Coastguard Worker     /**
855*495ae853SAndroid Build Coastguard Worker      * sii_max_sub_layers_minus1 plus 1 specifies the maximum number of
856*495ae853SAndroid Build Coastguard Worker      * shutter interval temporal sub-layers indexes that may be present
857*495ae853SAndroid Build Coastguard Worker      * in the coded video sequence                                        */
858*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_sii_max_sub_layers_minus1;
859*495ae853SAndroid Build Coastguard Worker 
860*495ae853SAndroid Build Coastguard Worker     /**
861*495ae853SAndroid Build Coastguard Worker      * specifies the number of time units of a clock operating at the
862*495ae853SAndroid Build Coastguard Worker      * frequency sii_time_scale Hz that corresponds to the shutter
863*495ae853SAndroid Build Coastguard Worker      * interval of each picture in the coded video sequence               */
864*495ae853SAndroid Build Coastguard Worker     UWORD32 au4_sub_layer_num_units_in_shutter_interval[8];
865*495ae853SAndroid Build Coastguard Worker 
866*495ae853SAndroid Build Coastguard Worker     /**
867*495ae853SAndroid Build Coastguard Worker      * Lower 32bits of time stamp corresponding to input buffer,
868*495ae853SAndroid Build Coastguard Worker      * from which this command takes effect                               */
869*495ae853SAndroid Build Coastguard Worker     UWORD32 u4_timestamp_low;
870*495ae853SAndroid Build Coastguard Worker 
871*495ae853SAndroid Build Coastguard Worker     /**
872*495ae853SAndroid Build Coastguard Worker      * Upper 32bits of time stamp corresponding to input buffer,
873*495ae853SAndroid Build Coastguard Worker      * from which this command takes effect                               */
874*495ae853SAndroid Build Coastguard Worker     UWORD32 u4_timestamp_high;
875*495ae853SAndroid Build Coastguard Worker 
876*495ae853SAndroid Build Coastguard Worker } ih264e_ctl_set_sei_sii_params_ip_t;
877*495ae853SAndroid Build Coastguard Worker 
878*495ae853SAndroid Build Coastguard Worker typedef struct
879*495ae853SAndroid Build Coastguard Worker {
880*495ae853SAndroid Build Coastguard Worker     /** size of the structure                                             */
881*495ae853SAndroid Build Coastguard Worker     UWORD32 u4_size;
882*495ae853SAndroid Build Coastguard Worker 
883*495ae853SAndroid Build Coastguard Worker     /** Return error code                                                 */
884*495ae853SAndroid Build Coastguard Worker     UWORD32 u4_error_code;
885*495ae853SAndroid Build Coastguard Worker 
886*495ae853SAndroid Build Coastguard Worker } ih264e_ctl_set_sei_sii_params_op_t;
887*495ae853SAndroid Build Coastguard Worker 
888*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
889*495ae853SAndroid Build Coastguard Worker /*   Pic info structures                                                     */
890*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
891*495ae853SAndroid Build Coastguard Worker typedef struct
892*495ae853SAndroid Build Coastguard Worker {
893*495ae853SAndroid Build Coastguard Worker     /** Qp  */
894*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_qp;
895*495ae853SAndroid Build Coastguard Worker 
896*495ae853SAndroid Build Coastguard Worker     /** Pic Type */
897*495ae853SAndroid Build Coastguard Worker     IV_PICTURE_CODING_TYPE_T                    e_frame_type;
898*495ae853SAndroid Build Coastguard Worker 
899*495ae853SAndroid Build Coastguard Worker }ih264e_pic_info1_t;
900*495ae853SAndroid Build Coastguard Worker 
901*495ae853SAndroid Build Coastguard Worker typedef struct
902*495ae853SAndroid Build Coastguard Worker {
903*495ae853SAndroid Build Coastguard Worker     /** Qp  */
904*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_qp;
905*495ae853SAndroid Build Coastguard Worker 
906*495ae853SAndroid Build Coastguard Worker     /** Pic Type */
907*495ae853SAndroid Build Coastguard Worker     IV_PICTURE_CODING_TYPE_T                    e_frame_type;
908*495ae853SAndroid Build Coastguard Worker 
909*495ae853SAndroid Build Coastguard Worker     /** Disable deblock level (0: Enable completely, 3: Disable completely */
910*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_disable_deblock_level;
911*495ae853SAndroid Build Coastguard Worker 
912*495ae853SAndroid Build Coastguard Worker }ih264e_pic_info2_t;
913*495ae853SAndroid Build Coastguard Worker 
914*495ae853SAndroid Build Coastguard Worker 
915*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
916*495ae853SAndroid Build Coastguard Worker /*   MB info structures                                                     */
917*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
918*495ae853SAndroid Build Coastguard Worker typedef struct
919*495ae853SAndroid Build Coastguard Worker {
920*495ae853SAndroid Build Coastguard Worker     /** MV X    */
921*495ae853SAndroid Build Coastguard Worker     WORD16                                  i2_mv_x;
922*495ae853SAndroid Build Coastguard Worker 
923*495ae853SAndroid Build Coastguard Worker     /** MV Y    */
924*495ae853SAndroid Build Coastguard Worker     WORD16                                  i2_mv_y;
925*495ae853SAndroid Build Coastguard Worker }ih264e_mv_t;
926*495ae853SAndroid Build Coastguard Worker 
927*495ae853SAndroid Build Coastguard Worker typedef struct
928*495ae853SAndroid Build Coastguard Worker {
929*495ae853SAndroid Build Coastguard Worker     /** Intra / Inter    */
930*495ae853SAndroid Build Coastguard Worker     WORD8                                       i1_mb_type;
931*495ae853SAndroid Build Coastguard Worker     union
932*495ae853SAndroid Build Coastguard Worker     {
933*495ae853SAndroid Build Coastguard Worker         ih264e_mv_t                                 as_mv[1];
934*495ae853SAndroid Build Coastguard Worker 
935*495ae853SAndroid Build Coastguard Worker         /** Intra mode */
936*495ae853SAndroid Build Coastguard Worker         WORD8                                       ai1_intra_mode[1];
937*495ae853SAndroid Build Coastguard Worker     };
938*495ae853SAndroid Build Coastguard Worker }ih264e_mb_info1_t;
939*495ae853SAndroid Build Coastguard Worker 
940*495ae853SAndroid Build Coastguard Worker typedef struct
941*495ae853SAndroid Build Coastguard Worker {
942*495ae853SAndroid Build Coastguard Worker     /** Intra / Inter    */
943*495ae853SAndroid Build Coastguard Worker     WORD8                                       i1_mb_type;
944*495ae853SAndroid Build Coastguard Worker 
945*495ae853SAndroid Build Coastguard Worker 
946*495ae853SAndroid Build Coastguard Worker     /** SAD     */
947*495ae853SAndroid Build Coastguard Worker     UWORD16                                     u2_sad;
948*495ae853SAndroid Build Coastguard Worker 
949*495ae853SAndroid Build Coastguard Worker     union
950*495ae853SAndroid Build Coastguard Worker     {
951*495ae853SAndroid Build Coastguard Worker         ih264e_mv_t                                 as_mv[1];
952*495ae853SAndroid Build Coastguard Worker 
953*495ae853SAndroid Build Coastguard Worker         /** Intra mode */
954*495ae853SAndroid Build Coastguard Worker         WORD8                                       ai1_intra_mode[1];
955*495ae853SAndroid Build Coastguard Worker     };
956*495ae853SAndroid Build Coastguard Worker 
957*495ae853SAndroid Build Coastguard Worker 
958*495ae853SAndroid Build Coastguard Worker }ih264e_mb_info2_t;
959*495ae853SAndroid Build Coastguard Worker 
960*495ae853SAndroid Build Coastguard Worker typedef struct
961*495ae853SAndroid Build Coastguard Worker {
962*495ae853SAndroid Build Coastguard Worker     /** Intra / Inter    */
963*495ae853SAndroid Build Coastguard Worker     WORD8                                       i1_mb_type;
964*495ae853SAndroid Build Coastguard Worker 
965*495ae853SAndroid Build Coastguard Worker     union
966*495ae853SAndroid Build Coastguard Worker     {
967*495ae853SAndroid Build Coastguard Worker         ih264e_mv_t                                 as_mv[4];
968*495ae853SAndroid Build Coastguard Worker 
969*495ae853SAndroid Build Coastguard Worker         /** Intra mode */
970*495ae853SAndroid Build Coastguard Worker         WORD8                                       ai1_intra_mode[16];
971*495ae853SAndroid Build Coastguard Worker     };
972*495ae853SAndroid Build Coastguard Worker 
973*495ae853SAndroid Build Coastguard Worker }ih264e_mb_info3_t;
974*495ae853SAndroid Build Coastguard Worker 
975*495ae853SAndroid Build Coastguard Worker typedef struct
976*495ae853SAndroid Build Coastguard Worker {
977*495ae853SAndroid Build Coastguard Worker     /** Intra / Inter    */
978*495ae853SAndroid Build Coastguard Worker     WORD8                                       i1_mb_type;
979*495ae853SAndroid Build Coastguard Worker 
980*495ae853SAndroid Build Coastguard Worker     /** Intra Mode      */
981*495ae853SAndroid Build Coastguard Worker     WORD8                                       i1_intra_mode;
982*495ae853SAndroid Build Coastguard Worker 
983*495ae853SAndroid Build Coastguard Worker     /** SAD     */
984*495ae853SAndroid Build Coastguard Worker     UWORD16                                     u2_sad;
985*495ae853SAndroid Build Coastguard Worker 
986*495ae853SAndroid Build Coastguard Worker     union
987*495ae853SAndroid Build Coastguard Worker     {
988*495ae853SAndroid Build Coastguard Worker         ih264e_mv_t                                 as_mv[16];
989*495ae853SAndroid Build Coastguard Worker 
990*495ae853SAndroid Build Coastguard Worker         /** Intra mode */
991*495ae853SAndroid Build Coastguard Worker         WORD8                                       ai1_intra_mode[16];
992*495ae853SAndroid Build Coastguard Worker     };
993*495ae853SAndroid Build Coastguard Worker 
994*495ae853SAndroid Build Coastguard Worker }ih264e_mb_info4_t;
995*495ae853SAndroid Build Coastguard Worker 
996*495ae853SAndroid Build Coastguard Worker /* Add any new structures to the following union. It is used to calculate the
997*495ae853SAndroid Build Coastguard Worker  * max size needed for allocation of memory */
998*495ae853SAndroid Build Coastguard Worker typedef struct
999*495ae853SAndroid Build Coastguard Worker {
1000*495ae853SAndroid Build Coastguard Worker     union
1001*495ae853SAndroid Build Coastguard Worker     {
1002*495ae853SAndroid Build Coastguard Worker         ih264e_mb_info1_t               s_mb_info1;
1003*495ae853SAndroid Build Coastguard Worker         ih264e_mb_info2_t               s_mb_info2;
1004*495ae853SAndroid Build Coastguard Worker         ih264e_mb_info3_t               s_mb_info3;
1005*495ae853SAndroid Build Coastguard Worker         ih264e_mb_info4_t               s_mb_info4;
1006*495ae853SAndroid Build Coastguard Worker     };
1007*495ae853SAndroid Build Coastguard Worker }ih264e_mb_info_t;
1008*495ae853SAndroid Build Coastguard Worker 
1009*495ae853SAndroid Build Coastguard Worker #ifdef __cplusplus
1010*495ae853SAndroid Build Coastguard Worker } /* closing brace for extern "C" */
1011*495ae853SAndroid Build Coastguard Worker 
1012*495ae853SAndroid Build Coastguard Worker #endif
1013*495ae853SAndroid Build Coastguard Worker #endif /* _IH264E_H_ */
1014