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