xref: /aosp_15_r20/external/libavc/decoder/ih264d.h (revision 495ae853bb871d1e5a258cb02c2cc13cde8ddb9a)
1*495ae853SAndroid Build Coastguard Worker /******************************************************************************
2*495ae853SAndroid Build Coastguard Worker  *
3*495ae853SAndroid Build Coastguard Worker  * Copyright (C) 2015 The Android Open Source Project
4*495ae853SAndroid Build Coastguard Worker  *
5*495ae853SAndroid Build Coastguard Worker  * Licensed under the Apache License, Version 2.0 (the "License");
6*495ae853SAndroid Build Coastguard Worker  * you may not use this file except in compliance with the License.
7*495ae853SAndroid Build Coastguard Worker  * You may obtain a copy of the License at:
8*495ae853SAndroid Build Coastguard Worker  *
9*495ae853SAndroid Build Coastguard Worker  * http://www.apache.org/licenses/LICENSE-2.0
10*495ae853SAndroid Build Coastguard Worker  *
11*495ae853SAndroid Build Coastguard Worker  * Unless required by applicable law or agreed to in writing, software
12*495ae853SAndroid Build Coastguard Worker  * distributed under the License is distributed on an "AS IS" BASIS,
13*495ae853SAndroid Build Coastguard Worker  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*495ae853SAndroid Build Coastguard Worker  * See the License for the specific language governing permissions and
15*495ae853SAndroid Build Coastguard Worker  * limitations under the License.
16*495ae853SAndroid Build Coastguard Worker  *
17*495ae853SAndroid Build Coastguard Worker  *****************************************************************************
18*495ae853SAndroid Build Coastguard Worker  * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
19*495ae853SAndroid Build Coastguard Worker */
20*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
21*495ae853SAndroid Build Coastguard Worker /*                                                                           */
22*495ae853SAndroid Build Coastguard Worker /*  File Name         : ih264d.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 H264 ASP       */
27*495ae853SAndroid Build Coastguard Worker /*                      Decoder on Cortex A8 - Neon platform                 */
28*495ae853SAndroid Build Coastguard Worker /*                                                                           */
29*495ae853SAndroid Build Coastguard Worker /*  List of Functions : ih264d_api_function                              */
30*495ae853SAndroid Build Coastguard Worker /*                                                                           */
31*495ae853SAndroid Build Coastguard Worker /*  Issues / Problems : None                                                 */
32*495ae853SAndroid Build Coastguard Worker /*                                                                           */
33*495ae853SAndroid Build Coastguard Worker /*  Revision History  :                                                      */
34*495ae853SAndroid Build Coastguard Worker /*                                                                           */
35*495ae853SAndroid Build Coastguard Worker /*         DD MM YYYY   Author(s)       Changes (Describe the changes made)  */
36*495ae853SAndroid Build Coastguard Worker /*         26 08 2010   100239(RCY)     Draft                                */
37*495ae853SAndroid Build Coastguard Worker /*                                                                           */
38*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
39*495ae853SAndroid Build Coastguard Worker 
40*495ae853SAndroid Build Coastguard Worker #ifndef _IH264D_H_
41*495ae853SAndroid Build Coastguard Worker #define _IH264D_H_
42*495ae853SAndroid Build Coastguard Worker #ifdef __cplusplus
43*495ae853SAndroid Build Coastguard Worker extern "C" {
44*495ae853SAndroid Build Coastguard Worker #endif
45*495ae853SAndroid Build Coastguard Worker 
46*495ae853SAndroid Build Coastguard Worker #include "iv.h"
47*495ae853SAndroid Build Coastguard Worker #include "ivd.h"
48*495ae853SAndroid Build Coastguard Worker 
49*495ae853SAndroid Build Coastguard Worker 
50*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
51*495ae853SAndroid Build Coastguard Worker /* Constant Macros                                                           */
52*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
53*495ae853SAndroid Build Coastguard Worker #define IVD_ERROR_MASK 0xFF
54*495ae853SAndroid Build Coastguard Worker 
55*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
56*495ae853SAndroid Build Coastguard Worker /* Function Macros                                                           */
57*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
58*495ae853SAndroid Build Coastguard Worker #define IS_IVD_CONCEALMENT_APPLIED(x)       (x & (1 << IVD_APPLIEDCONCEALMENT))
59*495ae853SAndroid Build Coastguard Worker #define IS_IVD_INSUFFICIENTDATA_ERROR(x)    (x & (1 << IVD_INSUFFICIENTDATA))
60*495ae853SAndroid Build Coastguard Worker #define IS_IVD_CORRUPTEDDATA_ERROR(x)       (x & (1 << IVD_CORRUPTEDDATA))
61*495ae853SAndroid Build Coastguard Worker #define IS_IVD_CORRUPTEDHEADER_ERROR(x)     (x & (1 << IVD_CORRUPTEDHEADER))
62*495ae853SAndroid Build Coastguard Worker #define IS_IVD_UNSUPPORTEDINPUT_ERROR(x)    (x & (1 << IVD_UNSUPPORTEDINPUT))
63*495ae853SAndroid Build Coastguard Worker #define IS_IVD_UNSUPPORTEDPARAM_ERROR(x)    (x & (1 << IVD_UNSUPPORTEDPARAM))
64*495ae853SAndroid Build Coastguard Worker #define IS_IVD_FATAL_ERROR(x)               (x & (1 << IVD_FATALERROR))
65*495ae853SAndroid Build Coastguard Worker #define IS_IVD_INVALID_BITSTREAM_ERROR(x)   (x & (1 << IVD_INVALID_BITSTREAM))
66*495ae853SAndroid Build Coastguard Worker #define IS_IVD_INCOMPLETE_BITSTREAM_ERROR(x) (x & (1 << IVD_INCOMPLETE_BITSTREAM))
67*495ae853SAndroid Build Coastguard Worker 
68*495ae853SAndroid Build Coastguard Worker 
69*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
70*495ae853SAndroid Build Coastguard Worker /* API Function Prototype                                                    */
71*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
72*495ae853SAndroid Build Coastguard Worker IV_API_CALL_STATUS_T ih264d_api_function(iv_obj_t *ps_handle, void *pv_api_ip,void *pv_api_op);
73*495ae853SAndroid Build Coastguard Worker 
74*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
75*495ae853SAndroid Build Coastguard Worker /* Enums                                                                     */
76*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
77*495ae853SAndroid Build Coastguard Worker /* Codec Error codes for H264 ASP Decoder                                   */
78*495ae853SAndroid Build Coastguard Worker 
79*495ae853SAndroid Build Coastguard Worker typedef enum {
80*495ae853SAndroid Build Coastguard Worker 
81*495ae853SAndroid Build Coastguard Worker     IH264D_VID_HDR_DEC_NUM_FRM_BUF_NOT_SUFFICIENT   = IVD_DUMMY_ELEMENT_FOR_CODEC_EXTENSIONS + 1,
82*495ae853SAndroid Build Coastguard Worker     IH264D_FRAME_INFO_OP_BUF_NULL,
83*495ae853SAndroid Build Coastguard Worker     IH264D_INSUFFICIENT_METADATA_BUFFER,
84*495ae853SAndroid Build Coastguard Worker 
85*495ae853SAndroid Build Coastguard Worker }IH264D_ERROR_CODES_T;
86*495ae853SAndroid Build Coastguard Worker 
87*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
88*495ae853SAndroid Build Coastguard Worker /* Extended Structures                                                       */
89*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
90*495ae853SAndroid Build Coastguard Worker 
91*495ae853SAndroid Build Coastguard Worker 
92*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
93*495ae853SAndroid Build Coastguard Worker /*  Delete Codec                                                             */
94*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
95*495ae853SAndroid Build Coastguard Worker 
96*495ae853SAndroid Build Coastguard Worker 
97*495ae853SAndroid Build Coastguard Worker typedef struct {
98*495ae853SAndroid Build Coastguard Worker     ivd_delete_ip_t               s_ivd_delete_ip_t;
99*495ae853SAndroid Build Coastguard Worker }ih264d_delete_ip_t;
100*495ae853SAndroid Build Coastguard Worker 
101*495ae853SAndroid Build Coastguard Worker 
102*495ae853SAndroid Build Coastguard Worker typedef struct{
103*495ae853SAndroid Build Coastguard Worker     ivd_delete_op_t               s_ivd_delete_op_t;
104*495ae853SAndroid Build Coastguard Worker }ih264d_delete_op_t;
105*495ae853SAndroid Build Coastguard Worker 
106*495ae853SAndroid Build Coastguard Worker 
107*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
108*495ae853SAndroid Build Coastguard Worker /*   Initialize decoder                                                      */
109*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
110*495ae853SAndroid Build Coastguard Worker 
111*495ae853SAndroid Build Coastguard Worker 
112*495ae853SAndroid Build Coastguard Worker typedef struct {
113*495ae853SAndroid Build Coastguard Worker     ivd_create_ip_t                         s_ivd_create_ip_t;
114*495ae853SAndroid Build Coastguard Worker 
115*495ae853SAndroid Build Coastguard Worker     /**
116*495ae853SAndroid Build Coastguard Worker      * enable_frm_info
117*495ae853SAndroid Build Coastguard Worker      */
118*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_enable_frame_info;
119*495ae853SAndroid Build Coastguard Worker 
120*495ae853SAndroid Build Coastguard Worker     /**
121*495ae853SAndroid Build Coastguard Worker      * enable_threads
122*495ae853SAndroid Build Coastguard Worker      */
123*495ae853SAndroid Build Coastguard Worker     UWORD32                                  u4_keep_threads_active;
124*495ae853SAndroid Build Coastguard Worker }ih264d_create_ip_t;
125*495ae853SAndroid Build Coastguard Worker 
126*495ae853SAndroid Build Coastguard Worker 
127*495ae853SAndroid Build Coastguard Worker typedef struct{
128*495ae853SAndroid Build Coastguard Worker     ivd_create_op_t                         s_ivd_create_op_t;
129*495ae853SAndroid Build Coastguard Worker }ih264d_create_op_t;
130*495ae853SAndroid Build Coastguard Worker 
131*495ae853SAndroid Build Coastguard Worker 
132*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
133*495ae853SAndroid Build Coastguard Worker /*   Video Decode                                                            */
134*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
135*495ae853SAndroid Build Coastguard Worker 
136*495ae853SAndroid Build Coastguard Worker 
137*495ae853SAndroid Build Coastguard Worker typedef struct {
138*495ae853SAndroid Build Coastguard Worker     ivd_video_decode_ip_t                   s_ivd_video_decode_ip_t;
139*495ae853SAndroid Build Coastguard Worker 
140*495ae853SAndroid Build Coastguard Worker     /**
141*495ae853SAndroid Build Coastguard Worker      * 8x8 block QP map size
142*495ae853SAndroid Build Coastguard Worker      */
143*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_8x8_blk_qp_map_size;
144*495ae853SAndroid Build Coastguard Worker 
145*495ae853SAndroid Build Coastguard Worker     /**
146*495ae853SAndroid Build Coastguard Worker      * 8x8 block QP map
147*495ae853SAndroid Build Coastguard Worker      */
148*495ae853SAndroid Build Coastguard Worker     UWORD8                                  *pu1_8x8_blk_qp_map;
149*495ae853SAndroid Build Coastguard Worker 
150*495ae853SAndroid Build Coastguard Worker     /**
151*495ae853SAndroid Build Coastguard Worker      * 8x8 block type map size
152*495ae853SAndroid Build Coastguard Worker      */
153*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_8x8_blk_type_map_size;
154*495ae853SAndroid Build Coastguard Worker 
155*495ae853SAndroid Build Coastguard Worker     /**
156*495ae853SAndroid Build Coastguard Worker      * 8x8 block type map
157*495ae853SAndroid Build Coastguard Worker      */
158*495ae853SAndroid Build Coastguard Worker     UWORD8                                  *pu1_8x8_blk_type_map;
159*495ae853SAndroid Build Coastguard Worker }ih264d_video_decode_ip_t;
160*495ae853SAndroid Build Coastguard Worker 
161*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
162*495ae853SAndroid Build Coastguard Worker /* QP and block type maps are defined for each 8x8 MB sub-block.             */
163*495ae853SAndroid Build Coastguard Worker /* QP can range from <0, 51> and block type can be INTER/INTRA/SKIP.         */
164*495ae853SAndroid Build Coastguard Worker /*                                                                           */
165*495ae853SAndroid Build Coastguard Worker /* Let’s say, a frame has a total of ‘m’ MBs (each 16x16). Since the QP      */
166*495ae853SAndroid Build Coastguard Worker /* and block type are defined for each 8x8 block, hence each MB has          */
167*495ae853SAndroid Build Coastguard Worker /* 4 entries giving m x 4 total entires for QP and block type map each.      */
168*495ae853SAndroid Build Coastguard Worker /*                                                                           */
169*495ae853SAndroid Build Coastguard Worker /* For example, for a frame of size 60x60 shown in the figure down, both     */
170*495ae853SAndroid Build Coastguard Worker /* maps (QP and MB type) have the same layout.                               */
171*495ae853SAndroid Build Coastguard Worker /* Each block represents an 8x8 sub-block. Both width and height are aligned */
172*495ae853SAndroid Build Coastguard Worker /* to next largest multiple of 8, 64 in this case.                           */
173*495ae853SAndroid Build Coastguard Worker /*                                                                           */
174*495ae853SAndroid Build Coastguard Worker /*     0     8     16    24    32    40    48    56   64                     */
175*495ae853SAndroid Build Coastguard Worker /*  0   ------------------------------------------------                     */
176*495ae853SAndroid Build Coastguard Worker /*     | 0th | 1st | 2nd | 3rd | 4th | 5th | 6th | 7th |                     */
177*495ae853SAndroid Build Coastguard Worker /*  8   ------------------------------------------------                     */
178*495ae853SAndroid Build Coastguard Worker /*     | 8th | 9th | 10th | -  |  -  | -   | -   |  -  |                     */
179*495ae853SAndroid Build Coastguard Worker /* 16   ------------------------------------------------                     */
180*495ae853SAndroid Build Coastguard Worker /*     |  -  |  -  |  -   | -  |  -  |  -  |  -  |  -  |                     */
181*495ae853SAndroid Build Coastguard Worker /* 24   ------------------------------------------------                     */
182*495ae853SAndroid Build Coastguard Worker /*     |  -  |  -  |  -   | -  |  -  |  -  |  -  |  -  |                     */
183*495ae853SAndroid Build Coastguard Worker /* 32   ------------------------------------------------                     */
184*495ae853SAndroid Build Coastguard Worker /*     |  -  |  -  |  -   | -  |  -  |  -  |  -  |  -  |                     */
185*495ae853SAndroid Build Coastguard Worker /* 40   ------------------------------------------------                     */
186*495ae853SAndroid Build Coastguard Worker /*     |  -  |  -  |  -   | -  |  -  |  -  |  -  |  -  |                     */
187*495ae853SAndroid Build Coastguard Worker /* 48   ------------------------------------------------                     */
188*495ae853SAndroid Build Coastguard Worker /*     |  -  |  -  |  -   | -  |  -  |  -  |  -  |  -  |                     */
189*495ae853SAndroid Build Coastguard Worker /* 56   ------------------------------------------------                     */
190*495ae853SAndroid Build Coastguard Worker /*     |  -  |  -  |  -   | -  |  -  |  -  |  -  |  -  |                     */
191*495ae853SAndroid Build Coastguard Worker /* 64   ------------------------------------------------                     */
192*495ae853SAndroid Build Coastguard Worker /*                                                                           */
193*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
194*495ae853SAndroid Build Coastguard Worker 
195*495ae853SAndroid Build Coastguard Worker typedef struct{
196*495ae853SAndroid Build Coastguard Worker     ivd_video_decode_op_t                   s_ivd_video_decode_op_t;
197*495ae853SAndroid Build Coastguard Worker 
198*495ae853SAndroid Build Coastguard Worker     /**
199*495ae853SAndroid Build Coastguard Worker      * 8x8 block QP map size
200*495ae853SAndroid Build Coastguard Worker      */
201*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_8x8_blk_qp_map_size;
202*495ae853SAndroid Build Coastguard Worker 
203*495ae853SAndroid Build Coastguard Worker     /**
204*495ae853SAndroid Build Coastguard Worker      * 8x8 block QP map
205*495ae853SAndroid Build Coastguard Worker      */
206*495ae853SAndroid Build Coastguard Worker     UWORD8                                  *pu1_8x8_blk_qp_map;
207*495ae853SAndroid Build Coastguard Worker 
208*495ae853SAndroid Build Coastguard Worker     /**
209*495ae853SAndroid Build Coastguard Worker      * 8x8 block type map size
210*495ae853SAndroid Build Coastguard Worker      */
211*495ae853SAndroid Build Coastguard Worker     UWORD32                                 u4_8x8_blk_type_map_size;
212*495ae853SAndroid Build Coastguard Worker 
213*495ae853SAndroid Build Coastguard Worker     /**
214*495ae853SAndroid Build Coastguard Worker      * 8x8 block type map
215*495ae853SAndroid Build Coastguard Worker      */
216*495ae853SAndroid Build Coastguard Worker     UWORD8                                  *pu1_8x8_blk_type_map;
217*495ae853SAndroid Build Coastguard Worker }ih264d_video_decode_op_t;
218*495ae853SAndroid Build Coastguard Worker 
219*495ae853SAndroid Build Coastguard Worker 
220*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
221*495ae853SAndroid Build Coastguard Worker /*   Get Display Frame                                                       */
222*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
223*495ae853SAndroid Build Coastguard Worker 
224*495ae853SAndroid Build Coastguard Worker 
225*495ae853SAndroid Build Coastguard Worker typedef struct
226*495ae853SAndroid Build Coastguard Worker {
227*495ae853SAndroid Build Coastguard Worker     ivd_get_display_frame_ip_t              s_ivd_get_display_frame_ip_t;
228*495ae853SAndroid Build Coastguard Worker }ih264d_get_display_frame_ip_t;
229*495ae853SAndroid Build Coastguard Worker 
230*495ae853SAndroid Build Coastguard Worker 
231*495ae853SAndroid Build Coastguard Worker typedef struct
232*495ae853SAndroid Build Coastguard Worker {
233*495ae853SAndroid Build Coastguard Worker     ivd_get_display_frame_op_t              s_ivd_get_display_frame_op_t;
234*495ae853SAndroid Build Coastguard Worker }ih264d_get_display_frame_op_t;
235*495ae853SAndroid Build Coastguard Worker 
236*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
237*495ae853SAndroid Build Coastguard Worker /*   Set Display Frame                                                       */
238*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
239*495ae853SAndroid Build Coastguard Worker 
240*495ae853SAndroid Build Coastguard Worker 
241*495ae853SAndroid Build Coastguard Worker typedef struct
242*495ae853SAndroid Build Coastguard Worker {
243*495ae853SAndroid Build Coastguard Worker     ivd_set_display_frame_ip_t              s_ivd_set_display_frame_ip_t;
244*495ae853SAndroid Build Coastguard Worker }ih264d_set_display_frame_ip_t;
245*495ae853SAndroid Build Coastguard Worker 
246*495ae853SAndroid Build Coastguard Worker 
247*495ae853SAndroid Build Coastguard Worker typedef struct
248*495ae853SAndroid Build Coastguard Worker {
249*495ae853SAndroid Build Coastguard Worker     ivd_set_display_frame_op_t              s_ivd_set_display_frame_op_t;
250*495ae853SAndroid Build Coastguard Worker }ih264d_set_display_frame_op_t;
251*495ae853SAndroid Build Coastguard Worker 
252*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
253*495ae853SAndroid Build Coastguard Worker /*   Release Display Buffers                                                 */
254*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
255*495ae853SAndroid Build Coastguard Worker 
256*495ae853SAndroid Build Coastguard Worker 
257*495ae853SAndroid Build Coastguard Worker typedef struct
258*495ae853SAndroid Build Coastguard Worker {
259*495ae853SAndroid Build Coastguard Worker     ivd_rel_display_frame_ip_t                  s_ivd_rel_display_frame_ip_t;
260*495ae853SAndroid Build Coastguard Worker }ih264d_rel_display_frame_ip_t;
261*495ae853SAndroid Build Coastguard Worker 
262*495ae853SAndroid Build Coastguard Worker 
263*495ae853SAndroid Build Coastguard Worker typedef struct
264*495ae853SAndroid Build Coastguard Worker {
265*495ae853SAndroid Build Coastguard Worker     ivd_rel_display_frame_op_t                  s_ivd_rel_display_frame_op_t;
266*495ae853SAndroid Build Coastguard Worker }ih264d_rel_display_frame_op_t;
267*495ae853SAndroid Build Coastguard Worker 
268*495ae853SAndroid Build Coastguard Worker typedef enum {
269*495ae853SAndroid Build Coastguard Worker     /** Set number of cores/threads to be used */
270*495ae853SAndroid Build Coastguard Worker     IH264D_CMD_CTL_SET_NUM_CORES         = IVD_CMD_CTL_CODEC_SUBCMD_START,
271*495ae853SAndroid Build Coastguard Worker 
272*495ae853SAndroid Build Coastguard Worker     /** Set processor details */
273*495ae853SAndroid Build Coastguard Worker     IH264D_CMD_CTL_SET_PROCESSOR         = IVD_CMD_CTL_CODEC_SUBCMD_START + 0x001,
274*495ae853SAndroid Build Coastguard Worker 
275*495ae853SAndroid Build Coastguard Worker     /** Get display buffer dimensions */
276*495ae853SAndroid Build Coastguard Worker     IH264D_CMD_CTL_GET_BUFFER_DIMENSIONS = IVD_CMD_CTL_CODEC_SUBCMD_START + 0x100,
277*495ae853SAndroid Build Coastguard Worker 
278*495ae853SAndroid Build Coastguard Worker     /** Get VUI parameters */
279*495ae853SAndroid Build Coastguard Worker     IH264D_CMD_CTL_GET_VUI_PARAMS        = IVD_CMD_CTL_CODEC_SUBCMD_START + 0x101,
280*495ae853SAndroid Build Coastguard Worker 
281*495ae853SAndroid Build Coastguard Worker     /** Enable/disable GPU, supported on select platforms */
282*495ae853SAndroid Build Coastguard Worker     IH264D_CMD_CTL_GPU_ENABLE_DISABLE    = IVD_CMD_CTL_CODEC_SUBCMD_START + 0x200,
283*495ae853SAndroid Build Coastguard Worker 
284*495ae853SAndroid Build Coastguard Worker     /** Set degrade level */
285*495ae853SAndroid Build Coastguard Worker     IH264D_CMD_CTL_DEGRADE               = IVD_CMD_CTL_CODEC_SUBCMD_START + 0x300,
286*495ae853SAndroid Build Coastguard Worker 
287*495ae853SAndroid Build Coastguard Worker     /** Get SEI MDCV parameters */
288*495ae853SAndroid Build Coastguard Worker     IH264D_CMD_CTL_GET_SEI_MDCV_PARAMS   = IVD_CMD_CTL_CODEC_SUBCMD_START + 0x301,
289*495ae853SAndroid Build Coastguard Worker 
290*495ae853SAndroid Build Coastguard Worker     /** Get SEI CLL parameters */
291*495ae853SAndroid Build Coastguard Worker     IH264D_CMD_CTL_GET_SEI_CLL_PARAMS    = IVD_CMD_CTL_CODEC_SUBCMD_START + 0x302,
292*495ae853SAndroid Build Coastguard Worker 
293*495ae853SAndroid Build Coastguard Worker     /** Get SEI AVE parameters */
294*495ae853SAndroid Build Coastguard Worker     IH264D_CMD_CTL_GET_SEI_AVE_PARAMS    = IVD_CMD_CTL_CODEC_SUBCMD_START + 0x303,
295*495ae853SAndroid Build Coastguard Worker 
296*495ae853SAndroid Build Coastguard Worker     /** Get SEI CCV parameters */
297*495ae853SAndroid Build Coastguard Worker     IH264D_CMD_CTL_GET_SEI_CCV_PARAMS    = IVD_CMD_CTL_CODEC_SUBCMD_START + 0x304,
298*495ae853SAndroid Build Coastguard Worker 
299*495ae853SAndroid Build Coastguard Worker     /** Get SEI SII parameters */
300*495ae853SAndroid Build Coastguard Worker     IH264D_CMD_CTL_GET_SEI_SII_PARAMS = IVD_CMD_CTL_CODEC_SUBCMD_START + 0x305,
301*495ae853SAndroid Build Coastguard Worker 
302*495ae853SAndroid Build Coastguard Worker     /** Get SEI FGC parameters */
303*495ae853SAndroid Build Coastguard Worker     IH264D_CMD_CTL_GET_SEI_FGC_PARAMS = IVD_CMD_CTL_CODEC_SUBCMD_START + 0x306
304*495ae853SAndroid Build Coastguard Worker 
305*495ae853SAndroid Build Coastguard Worker }IH264D_CMD_CTL_SUB_CMDS;
306*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
307*495ae853SAndroid Build Coastguard Worker /*   Video control  Flush                                                    */
308*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
309*495ae853SAndroid Build Coastguard Worker 
310*495ae853SAndroid Build Coastguard Worker 
311*495ae853SAndroid Build Coastguard Worker typedef struct{
312*495ae853SAndroid Build Coastguard Worker     ivd_ctl_flush_ip_t                      s_ivd_ctl_flush_ip_t;
313*495ae853SAndroid Build Coastguard Worker }ih264d_ctl_flush_ip_t;
314*495ae853SAndroid Build Coastguard Worker 
315*495ae853SAndroid Build Coastguard Worker 
316*495ae853SAndroid Build Coastguard Worker typedef struct{
317*495ae853SAndroid Build Coastguard Worker     ivd_ctl_flush_op_t                      s_ivd_ctl_flush_op_t;
318*495ae853SAndroid Build Coastguard Worker }ih264d_ctl_flush_op_t;
319*495ae853SAndroid Build Coastguard Worker 
320*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
321*495ae853SAndroid Build Coastguard Worker /*   Video control reset                                                     */
322*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
323*495ae853SAndroid Build Coastguard Worker 
324*495ae853SAndroid Build Coastguard Worker 
325*495ae853SAndroid Build Coastguard Worker typedef struct{
326*495ae853SAndroid Build Coastguard Worker     ivd_ctl_reset_ip_t                      s_ivd_ctl_reset_ip_t;
327*495ae853SAndroid Build Coastguard Worker }ih264d_ctl_reset_ip_t;
328*495ae853SAndroid Build Coastguard Worker 
329*495ae853SAndroid Build Coastguard Worker 
330*495ae853SAndroid Build Coastguard Worker typedef struct{
331*495ae853SAndroid Build Coastguard Worker     ivd_ctl_reset_op_t                      s_ivd_ctl_reset_op_t;
332*495ae853SAndroid Build Coastguard Worker }ih264d_ctl_reset_op_t;
333*495ae853SAndroid Build Coastguard Worker 
334*495ae853SAndroid Build Coastguard Worker 
335*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
336*495ae853SAndroid Build Coastguard Worker /*   Video control  Set Params                                               */
337*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
338*495ae853SAndroid Build Coastguard Worker 
339*495ae853SAndroid Build Coastguard Worker 
340*495ae853SAndroid Build Coastguard Worker typedef struct {
341*495ae853SAndroid Build Coastguard Worker     ivd_ctl_set_config_ip_t             s_ivd_ctl_set_config_ip_t;
342*495ae853SAndroid Build Coastguard Worker }ih264d_ctl_set_config_ip_t;
343*495ae853SAndroid Build Coastguard Worker 
344*495ae853SAndroid Build Coastguard Worker 
345*495ae853SAndroid Build Coastguard Worker typedef struct{
346*495ae853SAndroid Build Coastguard Worker     ivd_ctl_set_config_op_t             s_ivd_ctl_set_config_op_t;
347*495ae853SAndroid Build Coastguard Worker }ih264d_ctl_set_config_op_t;
348*495ae853SAndroid Build Coastguard Worker 
349*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
350*495ae853SAndroid Build Coastguard Worker /*   Video control:Get Buf Info                                              */
351*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
352*495ae853SAndroid Build Coastguard Worker 
353*495ae853SAndroid Build Coastguard Worker 
354*495ae853SAndroid Build Coastguard Worker typedef struct{
355*495ae853SAndroid Build Coastguard Worker     ivd_ctl_getbufinfo_ip_t             s_ivd_ctl_getbufinfo_ip_t;
356*495ae853SAndroid Build Coastguard Worker }ih264d_ctl_getbufinfo_ip_t;
357*495ae853SAndroid Build Coastguard Worker 
358*495ae853SAndroid Build Coastguard Worker 
359*495ae853SAndroid Build Coastguard Worker 
360*495ae853SAndroid Build Coastguard Worker typedef struct{
361*495ae853SAndroid Build Coastguard Worker     ivd_ctl_getbufinfo_op_t             s_ivd_ctl_getbufinfo_op_t;
362*495ae853SAndroid Build Coastguard Worker }ih264d_ctl_getbufinfo_op_t;
363*495ae853SAndroid Build Coastguard Worker 
364*495ae853SAndroid Build Coastguard Worker 
365*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
366*495ae853SAndroid Build Coastguard Worker /*   Video control:Getstatus Call                                            */
367*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
368*495ae853SAndroid Build Coastguard Worker 
369*495ae853SAndroid Build Coastguard Worker 
370*495ae853SAndroid Build Coastguard Worker typedef struct{
371*495ae853SAndroid Build Coastguard Worker     ivd_ctl_getstatus_ip_t                  s_ivd_ctl_getstatus_ip_t;
372*495ae853SAndroid Build Coastguard Worker }ih264d_ctl_getstatus_ip_t;
373*495ae853SAndroid Build Coastguard Worker 
374*495ae853SAndroid Build Coastguard Worker 
375*495ae853SAndroid Build Coastguard Worker 
376*495ae853SAndroid Build Coastguard Worker typedef struct{
377*495ae853SAndroid Build Coastguard Worker     ivd_ctl_getstatus_op_t                  s_ivd_ctl_getstatus_op_t;
378*495ae853SAndroid Build Coastguard Worker }ih264d_ctl_getstatus_op_t;
379*495ae853SAndroid Build Coastguard Worker 
380*495ae853SAndroid Build Coastguard Worker 
381*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
382*495ae853SAndroid Build Coastguard Worker /*   Video control:Get Version Info                                          */
383*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
384*495ae853SAndroid Build Coastguard Worker 
385*495ae853SAndroid Build Coastguard Worker 
386*495ae853SAndroid Build Coastguard Worker typedef struct{
387*495ae853SAndroid Build Coastguard Worker     ivd_ctl_getversioninfo_ip_t         s_ivd_ctl_getversioninfo_ip_t;
388*495ae853SAndroid Build Coastguard Worker }ih264d_ctl_getversioninfo_ip_t;
389*495ae853SAndroid Build Coastguard Worker 
390*495ae853SAndroid Build Coastguard Worker 
391*495ae853SAndroid Build Coastguard Worker 
392*495ae853SAndroid Build Coastguard Worker typedef struct{
393*495ae853SAndroid Build Coastguard Worker     ivd_ctl_getversioninfo_op_t         s_ivd_ctl_getversioninfo_op_t;
394*495ae853SAndroid Build Coastguard Worker }ih264d_ctl_getversioninfo_op_t;
395*495ae853SAndroid Build Coastguard Worker 
396*495ae853SAndroid Build Coastguard Worker typedef struct{
397*495ae853SAndroid Build Coastguard Worker 
398*495ae853SAndroid Build Coastguard Worker     /**
399*495ae853SAndroid Build Coastguard Worker      * u4_size
400*495ae853SAndroid Build Coastguard Worker      */
401*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_size;
402*495ae853SAndroid Build Coastguard Worker 
403*495ae853SAndroid Build Coastguard Worker     /**
404*495ae853SAndroid Build Coastguard Worker      * cmd
405*495ae853SAndroid Build Coastguard Worker      */
406*495ae853SAndroid Build Coastguard Worker     IVD_API_COMMAND_TYPE_T                      e_cmd;
407*495ae853SAndroid Build Coastguard Worker 
408*495ae853SAndroid Build Coastguard Worker     /**
409*495ae853SAndroid Build Coastguard Worker      * sub_cmd
410*495ae853SAndroid Build Coastguard Worker      */
411*495ae853SAndroid Build Coastguard Worker     IVD_CONTROL_API_COMMAND_TYPE_T              e_sub_cmd;
412*495ae853SAndroid Build Coastguard Worker 
413*495ae853SAndroid Build Coastguard Worker     /**
414*495ae853SAndroid Build Coastguard Worker      * Pictures that are are degraded
415*495ae853SAndroid Build Coastguard Worker      * 0 : No degrade
416*495ae853SAndroid Build Coastguard Worker      * 1 : Only on non-reference frames
417*495ae853SAndroid Build Coastguard Worker      * 2 : Use interval specified by u4_nondegrade_interval
418*495ae853SAndroid Build Coastguard Worker      * 3 : All non-key frames
419*495ae853SAndroid Build Coastguard Worker      * 4 : All frames
420*495ae853SAndroid Build Coastguard Worker      */
421*495ae853SAndroid Build Coastguard Worker     WORD32                                     i4_degrade_pics;
422*495ae853SAndroid Build Coastguard Worker 
423*495ae853SAndroid Build Coastguard Worker     /**
424*495ae853SAndroid Build Coastguard Worker      * Interval for pictures which are completely decoded without any degradation
425*495ae853SAndroid Build Coastguard Worker      */
426*495ae853SAndroid Build Coastguard Worker     WORD32                                     i4_nondegrade_interval;
427*495ae853SAndroid Build Coastguard Worker 
428*495ae853SAndroid Build Coastguard Worker     /**
429*495ae853SAndroid Build Coastguard Worker      * bit position (lsb is zero): Type of degradation
430*495ae853SAndroid Build Coastguard Worker      * 1 : Disable deblocking
431*495ae853SAndroid Build Coastguard Worker      * 2 : Faster inter prediction filters
432*495ae853SAndroid Build Coastguard Worker      * 3 : Fastest inter prediction filters
433*495ae853SAndroid Build Coastguard Worker      */
434*495ae853SAndroid Build Coastguard Worker     WORD32                                     i4_degrade_type;
435*495ae853SAndroid Build Coastguard Worker 
436*495ae853SAndroid Build Coastguard Worker }ih264d_ctl_degrade_ip_t;
437*495ae853SAndroid Build Coastguard Worker 
438*495ae853SAndroid Build Coastguard Worker typedef struct
439*495ae853SAndroid Build Coastguard Worker {
440*495ae853SAndroid Build Coastguard Worker     /**
441*495ae853SAndroid Build Coastguard Worker      * u4_size
442*495ae853SAndroid Build Coastguard Worker      */
443*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_size;
444*495ae853SAndroid Build Coastguard Worker 
445*495ae853SAndroid Build Coastguard Worker     /**
446*495ae853SAndroid Build Coastguard Worker      * error_code
447*495ae853SAndroid Build Coastguard Worker      */
448*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_error_code;
449*495ae853SAndroid Build Coastguard Worker }ih264d_ctl_degrade_op_t;
450*495ae853SAndroid Build Coastguard Worker 
451*495ae853SAndroid Build Coastguard Worker typedef struct{
452*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_size;
453*495ae853SAndroid Build Coastguard Worker     IVD_API_COMMAND_TYPE_T                      e_cmd;
454*495ae853SAndroid Build Coastguard Worker     IVD_CONTROL_API_COMMAND_TYPE_T              e_sub_cmd;
455*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_disable_deblk_level;
456*495ae853SAndroid Build Coastguard Worker }ih264d_ctl_disable_deblock_ip_t;
457*495ae853SAndroid Build Coastguard Worker 
458*495ae853SAndroid Build Coastguard Worker typedef struct{
459*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_size;
460*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_error_code;
461*495ae853SAndroid Build Coastguard Worker }ih264d_ctl_disable_deblock_op_t;
462*495ae853SAndroid Build Coastguard Worker 
463*495ae853SAndroid Build Coastguard Worker 
464*495ae853SAndroid Build Coastguard Worker typedef struct{
465*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_size;
466*495ae853SAndroid Build Coastguard Worker     IVD_API_COMMAND_TYPE_T                      e_cmd;
467*495ae853SAndroid Build Coastguard Worker     IVD_CONTROL_API_COMMAND_TYPE_T              e_sub_cmd;
468*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_num_cores;
469*495ae853SAndroid Build Coastguard Worker }ih264d_ctl_set_num_cores_ip_t;
470*495ae853SAndroid Build Coastguard Worker 
471*495ae853SAndroid Build Coastguard Worker typedef struct{
472*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_size;
473*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_error_code;
474*495ae853SAndroid Build Coastguard Worker }ih264d_ctl_set_num_cores_op_t;
475*495ae853SAndroid Build Coastguard Worker 
476*495ae853SAndroid Build Coastguard Worker typedef struct
477*495ae853SAndroid Build Coastguard Worker {
478*495ae853SAndroid Build Coastguard Worker      /**
479*495ae853SAndroid Build Coastguard Worker       * i4_size
480*495ae853SAndroid Build Coastguard Worker       */
481*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_size;
482*495ae853SAndroid Build Coastguard Worker     /**
483*495ae853SAndroid Build Coastguard Worker      * cmd
484*495ae853SAndroid Build Coastguard Worker      */
485*495ae853SAndroid Build Coastguard Worker     IVD_API_COMMAND_TYPE_T                      e_cmd;
486*495ae853SAndroid Build Coastguard Worker     /**
487*495ae853SAndroid Build Coastguard Worker      * sub cmd
488*495ae853SAndroid Build Coastguard Worker      */
489*495ae853SAndroid Build Coastguard Worker     IVD_CONTROL_API_COMMAND_TYPE_T              e_sub_cmd;
490*495ae853SAndroid Build Coastguard Worker     /**
491*495ae853SAndroid Build Coastguard Worker      * Processor type
492*495ae853SAndroid Build Coastguard Worker      */
493*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_arch;
494*495ae853SAndroid Build Coastguard Worker     /**
495*495ae853SAndroid Build Coastguard Worker      * SOC type
496*495ae853SAndroid Build Coastguard Worker      */
497*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_soc;
498*495ae853SAndroid Build Coastguard Worker 
499*495ae853SAndroid Build Coastguard Worker     /**
500*495ae853SAndroid Build Coastguard Worker      * num_cores
501*495ae853SAndroid Build Coastguard Worker      */
502*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_num_cores;
503*495ae853SAndroid Build Coastguard Worker 
504*495ae853SAndroid Build Coastguard Worker }ih264d_ctl_set_processor_ip_t;
505*495ae853SAndroid Build Coastguard Worker 
506*495ae853SAndroid Build Coastguard Worker typedef struct
507*495ae853SAndroid Build Coastguard Worker {
508*495ae853SAndroid Build Coastguard Worker     /**
509*495ae853SAndroid Build Coastguard Worker      * i4_size
510*495ae853SAndroid Build Coastguard Worker      */
511*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_size;
512*495ae853SAndroid Build Coastguard Worker     /**
513*495ae853SAndroid Build Coastguard Worker      * error_code
514*495ae853SAndroid Build Coastguard Worker      */
515*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_error_code;
516*495ae853SAndroid Build Coastguard Worker }ih264d_ctl_set_processor_op_t;
517*495ae853SAndroid Build Coastguard Worker 
518*495ae853SAndroid Build Coastguard Worker typedef struct{
519*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_size;
520*495ae853SAndroid Build Coastguard Worker     IVD_API_COMMAND_TYPE_T                      e_cmd;
521*495ae853SAndroid Build Coastguard Worker     IVD_CONTROL_API_COMMAND_TYPE_T              e_sub_cmd;
522*495ae853SAndroid Build Coastguard Worker }ih264d_ctl_get_frame_dimensions_ip_t;
523*495ae853SAndroid Build Coastguard Worker 
524*495ae853SAndroid Build Coastguard Worker 
525*495ae853SAndroid Build Coastguard Worker typedef struct{
526*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_size;
527*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_error_code;
528*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_x_offset[3];
529*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_y_offset[3];
530*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_disp_wd[3];
531*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_disp_ht[3];
532*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_buffer_wd[3];
533*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_buffer_ht[3];
534*495ae853SAndroid Build Coastguard Worker }ih264d_ctl_get_frame_dimensions_op_t;
535*495ae853SAndroid Build Coastguard Worker 
536*495ae853SAndroid Build Coastguard Worker typedef struct
537*495ae853SAndroid Build Coastguard Worker {
538*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_size;
539*495ae853SAndroid Build Coastguard Worker     IVD_API_COMMAND_TYPE_T                      e_cmd;
540*495ae853SAndroid Build Coastguard Worker     IVD_CONTROL_API_COMMAND_TYPE_T              e_sub_cmd;
541*495ae853SAndroid Build Coastguard Worker }ih264d_ctl_get_vui_params_ip_t;
542*495ae853SAndroid Build Coastguard Worker 
543*495ae853SAndroid Build Coastguard Worker typedef struct
544*495ae853SAndroid Build Coastguard Worker {
545*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_size;
546*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_error_code;
547*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_aspect_ratio_idc;
548*495ae853SAndroid Build Coastguard Worker     UWORD16                                     u2_sar_width;
549*495ae853SAndroid Build Coastguard Worker     UWORD16                                     u2_sar_height;
550*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_overscan_appropriate_flag;
551*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_video_format;
552*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_video_full_range_flag;
553*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_colour_primaries;
554*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_tfr_chars;
555*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_matrix_coeffs;
556*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_cr_top_field;
557*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_cr_bottom_field;
558*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_num_units_in_tick;
559*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_time_scale;
560*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_fixed_frame_rate_flag;
561*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_nal_hrd_params_present;
562*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_vcl_hrd_params_present;
563*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_low_delay_hrd_flag;
564*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_pic_struct_present_flag;
565*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_bitstream_restriction_flag;
566*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_mv_over_pic_boundaries_flag;
567*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_max_bytes_per_pic_denom;
568*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_max_bits_per_mb_denom;
569*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_log2_max_mv_length_horz;
570*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_log2_max_mv_length_vert;
571*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_num_reorder_frames;
572*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_max_dec_frame_buffering;
573*495ae853SAndroid Build Coastguard Worker }ih264d_ctl_get_vui_params_op_t;
574*495ae853SAndroid Build Coastguard Worker 
575*495ae853SAndroid Build Coastguard Worker 
576*495ae853SAndroid Build Coastguard Worker typedef struct
577*495ae853SAndroid Build Coastguard Worker {
578*495ae853SAndroid Build Coastguard Worker     /**
579*495ae853SAndroid Build Coastguard Worker      * u4_size
580*495ae853SAndroid Build Coastguard Worker      */
581*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_size;
582*495ae853SAndroid Build Coastguard Worker 
583*495ae853SAndroid Build Coastguard Worker     /**
584*495ae853SAndroid Build Coastguard Worker      * cmd
585*495ae853SAndroid Build Coastguard Worker      */
586*495ae853SAndroid Build Coastguard Worker     IVD_API_COMMAND_TYPE_T                      e_cmd;
587*495ae853SAndroid Build Coastguard Worker 
588*495ae853SAndroid Build Coastguard Worker     /**
589*495ae853SAndroid Build Coastguard Worker      * sub_cmd
590*495ae853SAndroid Build Coastguard Worker      */
591*495ae853SAndroid Build Coastguard Worker     IVD_CONTROL_API_COMMAND_TYPE_T              e_sub_cmd;
592*495ae853SAndroid Build Coastguard Worker }ih264d_ctl_get_sei_mdcv_params_ip_t;
593*495ae853SAndroid Build Coastguard Worker 
594*495ae853SAndroid Build Coastguard Worker typedef struct
595*495ae853SAndroid Build Coastguard Worker {
596*495ae853SAndroid Build Coastguard Worker     /**
597*495ae853SAndroid Build Coastguard Worker      * u4_size
598*495ae853SAndroid Build Coastguard Worker      */
599*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_size;
600*495ae853SAndroid Build Coastguard Worker 
601*495ae853SAndroid Build Coastguard Worker     /**
602*495ae853SAndroid Build Coastguard Worker      * error_code
603*495ae853SAndroid Build Coastguard Worker      */
604*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_error_code;
605*495ae853SAndroid Build Coastguard Worker 
606*495ae853SAndroid Build Coastguard Worker     /**
607*495ae853SAndroid Build Coastguard Worker      * Array to store the display_primaries_x values
608*495ae853SAndroid Build Coastguard Worker      */
609*495ae853SAndroid Build Coastguard Worker     UWORD16                                     au2_display_primaries_x[NUM_SEI_MDCV_PRIMARIES];
610*495ae853SAndroid Build Coastguard Worker 
611*495ae853SAndroid Build Coastguard Worker     /**
612*495ae853SAndroid Build Coastguard Worker      * Array to store the display_primaries_y values
613*495ae853SAndroid Build Coastguard Worker      */
614*495ae853SAndroid Build Coastguard Worker     UWORD16                                     au2_display_primaries_y[NUM_SEI_MDCV_PRIMARIES];
615*495ae853SAndroid Build Coastguard Worker 
616*495ae853SAndroid Build Coastguard Worker     /**
617*495ae853SAndroid Build Coastguard Worker      * Variable to store the white point x value
618*495ae853SAndroid Build Coastguard Worker      */
619*495ae853SAndroid Build Coastguard Worker     UWORD16                                     u2_white_point_x;
620*495ae853SAndroid Build Coastguard Worker 
621*495ae853SAndroid Build Coastguard Worker     /**
622*495ae853SAndroid Build Coastguard Worker      * Variable to store the white point y value
623*495ae853SAndroid Build Coastguard Worker      */
624*495ae853SAndroid Build Coastguard Worker     UWORD16                                     u2_white_point_y;
625*495ae853SAndroid Build Coastguard Worker 
626*495ae853SAndroid Build Coastguard Worker     /**
627*495ae853SAndroid Build Coastguard Worker      * Variable to store the max display mastering luminance value
628*495ae853SAndroid Build Coastguard Worker      */
629*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_max_display_mastering_luminance;
630*495ae853SAndroid Build Coastguard Worker 
631*495ae853SAndroid Build Coastguard Worker     /**
632*495ae853SAndroid Build Coastguard Worker      * Variable to store the min display mastering luminance value
633*495ae853SAndroid Build Coastguard Worker      */
634*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_min_display_mastering_luminance;
635*495ae853SAndroid Build Coastguard Worker }ih264d_ctl_get_sei_mdcv_params_op_t;
636*495ae853SAndroid Build Coastguard Worker 
637*495ae853SAndroid Build Coastguard Worker typedef struct
638*495ae853SAndroid Build Coastguard Worker {
639*495ae853SAndroid Build Coastguard Worker     /**
640*495ae853SAndroid Build Coastguard Worker      * u4_size
641*495ae853SAndroid Build Coastguard Worker      */
642*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_size;
643*495ae853SAndroid Build Coastguard Worker 
644*495ae853SAndroid Build Coastguard Worker     /**
645*495ae853SAndroid Build Coastguard Worker      * cmd
646*495ae853SAndroid Build Coastguard Worker      */
647*495ae853SAndroid Build Coastguard Worker     IVD_API_COMMAND_TYPE_T                      e_cmd;
648*495ae853SAndroid Build Coastguard Worker 
649*495ae853SAndroid Build Coastguard Worker     /**
650*495ae853SAndroid Build Coastguard Worker      * sub_cmd
651*495ae853SAndroid Build Coastguard Worker      */
652*495ae853SAndroid Build Coastguard Worker     IVD_CONTROL_API_COMMAND_TYPE_T              e_sub_cmd;
653*495ae853SAndroid Build Coastguard Worker }ih264d_ctl_get_sei_cll_params_ip_t;
654*495ae853SAndroid Build Coastguard Worker 
655*495ae853SAndroid Build Coastguard Worker typedef struct
656*495ae853SAndroid Build Coastguard Worker {
657*495ae853SAndroid Build Coastguard Worker     /**
658*495ae853SAndroid Build Coastguard Worker      * u4_size
659*495ae853SAndroid Build Coastguard Worker      */
660*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_size;
661*495ae853SAndroid Build Coastguard Worker 
662*495ae853SAndroid Build Coastguard Worker     /**
663*495ae853SAndroid Build Coastguard Worker      * error_code
664*495ae853SAndroid Build Coastguard Worker      */
665*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_error_code;
666*495ae853SAndroid Build Coastguard Worker 
667*495ae853SAndroid Build Coastguard Worker     /**
668*495ae853SAndroid Build Coastguard Worker      * The maximum pixel intensity of all samples
669*495ae853SAndroid Build Coastguard Worker      */
670*495ae853SAndroid Build Coastguard Worker     UWORD16                                     u2_max_content_light_level;
671*495ae853SAndroid Build Coastguard Worker 
672*495ae853SAndroid Build Coastguard Worker     /**
673*495ae853SAndroid Build Coastguard Worker      * The average pixel intensity of all samples
674*495ae853SAndroid Build Coastguard Worker      */
675*495ae853SAndroid Build Coastguard Worker     UWORD16                                     u2_max_pic_average_light_level;
676*495ae853SAndroid Build Coastguard Worker } ih264d_ctl_get_sei_cll_params_op_t;
677*495ae853SAndroid Build Coastguard Worker 
678*495ae853SAndroid Build Coastguard Worker typedef struct
679*495ae853SAndroid Build Coastguard Worker {
680*495ae853SAndroid Build Coastguard Worker     /**
681*495ae853SAndroid Build Coastguard Worker      * u4_size
682*495ae853SAndroid Build Coastguard Worker      */
683*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_size;
684*495ae853SAndroid Build Coastguard Worker 
685*495ae853SAndroid Build Coastguard Worker     /**
686*495ae853SAndroid Build Coastguard Worker      * cmd
687*495ae853SAndroid Build Coastguard Worker      */
688*495ae853SAndroid Build Coastguard Worker     IVD_API_COMMAND_TYPE_T                      e_cmd;
689*495ae853SAndroid Build Coastguard Worker 
690*495ae853SAndroid Build Coastguard Worker     /**
691*495ae853SAndroid Build Coastguard Worker      * sub_cmd
692*495ae853SAndroid Build Coastguard Worker      */
693*495ae853SAndroid Build Coastguard Worker     IVD_CONTROL_API_COMMAND_TYPE_T              e_sub_cmd;
694*495ae853SAndroid Build Coastguard Worker }ih264d_ctl_get_sei_ave_params_ip_t;
695*495ae853SAndroid Build Coastguard Worker 
696*495ae853SAndroid Build Coastguard Worker typedef struct
697*495ae853SAndroid Build Coastguard Worker {
698*495ae853SAndroid Build Coastguard Worker     /**
699*495ae853SAndroid Build Coastguard Worker      * u4_size
700*495ae853SAndroid Build Coastguard Worker      */
701*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_size;
702*495ae853SAndroid Build Coastguard Worker 
703*495ae853SAndroid Build Coastguard Worker     /**
704*495ae853SAndroid Build Coastguard Worker      * error_code
705*495ae853SAndroid Build Coastguard Worker      */
706*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_error_code;
707*495ae853SAndroid Build Coastguard Worker 
708*495ae853SAndroid Build Coastguard Worker     /**
709*495ae853SAndroid Build Coastguard Worker      * specifies the environmental illluminance of the ambient viewing environment
710*495ae853SAndroid Build Coastguard Worker      */
711*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_ambient_illuminance;
712*495ae853SAndroid Build Coastguard Worker 
713*495ae853SAndroid Build Coastguard Worker     /*
714*495ae853SAndroid Build Coastguard Worker      * specify the normalized x chromaticity coordinates of the
715*495ae853SAndroid Build Coastguard Worker      * environmental ambient light in the nominal viewing environment
716*495ae853SAndroid Build Coastguard Worker      */
717*495ae853SAndroid Build Coastguard Worker     UWORD16                                     u2_ambient_light_x;
718*495ae853SAndroid Build Coastguard Worker 
719*495ae853SAndroid Build Coastguard Worker     /*
720*495ae853SAndroid Build Coastguard Worker      * specify the normalized y chromaticity coordinates of the
721*495ae853SAndroid Build Coastguard Worker      * environmental ambient light in the nominal viewing environment
722*495ae853SAndroid Build Coastguard Worker      */
723*495ae853SAndroid Build Coastguard Worker     UWORD16                                     u2_ambient_light_y;
724*495ae853SAndroid Build Coastguard Worker } ih264d_ctl_get_sei_ave_params_op_t;
725*495ae853SAndroid Build Coastguard Worker 
726*495ae853SAndroid Build Coastguard Worker typedef struct
727*495ae853SAndroid Build Coastguard Worker {
728*495ae853SAndroid Build Coastguard Worker     /**
729*495ae853SAndroid Build Coastguard Worker      * u4_size
730*495ae853SAndroid Build Coastguard Worker      */
731*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_size;
732*495ae853SAndroid Build Coastguard Worker 
733*495ae853SAndroid Build Coastguard Worker     /**
734*495ae853SAndroid Build Coastguard Worker      * cmd
735*495ae853SAndroid Build Coastguard Worker      */
736*495ae853SAndroid Build Coastguard Worker     IVD_API_COMMAND_TYPE_T                      e_cmd;
737*495ae853SAndroid Build Coastguard Worker 
738*495ae853SAndroid Build Coastguard Worker     /**
739*495ae853SAndroid Build Coastguard Worker      * sub_cmd
740*495ae853SAndroid Build Coastguard Worker      */
741*495ae853SAndroid Build Coastguard Worker     IVD_CONTROL_API_COMMAND_TYPE_T              e_sub_cmd;
742*495ae853SAndroid Build Coastguard Worker }ih264d_ctl_get_sei_ccv_params_ip_t;
743*495ae853SAndroid Build Coastguard Worker 
744*495ae853SAndroid Build Coastguard Worker typedef struct
745*495ae853SAndroid Build Coastguard Worker {
746*495ae853SAndroid Build Coastguard Worker     /**
747*495ae853SAndroid Build Coastguard Worker      * u4_size
748*495ae853SAndroid Build Coastguard Worker      */
749*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_size;
750*495ae853SAndroid Build Coastguard Worker 
751*495ae853SAndroid Build Coastguard Worker     /**
752*495ae853SAndroid Build Coastguard Worker      * error_code
753*495ae853SAndroid Build Coastguard Worker      */
754*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_error_code;
755*495ae853SAndroid Build Coastguard Worker 
756*495ae853SAndroid Build Coastguard Worker     /*
757*495ae853SAndroid Build Coastguard Worker      * Flag used to control persistence of CCV SEI messages
758*495ae853SAndroid Build Coastguard Worker      */
759*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_ccv_cancel_flag;
760*495ae853SAndroid Build Coastguard Worker 
761*495ae853SAndroid Build Coastguard Worker     /*
762*495ae853SAndroid Build Coastguard Worker      * specifies the persistence of the CCV SEI message for the current layer
763*495ae853SAndroid Build Coastguard Worker      */
764*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_ccv_persistence_flag;
765*495ae853SAndroid Build Coastguard Worker 
766*495ae853SAndroid Build Coastguard Worker     /*
767*495ae853SAndroid Build Coastguard Worker      * specifies the presence of syntax elements ccv_primaries_x and ccv_primaries_y
768*495ae853SAndroid Build Coastguard Worker      */
769*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_ccv_primaries_present_flag;
770*495ae853SAndroid Build Coastguard Worker 
771*495ae853SAndroid Build Coastguard Worker     /*
772*495ae853SAndroid Build Coastguard Worker      * specifies that the syntax element ccv_min_luminance_value is present
773*495ae853SAndroid Build Coastguard Worker      */
774*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_ccv_min_luminance_value_present_flag;
775*495ae853SAndroid Build Coastguard Worker 
776*495ae853SAndroid Build Coastguard Worker     /*
777*495ae853SAndroid Build Coastguard Worker      * specifies that the syntax element ccv_max_luminance_value is present
778*495ae853SAndroid Build Coastguard Worker      */
779*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_ccv_max_luminance_value_present_flag;
780*495ae853SAndroid Build Coastguard Worker 
781*495ae853SAndroid Build Coastguard Worker     /*
782*495ae853SAndroid Build Coastguard Worker      * specifies that the syntax element ccv_avg_luminance_value is present
783*495ae853SAndroid Build Coastguard Worker      */
784*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_ccv_avg_luminance_value_present_flag;
785*495ae853SAndroid Build Coastguard Worker 
786*495ae853SAndroid Build Coastguard Worker     /*
787*495ae853SAndroid Build Coastguard Worker      * shall be equal to 0 in bitstreams conforming to this version. Other values
788*495ae853SAndroid Build Coastguard Worker      * for reserved_zero_2bits are reserved for future use
789*495ae853SAndroid Build Coastguard Worker      */
790*495ae853SAndroid Build Coastguard Worker     UWORD8                                      u1_ccv_reserved_zero_2bits;
791*495ae853SAndroid Build Coastguard Worker 
792*495ae853SAndroid Build Coastguard Worker     /*
793*495ae853SAndroid Build Coastguard Worker      * specify the normalized x chromaticity coordinates of the colour
794*495ae853SAndroid Build Coastguard Worker      * primary component c of the nominal content colour volume
795*495ae853SAndroid Build Coastguard Worker      */
796*495ae853SAndroid Build Coastguard Worker     WORD32                                      ai4_ccv_primaries_x[NUM_SEI_CCV_PRIMARIES];
797*495ae853SAndroid Build Coastguard Worker 
798*495ae853SAndroid Build Coastguard Worker     /*
799*495ae853SAndroid Build Coastguard Worker      * specify the normalized y chromaticity coordinates of the colour
800*495ae853SAndroid Build Coastguard Worker      * primary component c of the nominal content colour volume
801*495ae853SAndroid Build Coastguard Worker      */
802*495ae853SAndroid Build Coastguard Worker     WORD32                                      ai4_ccv_primaries_y[NUM_SEI_CCV_PRIMARIES];
803*495ae853SAndroid Build Coastguard Worker 
804*495ae853SAndroid Build Coastguard Worker     /*
805*495ae853SAndroid Build Coastguard Worker      * specifies the normalized minimum luminance value
806*495ae853SAndroid Build Coastguard Worker      */
807*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_ccv_min_luminance_value;
808*495ae853SAndroid Build Coastguard Worker 
809*495ae853SAndroid Build Coastguard Worker     /*
810*495ae853SAndroid Build Coastguard Worker      * specifies the normalized maximum luminance value
811*495ae853SAndroid Build Coastguard Worker      */
812*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_ccv_max_luminance_value;
813*495ae853SAndroid Build Coastguard Worker 
814*495ae853SAndroid Build Coastguard Worker     /*
815*495ae853SAndroid Build Coastguard Worker      * specifies the normalized average luminance value
816*495ae853SAndroid Build Coastguard Worker      */
817*495ae853SAndroid Build Coastguard Worker     UWORD32                                     u4_ccv_avg_luminance_value;
818*495ae853SAndroid Build Coastguard Worker } ih264d_ctl_get_sei_ccv_params_op_t;
819*495ae853SAndroid Build Coastguard Worker 
820*495ae853SAndroid Build Coastguard Worker typedef struct
821*495ae853SAndroid Build Coastguard Worker {
822*495ae853SAndroid Build Coastguard Worker     /**
823*495ae853SAndroid Build Coastguard Worker      * u4_size
824*495ae853SAndroid Build Coastguard Worker      */
825*495ae853SAndroid Build Coastguard Worker     UWORD32 u4_size;
826*495ae853SAndroid Build Coastguard Worker 
827*495ae853SAndroid Build Coastguard Worker     /**
828*495ae853SAndroid Build Coastguard Worker      * cmd
829*495ae853SAndroid Build Coastguard Worker      */
830*495ae853SAndroid Build Coastguard Worker     IVD_API_COMMAND_TYPE_T e_cmd;
831*495ae853SAndroid Build Coastguard Worker 
832*495ae853SAndroid Build Coastguard Worker     /**
833*495ae853SAndroid Build Coastguard Worker      * sub_cmd
834*495ae853SAndroid Build Coastguard Worker      */
835*495ae853SAndroid Build Coastguard Worker     IVD_CONTROL_API_COMMAND_TYPE_T e_sub_cmd;
836*495ae853SAndroid Build Coastguard Worker } ih264d_ctl_get_sei_sii_params_ip_t;
837*495ae853SAndroid Build Coastguard Worker 
838*495ae853SAndroid Build Coastguard Worker typedef struct
839*495ae853SAndroid Build Coastguard Worker {
840*495ae853SAndroid Build Coastguard Worker     /**
841*495ae853SAndroid Build Coastguard Worker      * u4_size
842*495ae853SAndroid Build Coastguard Worker      */
843*495ae853SAndroid Build Coastguard Worker     UWORD32 u4_size;
844*495ae853SAndroid Build Coastguard Worker 
845*495ae853SAndroid Build Coastguard Worker     /**
846*495ae853SAndroid Build Coastguard Worker      * error_code
847*495ae853SAndroid Build Coastguard Worker      */
848*495ae853SAndroid Build Coastguard Worker     UWORD32 u4_error_code;
849*495ae853SAndroid Build Coastguard Worker 
850*495ae853SAndroid Build Coastguard Worker     /**
851*495ae853SAndroid Build Coastguard Worker      * specifies if the sei sii is enabled
852*495ae853SAndroid Build Coastguard Worker      */
853*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_shutter_interval_info_present_flag;
854*495ae853SAndroid Build Coastguard Worker 
855*495ae853SAndroid Build Coastguard Worker     /**
856*495ae853SAndroid Build Coastguard Worker      * specifies the shutter interval temporal sub-layer index
857*495ae853SAndroid Build Coastguard Worker      * of the current picture
858*495ae853SAndroid Build Coastguard Worker      */
859*495ae853SAndroid Build Coastguard Worker     UWORD32 u4_sii_sub_layer_idx;
860*495ae853SAndroid Build Coastguard Worker 
861*495ae853SAndroid Build Coastguard Worker     /**
862*495ae853SAndroid Build Coastguard Worker      * specify the number of time units that pass in one second
863*495ae853SAndroid Build Coastguard Worker      */
864*495ae853SAndroid Build Coastguard Worker     UWORD32 u4_sii_time_scale;
865*495ae853SAndroid Build Coastguard Worker 
866*495ae853SAndroid Build Coastguard Worker     /**
867*495ae853SAndroid Build Coastguard Worker      * specifies that the indicated shutter interval is the same for all
868*495ae853SAndroid Build Coastguard Worker      * pictures in the coded video sequence
869*495ae853SAndroid Build Coastguard Worker      */
870*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_fixed_shutter_interval_within_cvs_flag;
871*495ae853SAndroid Build Coastguard Worker 
872*495ae853SAndroid Build Coastguard Worker     /**
873*495ae853SAndroid Build Coastguard Worker      * specifies the the number of time units of a clock operating at the
874*495ae853SAndroid Build Coastguard Worker      * frequency sii_time_scale Hz that corresponds to the indicated shutter
875*495ae853SAndroid Build Coastguard Worker      * interval of each picture in the coded video sequence
876*495ae853SAndroid Build Coastguard Worker      */
877*495ae853SAndroid Build Coastguard Worker     UWORD32 u4_sii_num_units_in_shutter_interval;
878*495ae853SAndroid Build Coastguard Worker 
879*495ae853SAndroid Build Coastguard Worker     /**
880*495ae853SAndroid Build Coastguard Worker      * sii_max_sub_layers_minus1 plus 1 specifies the maximum number of
881*495ae853SAndroid Build Coastguard Worker      * shutter interval temporal sub-layers indexes that may be present
882*495ae853SAndroid Build Coastguard Worker      * in the coded video sequence
883*495ae853SAndroid Build Coastguard Worker      */
884*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_sii_max_sub_layers_minus1;
885*495ae853SAndroid Build Coastguard Worker 
886*495ae853SAndroid Build Coastguard Worker     /**
887*495ae853SAndroid Build Coastguard Worker      * specifies the number of time units of a clock operating at the
888*495ae853SAndroid Build Coastguard Worker      * frequency sii_time_scale Hz that corresponds to the shutter
889*495ae853SAndroid Build Coastguard Worker      * interval of each picture in the coded video sequence
890*495ae853SAndroid Build Coastguard Worker      */
891*495ae853SAndroid Build Coastguard Worker     UWORD32 au4_sub_layer_num_units_in_shutter_interval[SII_MAX_SUB_LAYERS];
892*495ae853SAndroid Build Coastguard Worker 
893*495ae853SAndroid Build Coastguard Worker } ih264d_ctl_get_sei_sii_params_op_t;
894*495ae853SAndroid Build Coastguard Worker 
895*495ae853SAndroid Build Coastguard Worker typedef struct
896*495ae853SAndroid Build Coastguard Worker {
897*495ae853SAndroid Build Coastguard Worker     /**
898*495ae853SAndroid Build Coastguard Worker      * u4_size
899*495ae853SAndroid Build Coastguard Worker      */
900*495ae853SAndroid Build Coastguard Worker     UWORD32 u4_size;
901*495ae853SAndroid Build Coastguard Worker 
902*495ae853SAndroid Build Coastguard Worker     /**
903*495ae853SAndroid Build Coastguard Worker      * cmd
904*495ae853SAndroid Build Coastguard Worker      */
905*495ae853SAndroid Build Coastguard Worker     IVD_API_COMMAND_TYPE_T e_cmd;
906*495ae853SAndroid Build Coastguard Worker 
907*495ae853SAndroid Build Coastguard Worker     /**
908*495ae853SAndroid Build Coastguard Worker      * sub_cmd
909*495ae853SAndroid Build Coastguard Worker      */
910*495ae853SAndroid Build Coastguard Worker     IVD_CONTROL_API_COMMAND_TYPE_T e_sub_cmd;
911*495ae853SAndroid Build Coastguard Worker } ih264d_ctl_get_sei_fgc_params_ip_t;
912*495ae853SAndroid Build Coastguard Worker 
913*495ae853SAndroid Build Coastguard Worker typedef struct
914*495ae853SAndroid Build Coastguard Worker {
915*495ae853SAndroid Build Coastguard Worker     /**
916*495ae853SAndroid Build Coastguard Worker      * u4_size
917*495ae853SAndroid Build Coastguard Worker      */
918*495ae853SAndroid Build Coastguard Worker     UWORD32 u4_size;
919*495ae853SAndroid Build Coastguard Worker 
920*495ae853SAndroid Build Coastguard Worker     /**
921*495ae853SAndroid Build Coastguard Worker      * error_code
922*495ae853SAndroid Build Coastguard Worker      */
923*495ae853SAndroid Build Coastguard Worker     UWORD32 u4_error_code;
924*495ae853SAndroid Build Coastguard Worker 
925*495ae853SAndroid Build Coastguard Worker     /**
926*495ae853SAndroid Build Coastguard Worker      * Flag to control the presence of FGC SEI params
927*495ae853SAndroid Build Coastguard Worker      */
928*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_film_grain_characteristics_cancel_flag;
929*495ae853SAndroid Build Coastguard Worker 
930*495ae853SAndroid Build Coastguard Worker     /**
931*495ae853SAndroid Build Coastguard Worker      * Specifies the pic order count
932*495ae853SAndroid Build Coastguard Worker      */
933*495ae853SAndroid Build Coastguard Worker     WORD32 i4_poc;
934*495ae853SAndroid Build Coastguard Worker 
935*495ae853SAndroid Build Coastguard Worker     /**
936*495ae853SAndroid Build Coastguard Worker      * Specifies IDR pic ID
937*495ae853SAndroid Build Coastguard Worker      */
938*495ae853SAndroid Build Coastguard Worker     UWORD32 u4_idr_pic_id;
939*495ae853SAndroid Build Coastguard Worker 
940*495ae853SAndroid Build Coastguard Worker     /**
941*495ae853SAndroid Build Coastguard Worker      * Specifies film grain model for simulation
942*495ae853SAndroid Build Coastguard Worker      */
943*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_film_grain_model_id;
944*495ae853SAndroid Build Coastguard Worker 
945*495ae853SAndroid Build Coastguard Worker     /**
946*495ae853SAndroid Build Coastguard Worker      * Specifies separate color format for decoded samples and grain
947*495ae853SAndroid Build Coastguard Worker      */
948*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_separate_colour_description_present_flag;
949*495ae853SAndroid Build Coastguard Worker 
950*495ae853SAndroid Build Coastguard Worker     /**
951*495ae853SAndroid Build Coastguard Worker      * Specifies the bit depth used for the luma component
952*495ae853SAndroid Build Coastguard Worker      */
953*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_film_grain_bit_depth_luma_minus8;
954*495ae853SAndroid Build Coastguard Worker 
955*495ae853SAndroid Build Coastguard Worker     /**
956*495ae853SAndroid Build Coastguard Worker      * Specifies the bit depth used for the Cb and Cr components
957*495ae853SAndroid Build Coastguard Worker      */
958*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_film_grain_bit_depth_chroma_minus8;
959*495ae853SAndroid Build Coastguard Worker 
960*495ae853SAndroid Build Coastguard Worker     /**
961*495ae853SAndroid Build Coastguard Worker      * Specifies the colour space of the FGC in SEI
962*495ae853SAndroid Build Coastguard Worker      */
963*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_film_grain_full_range_flag;
964*495ae853SAndroid Build Coastguard Worker 
965*495ae853SAndroid Build Coastguard Worker     /**
966*495ae853SAndroid Build Coastguard Worker      * Specifies the colour space of the FGC in SEI
967*495ae853SAndroid Build Coastguard Worker      */
968*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_film_grain_colour_primaries;
969*495ae853SAndroid Build Coastguard Worker 
970*495ae853SAndroid Build Coastguard Worker     /**
971*495ae853SAndroid Build Coastguard Worker      * Specifies the colour space of the FGC in SEI
972*495ae853SAndroid Build Coastguard Worker      */
973*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_film_grain_transfer_characteristics;
974*495ae853SAndroid Build Coastguard Worker 
975*495ae853SAndroid Build Coastguard Worker     /**
976*495ae853SAndroid Build Coastguard Worker      * Specifies the colour space of the FGC in SEI
977*495ae853SAndroid Build Coastguard Worker      */
978*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_film_grain_matrix_coefficients;
979*495ae853SAndroid Build Coastguard Worker 
980*495ae853SAndroid Build Coastguard Worker     /**
981*495ae853SAndroid Build Coastguard Worker      * identifies the blending mode used to blend the simulated film grain with the decoded images
982*495ae853SAndroid Build Coastguard Worker      */
983*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_blending_mode_id;
984*495ae853SAndroid Build Coastguard Worker 
985*495ae853SAndroid Build Coastguard Worker     /**
986*495ae853SAndroid Build Coastguard Worker      * Specifies a scale factor used in the film grain characterization equations
987*495ae853SAndroid Build Coastguard Worker      */
988*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_log2_scale_factor;
989*495ae853SAndroid Build Coastguard Worker 
990*495ae853SAndroid Build Coastguard Worker     /**
991*495ae853SAndroid Build Coastguard Worker      * Indicates whether film grain is modelled or not on the colour component
992*495ae853SAndroid Build Coastguard Worker      */
993*495ae853SAndroid Build Coastguard Worker     UWORD8 au1_comp_model_present_flag[SEI_FGC_NUM_COLOUR_COMPONENTS];
994*495ae853SAndroid Build Coastguard Worker 
995*495ae853SAndroid Build Coastguard Worker     /**
996*495ae853SAndroid Build Coastguard Worker      * Specifies the number of intensity intervals for which
997*495ae853SAndroid Build Coastguard Worker      * a specific set of model values has been estimated
998*495ae853SAndroid Build Coastguard Worker      */
999*495ae853SAndroid Build Coastguard Worker     UWORD8 au1_num_intensity_intervals_minus1[SEI_FGC_NUM_COLOUR_COMPONENTS];
1000*495ae853SAndroid Build Coastguard Worker 
1001*495ae853SAndroid Build Coastguard Worker     /**
1002*495ae853SAndroid Build Coastguard Worker      * Specifies the number of model values present for each intensity interval in which
1003*495ae853SAndroid Build Coastguard Worker      * the film grain has been modelled
1004*495ae853SAndroid Build Coastguard Worker      */
1005*495ae853SAndroid Build Coastguard Worker     UWORD8 au1_num_model_values_minus1[SEI_FGC_NUM_COLOUR_COMPONENTS];
1006*495ae853SAndroid Build Coastguard Worker 
1007*495ae853SAndroid Build Coastguard Worker     /**
1008*495ae853SAndroid Build Coastguard Worker      * Specifies the lower bound of the interval of intensity levels for which
1009*495ae853SAndroid Build Coastguard Worker      * the set of model values applies
1010*495ae853SAndroid Build Coastguard Worker      */
1011*495ae853SAndroid Build Coastguard Worker     UWORD8 au1_intensity_interval_lower_bound[SEI_FGC_NUM_COLOUR_COMPONENTS]
1012*495ae853SAndroid Build Coastguard Worker                                              [SEI_FGC_MAX_NUM_INTENSITY_INTERVALS];
1013*495ae853SAndroid Build Coastguard Worker 
1014*495ae853SAndroid Build Coastguard Worker     /**
1015*495ae853SAndroid Build Coastguard Worker      * Specifies the upper bound of the interval of intensity levels for which
1016*495ae853SAndroid Build Coastguard Worker      * the set of model values applies
1017*495ae853SAndroid Build Coastguard Worker      */
1018*495ae853SAndroid Build Coastguard Worker     UWORD8 au1_intensity_interval_upper_bound[SEI_FGC_NUM_COLOUR_COMPONENTS]
1019*495ae853SAndroid Build Coastguard Worker                                              [SEI_FGC_MAX_NUM_INTENSITY_INTERVALS];
1020*495ae853SAndroid Build Coastguard Worker 
1021*495ae853SAndroid Build Coastguard Worker     /**
1022*495ae853SAndroid Build Coastguard Worker      * Represents each one of the model values present for
1023*495ae853SAndroid Build Coastguard Worker      * the colour component and intensity interval
1024*495ae853SAndroid Build Coastguard Worker      */
1025*495ae853SAndroid Build Coastguard Worker     WORD32 ai4_comp_model_value[SEI_FGC_NUM_COLOUR_COMPONENTS][SEI_FGC_MAX_NUM_INTENSITY_INTERVALS]
1026*495ae853SAndroid Build Coastguard Worker                                [SEI_FGC_MAX_NUM_MODEL_VALUES];
1027*495ae853SAndroid Build Coastguard Worker 
1028*495ae853SAndroid Build Coastguard Worker     /**
1029*495ae853SAndroid Build Coastguard Worker      * Specifies the persistence of the film grain characteristics SEI message
1030*495ae853SAndroid Build Coastguard Worker      */
1031*495ae853SAndroid Build Coastguard Worker     UWORD32 u4_film_grain_characteristics_repetition_period;
1032*495ae853SAndroid Build Coastguard Worker } ih264d_ctl_get_sei_fgc_params_op_t;
1033*495ae853SAndroid Build Coastguard Worker 
1034*495ae853SAndroid Build Coastguard Worker #ifdef __cplusplus
1035*495ae853SAndroid Build Coastguard Worker } /* closing brace for extern "C" */
1036*495ae853SAndroid Build Coastguard Worker #endif
1037*495ae853SAndroid Build Coastguard Worker #endif /* _IH264D_H_ */
1038