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