xref: /aosp_15_r20/external/libavc/decoder/ih264d_sei.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 Name         : ih264d_sei.h                                                */
24*495ae853SAndroid Build Coastguard Worker /*                                                                           */
25*495ae853SAndroid Build Coastguard Worker /*  Description       : This file contains routines to parse SEI NAL's       */
26*495ae853SAndroid Build Coastguard Worker /*                                                                           */
27*495ae853SAndroid Build Coastguard Worker /*  List of Functions : <List the functions defined in this file>            */
28*495ae853SAndroid Build Coastguard Worker /*                                                                           */
29*495ae853SAndroid Build Coastguard Worker /*  Issues / Problems : None                                                 */
30*495ae853SAndroid Build Coastguard Worker /*                                                                           */
31*495ae853SAndroid Build Coastguard Worker /*  Revision History  :                                                      */
32*495ae853SAndroid Build Coastguard Worker /*                                                                           */
33*495ae853SAndroid Build Coastguard Worker /*         DD MM YYYY   Author(s)       Changes (Describe the changes made)  */
34*495ae853SAndroid Build Coastguard Worker /*         25 05 2005   NS              Draft                                */
35*495ae853SAndroid Build Coastguard Worker /*                                                                           */
36*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
37*495ae853SAndroid Build Coastguard Worker 
38*495ae853SAndroid Build Coastguard Worker #ifndef _IH264D_SEI_H_
39*495ae853SAndroid Build Coastguard Worker #define _IH264D_SEI_H_
40*495ae853SAndroid Build Coastguard Worker 
41*495ae853SAndroid Build Coastguard Worker #include "ih264_typedefs.h"
42*495ae853SAndroid Build Coastguard Worker #include "ih264_macros.h"
43*495ae853SAndroid Build Coastguard Worker #include "ih264_platform_macros.h"
44*495ae853SAndroid Build Coastguard Worker #include "ih264d_bitstrm.h"
45*495ae853SAndroid Build Coastguard Worker #include "ih264d_structs.h"
46*495ae853SAndroid Build Coastguard Worker #include "ih264d.h"
47*495ae853SAndroid Build Coastguard Worker 
48*495ae853SAndroid Build Coastguard Worker #define SEI_BUF_PERIOD      0
49*495ae853SAndroid Build Coastguard Worker #define SEI_PIC_TIMING      1
50*495ae853SAndroid Build Coastguard Worker #define SEI_PAN_SCAN_RECT   2
51*495ae853SAndroid Build Coastguard Worker #define SEI_FILLER          3
52*495ae853SAndroid Build Coastguard Worker #define SEI_UD_REG_T35      4
53*495ae853SAndroid Build Coastguard Worker #define SEI_UD_UN_REG       5
54*495ae853SAndroid Build Coastguard Worker #define SEI_RECOVERY_PT     6
55*495ae853SAndroid Build Coastguard Worker #define SEI_DEC_REF_MARK    7
56*495ae853SAndroid Build Coastguard Worker #define SEI_SPARE_PIC       8
57*495ae853SAndroid Build Coastguard Worker #define SEI_SCENE_INFO      9
58*495ae853SAndroid Build Coastguard Worker #define SEI_SUB_SEQN_INFO   10
59*495ae853SAndroid Build Coastguard Worker #define SEI_SUB_SEQN_LAY_CHAR       11
60*495ae853SAndroid Build Coastguard Worker #define SEI_SUB_SEQN_CHAR   12
61*495ae853SAndroid Build Coastguard Worker #define SEI_FULL_FRAME_FREEZE       13
62*495ae853SAndroid Build Coastguard Worker #define SEI_FULL_FRAME_FREEZE_REL   14
63*495ae853SAndroid Build Coastguard Worker #define SEI_FULL_FRAME_SNAP_SHOT    15
64*495ae853SAndroid Build Coastguard Worker #define SEI_PROG_REF_SEGMENT_START  16
65*495ae853SAndroid Build Coastguard Worker #define SEI_PROG_REF_SEGMENT_END    17
66*495ae853SAndroid Build Coastguard Worker #define SEI_MOT_CON_SLICE_GRP_SET   18
67*495ae853SAndroid Build Coastguard Worker #define SEI_FILM_GRAIN_CHARACTERISTICS 19
68*495ae853SAndroid Build Coastguard Worker #define SEI_MASTERING_DISP_COL_VOL       137
69*495ae853SAndroid Build Coastguard Worker #define SEI_CONTENT_LIGHT_LEVEL_DATA     144
70*495ae853SAndroid Build Coastguard Worker #define SEI_AMBIENT_VIEWING_ENVIRONMENT  148
71*495ae853SAndroid Build Coastguard Worker #define SEI_CONTENT_COLOR_VOLUME         149
72*495ae853SAndroid Build Coastguard Worker #define SEI_SHUTTER_INTERVAL_INFO        205
73*495ae853SAndroid Build Coastguard Worker 
74*495ae853SAndroid Build Coastguard Worker /* Declaration of dec_struct_t to avoid CCS compilation Error */
75*495ae853SAndroid Build Coastguard Worker struct _DecStruct;
76*495ae853SAndroid Build Coastguard Worker WORD32 ih264d_parse_sei_message(struct _DecStruct *ps_dec,
77*495ae853SAndroid Build Coastguard Worker                                 dec_bit_stream_t *ps_bitstrm);
78*495ae853SAndroid Build Coastguard Worker typedef struct
79*495ae853SAndroid Build Coastguard Worker {
80*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_seq_parameter_set_id;
81*495ae853SAndroid Build Coastguard Worker     UWORD32 u4_initial_cpb_removal_delay;
82*495ae853SAndroid Build Coastguard Worker     UWORD32 u4_nitial_cpb_removal_delay_offset;
83*495ae853SAndroid Build Coastguard Worker 
84*495ae853SAndroid Build Coastguard Worker } buf_period_t;
85*495ae853SAndroid Build Coastguard Worker 
86*495ae853SAndroid Build Coastguard Worker /**
87*495ae853SAndroid Build Coastguard Worker  * Structure to hold Mastering Display Color Volume SEI
88*495ae853SAndroid Build Coastguard Worker  */
89*495ae853SAndroid Build Coastguard Worker typedef struct
90*495ae853SAndroid Build Coastguard Worker {
91*495ae853SAndroid Build Coastguard Worker     /**
92*495ae853SAndroid Build Coastguard Worker      * Array to store the display_primaries_x values
93*495ae853SAndroid Build Coastguard Worker      */
94*495ae853SAndroid Build Coastguard Worker     UWORD16 au2_display_primaries_x[NUM_SEI_MDCV_PRIMARIES];
95*495ae853SAndroid Build Coastguard Worker 
96*495ae853SAndroid Build Coastguard Worker     /**
97*495ae853SAndroid Build Coastguard Worker      * Array to store the display_primaries_y values
98*495ae853SAndroid Build Coastguard Worker      */
99*495ae853SAndroid Build Coastguard Worker     UWORD16 au2_display_primaries_y[NUM_SEI_MDCV_PRIMARIES];
100*495ae853SAndroid Build Coastguard Worker 
101*495ae853SAndroid Build Coastguard Worker     /**
102*495ae853SAndroid Build Coastguard Worker      * Variable to store the white point x value
103*495ae853SAndroid Build Coastguard Worker      */
104*495ae853SAndroid Build Coastguard Worker     UWORD16 u2_white_point_x;
105*495ae853SAndroid Build Coastguard Worker 
106*495ae853SAndroid Build Coastguard Worker     /**
107*495ae853SAndroid Build Coastguard Worker      * Variable to store the white point y value
108*495ae853SAndroid Build Coastguard Worker      */
109*495ae853SAndroid Build Coastguard Worker     UWORD16 u2_white_point_y;
110*495ae853SAndroid Build Coastguard Worker 
111*495ae853SAndroid Build Coastguard Worker     /**
112*495ae853SAndroid Build Coastguard Worker      * Variable to store the max display mastering luminance value
113*495ae853SAndroid Build Coastguard Worker      */
114*495ae853SAndroid Build Coastguard Worker     UWORD32 u4_max_display_mastering_luminance;
115*495ae853SAndroid Build Coastguard Worker 
116*495ae853SAndroid Build Coastguard Worker     /**
117*495ae853SAndroid Build Coastguard Worker      * Variable to store the min display mastering luminance value
118*495ae853SAndroid Build Coastguard Worker      */
119*495ae853SAndroid Build Coastguard Worker     UWORD32 u4_min_display_mastering_luminance;
120*495ae853SAndroid Build Coastguard Worker 
121*495ae853SAndroid Build Coastguard Worker }sei_mdcv_params_t;
122*495ae853SAndroid Build Coastguard Worker 
123*495ae853SAndroid Build Coastguard Worker 
124*495ae853SAndroid Build Coastguard Worker /**
125*495ae853SAndroid Build Coastguard Worker  * Structure for Content Light Level Info
126*495ae853SAndroid Build Coastguard Worker  *
127*495ae853SAndroid Build Coastguard Worker  */
128*495ae853SAndroid Build Coastguard Worker typedef struct
129*495ae853SAndroid Build Coastguard Worker {
130*495ae853SAndroid Build Coastguard Worker     /**
131*495ae853SAndroid Build Coastguard Worker      * The maximum pixel intensity of all samples
132*495ae853SAndroid Build Coastguard Worker      */
133*495ae853SAndroid Build Coastguard Worker     UWORD16 u2_max_content_light_level;
134*495ae853SAndroid Build Coastguard Worker 
135*495ae853SAndroid Build Coastguard Worker     /**
136*495ae853SAndroid Build Coastguard Worker      * The average pixel intensity of all samples
137*495ae853SAndroid Build Coastguard Worker      */
138*495ae853SAndroid Build Coastguard Worker     UWORD16 u2_max_pic_average_light_level;
139*495ae853SAndroid Build Coastguard Worker 
140*495ae853SAndroid Build Coastguard Worker }sei_cll_params_t;
141*495ae853SAndroid Build Coastguard Worker 
142*495ae853SAndroid Build Coastguard Worker 
143*495ae853SAndroid Build Coastguard Worker /**
144*495ae853SAndroid Build Coastguard Worker  * Structure to hold Ambient viewing environment SEI
145*495ae853SAndroid Build Coastguard Worker  */
146*495ae853SAndroid Build Coastguard Worker typedef struct
147*495ae853SAndroid Build Coastguard Worker {
148*495ae853SAndroid Build Coastguard Worker 
149*495ae853SAndroid Build Coastguard Worker     /**
150*495ae853SAndroid Build Coastguard Worker      * specifies the environmental illuminance of the ambient viewing environment
151*495ae853SAndroid Build Coastguard Worker      */
152*495ae853SAndroid Build Coastguard Worker     UWORD32 u4_ambient_illuminance;
153*495ae853SAndroid Build Coastguard Worker 
154*495ae853SAndroid Build Coastguard Worker     /*
155*495ae853SAndroid Build Coastguard Worker      * specify the normalized x chromaticity coordinates of the
156*495ae853SAndroid Build Coastguard Worker      * environmental ambient light in the nominal viewing environment
157*495ae853SAndroid Build Coastguard Worker      */
158*495ae853SAndroid Build Coastguard Worker     UWORD16 u2_ambient_light_x;
159*495ae853SAndroid Build Coastguard Worker 
160*495ae853SAndroid Build Coastguard Worker     /*
161*495ae853SAndroid Build Coastguard Worker     * specify the normalized y chromaticity coordinates of the
162*495ae853SAndroid Build Coastguard Worker     * environmental ambient light in the nominal viewing environment
163*495ae853SAndroid Build Coastguard Worker     */
164*495ae853SAndroid Build Coastguard Worker     UWORD16 u2_ambient_light_y;
165*495ae853SAndroid Build Coastguard Worker 
166*495ae853SAndroid Build Coastguard Worker }sei_ave_params_t;
167*495ae853SAndroid Build Coastguard Worker 
168*495ae853SAndroid Build Coastguard Worker 
169*495ae853SAndroid Build Coastguard Worker /**
170*495ae853SAndroid Build Coastguard Worker  * Structure to hold Content color volume SEI
171*495ae853SAndroid Build Coastguard Worker  */
172*495ae853SAndroid Build Coastguard Worker typedef struct
173*495ae853SAndroid Build Coastguard Worker {
174*495ae853SAndroid Build Coastguard Worker     /*
175*495ae853SAndroid Build Coastguard Worker      * Flag used to control persistence of CCV SEI messages
176*495ae853SAndroid Build Coastguard Worker      */
177*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_ccv_cancel_flag;
178*495ae853SAndroid Build Coastguard Worker 
179*495ae853SAndroid Build Coastguard Worker     /*
180*495ae853SAndroid Build Coastguard Worker      * specifies the persistence of the CCV SEI message for the current layer
181*495ae853SAndroid Build Coastguard Worker      */
182*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_ccv_persistence_flag;
183*495ae853SAndroid Build Coastguard Worker 
184*495ae853SAndroid Build Coastguard Worker     /*
185*495ae853SAndroid Build Coastguard Worker      * specifies the presence of syntax elements ccv_primaries_x and ccv_primaries_y
186*495ae853SAndroid Build Coastguard Worker      */
187*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_ccv_primaries_present_flag;
188*495ae853SAndroid Build Coastguard Worker 
189*495ae853SAndroid Build Coastguard Worker     /*
190*495ae853SAndroid Build Coastguard Worker      * specifies that the syntax element ccv_min_luminance_value is present
191*495ae853SAndroid Build Coastguard Worker      */
192*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_ccv_min_luminance_value_present_flag;
193*495ae853SAndroid Build Coastguard Worker 
194*495ae853SAndroid Build Coastguard Worker     /*
195*495ae853SAndroid Build Coastguard Worker      * specifies that the syntax element ccv_max_luminance_value is present
196*495ae853SAndroid Build Coastguard Worker      */
197*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_ccv_max_luminance_value_present_flag;
198*495ae853SAndroid Build Coastguard Worker 
199*495ae853SAndroid Build Coastguard Worker     /*
200*495ae853SAndroid Build Coastguard Worker      * specifies that the syntax element ccv_avg_luminance_value is present
201*495ae853SAndroid Build Coastguard Worker      */
202*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_ccv_avg_luminance_value_present_flag;
203*495ae853SAndroid Build Coastguard Worker 
204*495ae853SAndroid Build Coastguard Worker     /*
205*495ae853SAndroid Build Coastguard Worker      * shall be equal to 0 in bitstreams conforming to this version. Other values
206*495ae853SAndroid Build Coastguard Worker      * for reserved_zero_2bits are reserved for future use
207*495ae853SAndroid Build Coastguard Worker      */
208*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_ccv_reserved_zero_2bits;
209*495ae853SAndroid Build Coastguard Worker 
210*495ae853SAndroid Build Coastguard Worker     /*
211*495ae853SAndroid Build Coastguard Worker      * specify the normalized x chromaticity coordinates of the colour
212*495ae853SAndroid Build Coastguard Worker      * primary component c of the nominal content colour volume
213*495ae853SAndroid Build Coastguard Worker      */
214*495ae853SAndroid Build Coastguard Worker     WORD32 ai4_ccv_primaries_x[NUM_SEI_CCV_PRIMARIES];
215*495ae853SAndroid Build Coastguard Worker 
216*495ae853SAndroid Build Coastguard Worker     /*
217*495ae853SAndroid Build Coastguard Worker      * specify the normalized y chromaticity coordinates of the colour
218*495ae853SAndroid Build Coastguard Worker      * primary component c of the nominal content colour volume
219*495ae853SAndroid Build Coastguard Worker      */
220*495ae853SAndroid Build Coastguard Worker     WORD32 ai4_ccv_primaries_y[NUM_SEI_CCV_PRIMARIES];
221*495ae853SAndroid Build Coastguard Worker 
222*495ae853SAndroid Build Coastguard Worker     /*
223*495ae853SAndroid Build Coastguard Worker      * specifies the normalized minimum luminance value
224*495ae853SAndroid Build Coastguard Worker      */
225*495ae853SAndroid Build Coastguard Worker     UWORD32 u4_ccv_min_luminance_value;
226*495ae853SAndroid Build Coastguard Worker 
227*495ae853SAndroid Build Coastguard Worker     /*
228*495ae853SAndroid Build Coastguard Worker      * specifies the normalized maximum luminance value
229*495ae853SAndroid Build Coastguard Worker      */
230*495ae853SAndroid Build Coastguard Worker     UWORD32 u4_ccv_max_luminance_value;
231*495ae853SAndroid Build Coastguard Worker 
232*495ae853SAndroid Build Coastguard Worker     /*
233*495ae853SAndroid Build Coastguard Worker      * specifies the normalized average luminance value
234*495ae853SAndroid Build Coastguard Worker      */
235*495ae853SAndroid Build Coastguard Worker     UWORD32 u4_ccv_avg_luminance_value;
236*495ae853SAndroid Build Coastguard Worker 
237*495ae853SAndroid Build Coastguard Worker }sei_ccv_params_t;
238*495ae853SAndroid Build Coastguard Worker 
239*495ae853SAndroid Build Coastguard Worker /**
240*495ae853SAndroid Build Coastguard Worker  * Structure to hold Shutter Interval Info SEI
241*495ae853SAndroid Build Coastguard Worker  */
242*495ae853SAndroid Build Coastguard Worker typedef struct
243*495ae853SAndroid Build Coastguard Worker {
244*495ae853SAndroid Build Coastguard Worker     /**
245*495ae853SAndroid Build Coastguard Worker      * specifies if the sei sii is enabled
246*495ae853SAndroid Build Coastguard Worker      */
247*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_shutter_interval_info_present_flag;
248*495ae853SAndroid Build Coastguard Worker 
249*495ae853SAndroid Build Coastguard Worker     /**
250*495ae853SAndroid Build Coastguard Worker      * specifies the shutter interval temporal sub-layer index
251*495ae853SAndroid Build Coastguard Worker      * of the current picture
252*495ae853SAndroid Build Coastguard Worker      */
253*495ae853SAndroid Build Coastguard Worker     UWORD32 u4_sii_sub_layer_idx;
254*495ae853SAndroid Build Coastguard Worker 
255*495ae853SAndroid Build Coastguard Worker     /**
256*495ae853SAndroid Build Coastguard Worker      * specify the number of time units that pass in one second
257*495ae853SAndroid Build Coastguard Worker      */
258*495ae853SAndroid Build Coastguard Worker     UWORD32 u4_sii_time_scale;
259*495ae853SAndroid Build Coastguard Worker 
260*495ae853SAndroid Build Coastguard Worker     /**
261*495ae853SAndroid Build Coastguard Worker      * specifies that the indicated shutter interval is the same for all
262*495ae853SAndroid Build Coastguard Worker      * pictures in the coded video sequence
263*495ae853SAndroid Build Coastguard Worker      */
264*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_fixed_shutter_interval_within_cvs_flag;
265*495ae853SAndroid Build Coastguard Worker 
266*495ae853SAndroid Build Coastguard Worker     /**
267*495ae853SAndroid Build Coastguard Worker      * specifies the the number of time units of a clock operating at the
268*495ae853SAndroid Build Coastguard Worker      * frequency sii_time_scale Hz that corresponds to the indicated shutter
269*495ae853SAndroid Build Coastguard Worker      * interval of each picture in the coded video sequence
270*495ae853SAndroid Build Coastguard Worker      */
271*495ae853SAndroid Build Coastguard Worker     UWORD32 u4_sii_num_units_in_shutter_interval;
272*495ae853SAndroid Build Coastguard Worker 
273*495ae853SAndroid Build Coastguard Worker     /**
274*495ae853SAndroid Build Coastguard Worker      * sii_max_sub_layers_minus1 plus 1 specifies the maximum number of
275*495ae853SAndroid Build Coastguard Worker      * shutter interval temporal sub-layers indexes that may be present
276*495ae853SAndroid Build Coastguard Worker      * in the coded video sequence
277*495ae853SAndroid Build Coastguard Worker      */
278*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_sii_max_sub_layers_minus1;
279*495ae853SAndroid Build Coastguard Worker 
280*495ae853SAndroid Build Coastguard Worker     /**
281*495ae853SAndroid Build Coastguard Worker      * specifies the number of time units of a clock operating at the
282*495ae853SAndroid Build Coastguard Worker      * frequency sii_time_scale Hz that corresponds to the shutter
283*495ae853SAndroid Build Coastguard Worker      * interval of each picture in the coded video sequence
284*495ae853SAndroid Build Coastguard Worker      */
285*495ae853SAndroid Build Coastguard Worker     UWORD32 au4_sub_layer_num_units_in_shutter_interval[SII_MAX_SUB_LAYERS];
286*495ae853SAndroid Build Coastguard Worker 
287*495ae853SAndroid Build Coastguard Worker } sei_sii_params_t;
288*495ae853SAndroid Build Coastguard Worker 
289*495ae853SAndroid Build Coastguard Worker typedef struct
290*495ae853SAndroid Build Coastguard Worker {
291*495ae853SAndroid Build Coastguard Worker     /**
292*495ae853SAndroid Build Coastguard Worker      * Flag to control the presence of FGC SEI params
293*495ae853SAndroid Build Coastguard Worker      */
294*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_film_grain_characteristics_cancel_flag;
295*495ae853SAndroid Build Coastguard Worker 
296*495ae853SAndroid Build Coastguard Worker     /**
297*495ae853SAndroid Build Coastguard Worker      * Specifies the pic order count
298*495ae853SAndroid Build Coastguard Worker      */
299*495ae853SAndroid Build Coastguard Worker     WORD32 i4_poc;
300*495ae853SAndroid Build Coastguard Worker 
301*495ae853SAndroid Build Coastguard Worker     /**
302*495ae853SAndroid Build Coastguard Worker      * Specifies IDR pic ID
303*495ae853SAndroid Build Coastguard Worker      */
304*495ae853SAndroid Build Coastguard Worker     UWORD32 u4_idr_pic_id;
305*495ae853SAndroid Build Coastguard Worker 
306*495ae853SAndroid Build Coastguard Worker     /**
307*495ae853SAndroid Build Coastguard Worker      * Specifies film grain model for simulation
308*495ae853SAndroid Build Coastguard Worker      */
309*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_film_grain_model_id;
310*495ae853SAndroid Build Coastguard Worker 
311*495ae853SAndroid Build Coastguard Worker     /**
312*495ae853SAndroid Build Coastguard Worker      * Specifies separate color format for decoded samples and grain
313*495ae853SAndroid Build Coastguard Worker      */
314*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_separate_colour_description_present_flag;
315*495ae853SAndroid Build Coastguard Worker 
316*495ae853SAndroid Build Coastguard Worker     /**
317*495ae853SAndroid Build Coastguard Worker      * Specifies the bit depth used for the luma component
318*495ae853SAndroid Build Coastguard Worker      */
319*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_film_grain_bit_depth_luma_minus8;
320*495ae853SAndroid Build Coastguard Worker 
321*495ae853SAndroid Build Coastguard Worker     /**
322*495ae853SAndroid Build Coastguard Worker      * Specifies the bit depth used for the Cb and Cr components
323*495ae853SAndroid Build Coastguard Worker      */
324*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_film_grain_bit_depth_chroma_minus8;
325*495ae853SAndroid Build Coastguard Worker 
326*495ae853SAndroid Build Coastguard Worker     /**
327*495ae853SAndroid Build Coastguard Worker      * Specifies the colour space of the FGC in SEI
328*495ae853SAndroid Build Coastguard Worker      */
329*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_film_grain_full_range_flag;
330*495ae853SAndroid Build Coastguard Worker 
331*495ae853SAndroid Build Coastguard Worker     /**
332*495ae853SAndroid Build Coastguard Worker      * Specifies the colour space of the FGC in SEI
333*495ae853SAndroid Build Coastguard Worker      */
334*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_film_grain_colour_primaries;
335*495ae853SAndroid Build Coastguard Worker 
336*495ae853SAndroid Build Coastguard Worker     /**
337*495ae853SAndroid Build Coastguard Worker      * Specifies the colour space of the FGC in SEI
338*495ae853SAndroid Build Coastguard Worker      */
339*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_film_grain_transfer_characteristics;
340*495ae853SAndroid Build Coastguard Worker 
341*495ae853SAndroid Build Coastguard Worker     /**
342*495ae853SAndroid Build Coastguard Worker      * Specifies the colour space of the FGC in SEI
343*495ae853SAndroid Build Coastguard Worker      */
344*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_film_grain_matrix_coefficients;
345*495ae853SAndroid Build Coastguard Worker 
346*495ae853SAndroid Build Coastguard Worker     /**
347*495ae853SAndroid Build Coastguard Worker      * identifies the blending mode used to blend the simulated film grain with the decoded images
348*495ae853SAndroid Build Coastguard Worker      */
349*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_blending_mode_id;
350*495ae853SAndroid Build Coastguard Worker 
351*495ae853SAndroid Build Coastguard Worker     /**
352*495ae853SAndroid Build Coastguard Worker      * Specifies a scale factor used in the film grain characterization equations
353*495ae853SAndroid Build Coastguard Worker      */
354*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_log2_scale_factor;
355*495ae853SAndroid Build Coastguard Worker 
356*495ae853SAndroid Build Coastguard Worker     /**
357*495ae853SAndroid Build Coastguard Worker      * Indicates whether film grain is modelled or not on the colour component
358*495ae853SAndroid Build Coastguard Worker      */
359*495ae853SAndroid Build Coastguard Worker     UWORD8 au1_comp_model_present_flag[SEI_FGC_NUM_COLOUR_COMPONENTS];
360*495ae853SAndroid Build Coastguard Worker 
361*495ae853SAndroid Build Coastguard Worker     /**
362*495ae853SAndroid Build Coastguard Worker      * Specifies the number of intensity intervals for which
363*495ae853SAndroid Build Coastguard Worker      * a specific set of model values has been estimated
364*495ae853SAndroid Build Coastguard Worker      */
365*495ae853SAndroid Build Coastguard Worker     UWORD8 au1_num_intensity_intervals_minus1[SEI_FGC_NUM_COLOUR_COMPONENTS];
366*495ae853SAndroid Build Coastguard Worker 
367*495ae853SAndroid Build Coastguard Worker     /**
368*495ae853SAndroid Build Coastguard Worker      * Specifies the number of model values present for each intensity interval in which
369*495ae853SAndroid Build Coastguard Worker      * the film grain has been modelled
370*495ae853SAndroid Build Coastguard Worker      */
371*495ae853SAndroid Build Coastguard Worker     UWORD8 au1_num_model_values_minus1[SEI_FGC_NUM_COLOUR_COMPONENTS];
372*495ae853SAndroid Build Coastguard Worker 
373*495ae853SAndroid Build Coastguard Worker     /**
374*495ae853SAndroid Build Coastguard Worker      * Specifies the lower bound of the interval of intensity levels for which
375*495ae853SAndroid Build Coastguard Worker      * the set of model values applies
376*495ae853SAndroid Build Coastguard Worker      */
377*495ae853SAndroid Build Coastguard Worker     UWORD8 au1_intensity_interval_lower_bound[SEI_FGC_NUM_COLOUR_COMPONENTS]
378*495ae853SAndroid Build Coastguard Worker                                              [SEI_FGC_MAX_NUM_INTENSITY_INTERVALS];
379*495ae853SAndroid Build Coastguard Worker 
380*495ae853SAndroid Build Coastguard Worker     /**
381*495ae853SAndroid Build Coastguard Worker      * Specifies the upper bound of the interval of intensity levels for which
382*495ae853SAndroid Build Coastguard Worker      * the set of model values applies
383*495ae853SAndroid Build Coastguard Worker      */
384*495ae853SAndroid Build Coastguard Worker     UWORD8 au1_intensity_interval_upper_bound[SEI_FGC_NUM_COLOUR_COMPONENTS]
385*495ae853SAndroid Build Coastguard Worker                                              [SEI_FGC_MAX_NUM_INTENSITY_INTERVALS];
386*495ae853SAndroid Build Coastguard Worker 
387*495ae853SAndroid Build Coastguard Worker     /**
388*495ae853SAndroid Build Coastguard Worker      * Represents each one of the model values present for
389*495ae853SAndroid Build Coastguard Worker      * the colour component and intensity interval
390*495ae853SAndroid Build Coastguard Worker      */
391*495ae853SAndroid Build Coastguard Worker     WORD32 ai4_comp_model_value[SEI_FGC_NUM_COLOUR_COMPONENTS][SEI_FGC_MAX_NUM_INTENSITY_INTERVALS]
392*495ae853SAndroid Build Coastguard Worker                                [SEI_FGC_MAX_NUM_MODEL_VALUES];
393*495ae853SAndroid Build Coastguard Worker 
394*495ae853SAndroid Build Coastguard Worker     /**
395*495ae853SAndroid Build Coastguard Worker      * Specifies the persistence of the film grain characteristics SEI message
396*495ae853SAndroid Build Coastguard Worker      */
397*495ae853SAndroid Build Coastguard Worker     UWORD32 u4_film_grain_characteristics_repetition_period;
398*495ae853SAndroid Build Coastguard Worker 
399*495ae853SAndroid Build Coastguard Worker } sei_fgc_params_t;
400*495ae853SAndroid Build Coastguard Worker 
401*495ae853SAndroid Build Coastguard Worker struct _sei
402*495ae853SAndroid Build Coastguard Worker {
403*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_seq_param_set_id;
404*495ae853SAndroid Build Coastguard Worker     buf_period_t s_buf_period;
405*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_pic_struct;
406*495ae853SAndroid Build Coastguard Worker     UWORD16 u2_recovery_frame_cnt;
407*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_exact_match_flag;
408*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_broken_link_flag;
409*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_changing_slice_grp_idc;
410*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_is_valid;
411*495ae853SAndroid Build Coastguard Worker 
412*495ae853SAndroid Build Coastguard Worker     /**
413*495ae853SAndroid Build Coastguard Worker      *  mastering display color volume info present flag
414*495ae853SAndroid Build Coastguard Worker      */
415*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_sei_mdcv_params_present_flag;
416*495ae853SAndroid Build Coastguard Worker 
417*495ae853SAndroid Build Coastguard Worker     /*
418*495ae853SAndroid Build Coastguard Worker      * MDCV parameters
419*495ae853SAndroid Build Coastguard Worker      */
420*495ae853SAndroid Build Coastguard Worker     sei_mdcv_params_t s_sei_mdcv_params;
421*495ae853SAndroid Build Coastguard Worker 
422*495ae853SAndroid Build Coastguard Worker     /**
423*495ae853SAndroid Build Coastguard Worker      * content light level info present flag
424*495ae853SAndroid Build Coastguard Worker      */
425*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_sei_cll_params_present_flag;
426*495ae853SAndroid Build Coastguard Worker 
427*495ae853SAndroid Build Coastguard Worker     /*
428*495ae853SAndroid Build Coastguard Worker      * CLL parameters
429*495ae853SAndroid Build Coastguard Worker      */
430*495ae853SAndroid Build Coastguard Worker     sei_cll_params_t s_sei_cll_params;
431*495ae853SAndroid Build Coastguard Worker 
432*495ae853SAndroid Build Coastguard Worker     /**
433*495ae853SAndroid Build Coastguard Worker      * ambient viewing environment info present flag
434*495ae853SAndroid Build Coastguard Worker      */
435*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_sei_ave_params_present_flag;
436*495ae853SAndroid Build Coastguard Worker 
437*495ae853SAndroid Build Coastguard Worker     /*
438*495ae853SAndroid Build Coastguard Worker      * AVE parameters
439*495ae853SAndroid Build Coastguard Worker      */
440*495ae853SAndroid Build Coastguard Worker     sei_ave_params_t s_sei_ave_params;
441*495ae853SAndroid Build Coastguard Worker 
442*495ae853SAndroid Build Coastguard Worker     /**
443*495ae853SAndroid Build Coastguard Worker      * content color volume info present flag
444*495ae853SAndroid Build Coastguard Worker      */
445*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_sei_ccv_params_present_flag;
446*495ae853SAndroid Build Coastguard Worker 
447*495ae853SAndroid Build Coastguard Worker     /*
448*495ae853SAndroid Build Coastguard Worker      * CCV parameters
449*495ae853SAndroid Build Coastguard Worker      */
450*495ae853SAndroid Build Coastguard Worker     sei_ccv_params_t s_sei_ccv_params;
451*495ae853SAndroid Build Coastguard Worker 
452*495ae853SAndroid Build Coastguard Worker     /**
453*495ae853SAndroid Build Coastguard Worker      * shutter interval info present flag
454*495ae853SAndroid Build Coastguard Worker      */
455*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_sei_sii_params_present_flag;
456*495ae853SAndroid Build Coastguard Worker 
457*495ae853SAndroid Build Coastguard Worker     /*
458*495ae853SAndroid Build Coastguard Worker      * SII parameters
459*495ae853SAndroid Build Coastguard Worker      */
460*495ae853SAndroid Build Coastguard Worker     sei_sii_params_t s_sei_sii_params;
461*495ae853SAndroid Build Coastguard Worker 
462*495ae853SAndroid Build Coastguard Worker     /**
463*495ae853SAndroid Build Coastguard Worker      * film grain params info present flag
464*495ae853SAndroid Build Coastguard Worker      */
465*495ae853SAndroid Build Coastguard Worker     UWORD8 u1_sei_fgc_params_present_flag;
466*495ae853SAndroid Build Coastguard Worker 
467*495ae853SAndroid Build Coastguard Worker     /*
468*495ae853SAndroid Build Coastguard Worker      * film grain characteristics parameters
469*495ae853SAndroid Build Coastguard Worker      */
470*495ae853SAndroid Build Coastguard Worker     sei_fgc_params_t s_sei_fgc_params;
471*495ae853SAndroid Build Coastguard Worker };
472*495ae853SAndroid Build Coastguard Worker typedef struct _sei sei;
473*495ae853SAndroid Build Coastguard Worker 
474*495ae853SAndroid Build Coastguard Worker WORD32 ih264d_export_sei_mdcv_params(ivd_sei_decode_op_t *ps_sei_decode_op,
475*495ae853SAndroid Build Coastguard Worker                                      sei *ps_sei, sei *ps_sei_export);
476*495ae853SAndroid Build Coastguard Worker 
477*495ae853SAndroid Build Coastguard Worker WORD32 ih264d_export_sei_cll_params(ivd_sei_decode_op_t *ps_sei_decode_op,
478*495ae853SAndroid Build Coastguard Worker                                     sei *ps_sei, sei *ps_sei_export);
479*495ae853SAndroid Build Coastguard Worker 
480*495ae853SAndroid Build Coastguard Worker WORD32 ih264d_export_sei_ave_params(ivd_sei_decode_op_t *ps_sei_decode_op,
481*495ae853SAndroid Build Coastguard Worker                                     sei *ps_sei, sei *ps_sei_export);
482*495ae853SAndroid Build Coastguard Worker 
483*495ae853SAndroid Build Coastguard Worker WORD32 ih264d_export_sei_ccv_params(ivd_sei_decode_op_t *ps_sei_decode_op,
484*495ae853SAndroid Build Coastguard Worker                                     sei *ps_sei, sei *ps_sei_export);
485*495ae853SAndroid Build Coastguard Worker 
486*495ae853SAndroid Build Coastguard Worker WORD32 ih264d_export_sei_sii_params(ivd_sei_decode_op_t *ps_sei_decode_op, sei *ps_sei,
487*495ae853SAndroid Build Coastguard Worker                                     sei *ps_sei_export);
488*495ae853SAndroid Build Coastguard Worker 
489*495ae853SAndroid Build Coastguard Worker WORD32 ih264d_export_sei_fgc_params(ivd_sei_decode_op_t *ps_sei_decode_op, sei *ps_sei,
490*495ae853SAndroid Build Coastguard Worker                                     sei *ps_sei_export);
491*495ae853SAndroid Build Coastguard Worker 
492*495ae853SAndroid Build Coastguard Worker #endif /* _IH264D_SEI_H_ */
493*495ae853SAndroid Build Coastguard Worker 
494