1*495ae853SAndroid Build Coastguard Worker /****************************************************************************** 2*495ae853SAndroid Build Coastguard Worker * 3*495ae853SAndroid Build Coastguard Worker * Copyright (C) 2022 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 23*495ae853SAndroid Build Coastguard Worker * isvcd.h 24*495ae853SAndroid Build Coastguard Worker * 25*495ae853SAndroid Build Coastguard Worker * @brief 26*495ae853SAndroid Build Coastguard Worker * This file contains all the necessary structure and enumeration definitions 27*495ae853SAndroid Build Coastguard Worker * needed for the Application. 28*495ae853SAndroid Build Coastguard Worker * Program Interface(API) of the Ittiam SVC ASP 29*495ae853SAndroid Build Coastguard Worker * Decoder on Cortex A8 - Neon platform 30*495ae853SAndroid Build Coastguard Worker * 31*495ae853SAndroid Build Coastguard Worker * @author 32*495ae853SAndroid Build Coastguard Worker * Kishore 33*495ae853SAndroid Build Coastguard Worker * 34*495ae853SAndroid Build Coastguard Worker * @remarks 35*495ae853SAndroid Build Coastguard Worker * None 36*495ae853SAndroid Build Coastguard Worker * 37*495ae853SAndroid Build Coastguard Worker ******************************************************************************* 38*495ae853SAndroid Build Coastguard Worker */ 39*495ae853SAndroid Build Coastguard Worker 40*495ae853SAndroid Build Coastguard Worker #ifndef _ISVCD_H_ 41*495ae853SAndroid Build Coastguard Worker #define _ISVCD_H_ 42*495ae853SAndroid Build Coastguard Worker #ifdef __cplusplus 43*495ae853SAndroid Build Coastguard Worker extern "C" 44*495ae853SAndroid Build Coastguard Worker { 45*495ae853SAndroid Build Coastguard Worker #endif 46*495ae853SAndroid Build Coastguard Worker 47*495ae853SAndroid Build Coastguard Worker #include "iv.h" 48*495ae853SAndroid Build Coastguard Worker #include "ivd.h" 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 /* API Function Prototype */ 70*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 71*495ae853SAndroid Build Coastguard Worker IV_API_CALL_STATUS_T isvcd_api_function(iv_obj_t *ps_handle, void *pv_api_ip, void *pv_api_op); 72*495ae853SAndroid Build Coastguard Worker 73*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 74*495ae853SAndroid Build Coastguard Worker /* Enums */ 75*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 76*495ae853SAndroid Build Coastguard Worker /* Codec Error codes for SVC ASP Decoder */ 77*495ae853SAndroid Build Coastguard Worker 78*495ae853SAndroid Build Coastguard Worker typedef enum 79*495ae853SAndroid Build Coastguard Worker { 80*495ae853SAndroid Build Coastguard Worker 81*495ae853SAndroid Build Coastguard Worker ISVCD_VID_HDR_DEC_NUM_FRM_BUF_NOT_SUFFICIENT = IVD_DUMMY_ELEMENT_FOR_CODEC_EXTENSIONS + 1, 82*495ae853SAndroid Build Coastguard Worker ISVCD_FRAME_INFO_OP_BUF_NULL, 83*495ae853SAndroid Build Coastguard Worker ISVCD_INSUFFICIENT_METADATA_BUFFER, 84*495ae853SAndroid Build Coastguard Worker 85*495ae853SAndroid Build Coastguard Worker } ISVCD_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 /* Delete Codec */ 93*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 94*495ae853SAndroid Build Coastguard Worker 95*495ae853SAndroid Build Coastguard Worker typedef struct 96*495ae853SAndroid Build Coastguard Worker { 97*495ae853SAndroid Build Coastguard Worker ivd_delete_ip_t s_ivd_delete_ip_t; 98*495ae853SAndroid Build Coastguard Worker } isvcd_delete_ip_t; 99*495ae853SAndroid Build Coastguard Worker 100*495ae853SAndroid Build Coastguard Worker typedef struct 101*495ae853SAndroid Build Coastguard Worker { 102*495ae853SAndroid Build Coastguard Worker ivd_delete_op_t s_ivd_delete_op_t; 103*495ae853SAndroid Build Coastguard Worker } isvcd_delete_op_t; 104*495ae853SAndroid Build Coastguard Worker 105*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 106*495ae853SAndroid Build Coastguard Worker /* Initialize decoder */ 107*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 108*495ae853SAndroid Build Coastguard Worker 109*495ae853SAndroid Build Coastguard Worker typedef struct 110*495ae853SAndroid Build Coastguard Worker { 111*495ae853SAndroid Build Coastguard Worker ivd_create_ip_t s_ivd_create_ip_t; 112*495ae853SAndroid Build Coastguard Worker /** 113*495ae853SAndroid Build Coastguard Worker * enable_frm_info 114*495ae853SAndroid Build Coastguard Worker */ 115*495ae853SAndroid Build Coastguard Worker UWORD32 u4_enable_frame_info; 116*495ae853SAndroid Build Coastguard Worker } isvcd_create_ip_t; 117*495ae853SAndroid Build Coastguard Worker 118*495ae853SAndroid Build Coastguard Worker typedef struct 119*495ae853SAndroid Build Coastguard Worker { 120*495ae853SAndroid Build Coastguard Worker ivd_create_op_t s_ivd_create_op_t; 121*495ae853SAndroid Build Coastguard Worker } isvcd_create_op_t; 122*495ae853SAndroid Build Coastguard Worker 123*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 124*495ae853SAndroid Build Coastguard Worker /* Video Decode */ 125*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 126*495ae853SAndroid Build Coastguard Worker 127*495ae853SAndroid Build Coastguard Worker typedef struct 128*495ae853SAndroid Build Coastguard Worker { 129*495ae853SAndroid Build Coastguard Worker ivd_video_decode_ip_t s_ivd_video_decode_ip_t; 130*495ae853SAndroid Build Coastguard Worker /** 131*495ae853SAndroid Build Coastguard Worker * 8x8 block QP map size 132*495ae853SAndroid Build Coastguard Worker */ 133*495ae853SAndroid Build Coastguard Worker UWORD32 u4_8x8_blk_qp_map_size; 134*495ae853SAndroid Build Coastguard Worker 135*495ae853SAndroid Build Coastguard Worker /** 136*495ae853SAndroid Build Coastguard Worker * 8x8 block QP map 137*495ae853SAndroid Build Coastguard Worker */ 138*495ae853SAndroid Build Coastguard Worker UWORD8 *pu1_8x8_blk_qp_map; 139*495ae853SAndroid Build Coastguard Worker 140*495ae853SAndroid Build Coastguard Worker /** 141*495ae853SAndroid Build Coastguard Worker * 8x8 block type map size 142*495ae853SAndroid Build Coastguard Worker */ 143*495ae853SAndroid Build Coastguard Worker UWORD32 u4_8x8_blk_type_map_size; 144*495ae853SAndroid Build Coastguard Worker 145*495ae853SAndroid Build Coastguard Worker /** 146*495ae853SAndroid Build Coastguard Worker * 8x8 block type map 147*495ae853SAndroid Build Coastguard Worker */ 148*495ae853SAndroid Build Coastguard Worker UWORD8 *pu1_8x8_blk_type_map; 149*495ae853SAndroid Build Coastguard Worker } isvcd_video_decode_ip_t; 150*495ae853SAndroid Build Coastguard Worker 151*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 152*495ae853SAndroid Build Coastguard Worker /* QP and block type maps are defined for each 8x8 MB sub-block. */ 153*495ae853SAndroid Build Coastguard Worker /* QP can range from <0, 51> and block type can be INTER/INTRA/SKIP. */ 154*495ae853SAndroid Build Coastguard Worker /* */ 155*495ae853SAndroid Build Coastguard Worker /* Let’s say, a frame has a total of ‘m’ MBs (each 16x16). Since the QP */ 156*495ae853SAndroid Build Coastguard Worker /* and block type are defined for each 8x8 block, hence each MB has */ 157*495ae853SAndroid Build Coastguard Worker /* 4 entries giving m x 4 total entires for QP and block type map each. */ 158*495ae853SAndroid Build Coastguard Worker /* */ 159*495ae853SAndroid Build Coastguard Worker /* For example, for a frame of size 60x60 shown in the figure down, both */ 160*495ae853SAndroid Build Coastguard Worker /* maps (QP and MB type) have the same layout. */ 161*495ae853SAndroid Build Coastguard Worker /* Each block represents an 8x8 sub-block. Both width and height are aligned */ 162*495ae853SAndroid Build Coastguard Worker /* to next largest multiple of 8, 64 in this case. */ 163*495ae853SAndroid Build Coastguard Worker /* */ 164*495ae853SAndroid Build Coastguard Worker /* 0 8 16 24 32 40 48 56 64 */ 165*495ae853SAndroid Build Coastguard Worker /* 0 ------------------------------------------------ */ 166*495ae853SAndroid Build Coastguard Worker /* | 0th | 1st | 2nd | 3rd | 4th | 5th | 6th | 7th | */ 167*495ae853SAndroid Build Coastguard Worker /* 8 ------------------------------------------------ */ 168*495ae853SAndroid Build Coastguard Worker /* | 8th | 9th | 10th | - | - | - | - | - | */ 169*495ae853SAndroid Build Coastguard Worker /* 16 ------------------------------------------------ */ 170*495ae853SAndroid Build Coastguard Worker /* | - | - | - | - | - | - | - | - | */ 171*495ae853SAndroid Build Coastguard Worker /* 24 ------------------------------------------------ */ 172*495ae853SAndroid Build Coastguard Worker /* | - | - | - | - | - | - | - | - | */ 173*495ae853SAndroid Build Coastguard Worker /* 32 ------------------------------------------------ */ 174*495ae853SAndroid Build Coastguard Worker /* | - | - | - | - | - | - | - | - | */ 175*495ae853SAndroid Build Coastguard Worker /* 40 ------------------------------------------------ */ 176*495ae853SAndroid Build Coastguard Worker /* | - | - | - | - | - | - | - | - | */ 177*495ae853SAndroid Build Coastguard Worker /* 48 ------------------------------------------------ */ 178*495ae853SAndroid Build Coastguard Worker /* | - | - | - | - | - | - | - | - | */ 179*495ae853SAndroid Build Coastguard Worker /* 56 ------------------------------------------------ */ 180*495ae853SAndroid Build Coastguard Worker /* | - | - | - | - | - | - | - | - | */ 181*495ae853SAndroid Build Coastguard Worker /* 64 ------------------------------------------------ */ 182*495ae853SAndroid Build Coastguard Worker /* */ 183*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 184*495ae853SAndroid Build Coastguard Worker 185*495ae853SAndroid Build Coastguard Worker typedef struct 186*495ae853SAndroid Build Coastguard Worker { 187*495ae853SAndroid Build Coastguard Worker ivd_video_decode_op_t s_ivd_video_decode_op_t; 188*495ae853SAndroid Build Coastguard Worker 189*495ae853SAndroid Build Coastguard Worker /** 190*495ae853SAndroid Build Coastguard Worker * 8x8 block QP map size 191*495ae853SAndroid Build Coastguard Worker */ 192*495ae853SAndroid Build Coastguard Worker UWORD32 u4_8x8_blk_qp_map_size; 193*495ae853SAndroid Build Coastguard Worker 194*495ae853SAndroid Build Coastguard Worker /** 195*495ae853SAndroid Build Coastguard Worker * 8x8 block QP map 196*495ae853SAndroid Build Coastguard Worker */ 197*495ae853SAndroid Build Coastguard Worker UWORD8 *pu1_8x8_blk_qp_map; 198*495ae853SAndroid Build Coastguard Worker 199*495ae853SAndroid Build Coastguard Worker /** 200*495ae853SAndroid Build Coastguard Worker * 8x8 block type map size 201*495ae853SAndroid Build Coastguard Worker */ 202*495ae853SAndroid Build Coastguard Worker UWORD32 u4_8x8_blk_type_map_size; 203*495ae853SAndroid Build Coastguard Worker 204*495ae853SAndroid Build Coastguard Worker /** 205*495ae853SAndroid Build Coastguard Worker * 8x8 block type map 206*495ae853SAndroid Build Coastguard Worker */ 207*495ae853SAndroid Build Coastguard Worker UWORD8 *pu1_8x8_blk_type_map; 208*495ae853SAndroid Build Coastguard Worker 209*495ae853SAndroid Build Coastguard Worker } isvcd_video_decode_op_t; 210*495ae853SAndroid Build Coastguard Worker 211*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 212*495ae853SAndroid Build Coastguard Worker /* Get Display Frame */ 213*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 214*495ae853SAndroid Build Coastguard Worker 215*495ae853SAndroid Build Coastguard Worker typedef struct 216*495ae853SAndroid Build Coastguard Worker { 217*495ae853SAndroid Build Coastguard Worker ivd_get_display_frame_ip_t s_ivd_get_display_frame_ip_t; 218*495ae853SAndroid Build Coastguard Worker } isvcd_get_display_frame_ip_t; 219*495ae853SAndroid Build Coastguard Worker 220*495ae853SAndroid Build Coastguard Worker typedef struct 221*495ae853SAndroid Build Coastguard Worker { 222*495ae853SAndroid Build Coastguard Worker ivd_get_display_frame_op_t s_ivd_get_display_frame_op_t; 223*495ae853SAndroid Build Coastguard Worker } isvcd_get_display_frame_op_t; 224*495ae853SAndroid Build Coastguard Worker 225*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 226*495ae853SAndroid Build Coastguard Worker /* Set Display Frame */ 227*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 228*495ae853SAndroid Build Coastguard Worker 229*495ae853SAndroid Build Coastguard Worker typedef struct 230*495ae853SAndroid Build Coastguard Worker { 231*495ae853SAndroid Build Coastguard Worker ivd_set_display_frame_ip_t s_ivd_set_display_frame_ip_t; 232*495ae853SAndroid Build Coastguard Worker } isvcd_set_display_frame_ip_t; 233*495ae853SAndroid Build Coastguard Worker 234*495ae853SAndroid Build Coastguard Worker typedef struct 235*495ae853SAndroid Build Coastguard Worker { 236*495ae853SAndroid Build Coastguard Worker ivd_set_display_frame_op_t s_ivd_set_display_frame_op_t; 237*495ae853SAndroid Build Coastguard Worker } isvcd_set_display_frame_op_t; 238*495ae853SAndroid Build Coastguard Worker 239*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 240*495ae853SAndroid Build Coastguard Worker /* Release Display Buffers */ 241*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 242*495ae853SAndroid Build Coastguard Worker 243*495ae853SAndroid Build Coastguard Worker typedef struct 244*495ae853SAndroid Build Coastguard Worker { 245*495ae853SAndroid Build Coastguard Worker ivd_rel_display_frame_ip_t s_ivd_rel_display_frame_ip_t; 246*495ae853SAndroid Build Coastguard Worker } isvcd_rel_display_frame_ip_t; 247*495ae853SAndroid Build Coastguard Worker 248*495ae853SAndroid Build Coastguard Worker typedef struct 249*495ae853SAndroid Build Coastguard Worker { 250*495ae853SAndroid Build Coastguard Worker ivd_rel_display_frame_op_t s_ivd_rel_display_frame_op_t; 251*495ae853SAndroid Build Coastguard Worker } isvcd_rel_display_frame_op_t; 252*495ae853SAndroid Build Coastguard Worker 253*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 254*495ae853SAndroid Build Coastguard Worker /* Set Target Layer for SVC */ 255*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 256*495ae853SAndroid Build Coastguard Worker 257*495ae853SAndroid Build Coastguard Worker /* IVD_API_COMMAND_TYPE_T::e_cmd = ISVCD_CMD_CTL_SET_TGT_LAYER */ 258*495ae853SAndroid Build Coastguard Worker 259*495ae853SAndroid Build Coastguard Worker typedef struct 260*495ae853SAndroid Build Coastguard Worker { 261*495ae853SAndroid Build Coastguard Worker /** 262*495ae853SAndroid Build Coastguard Worker * u4_size of the structure 263*495ae853SAndroid Build Coastguard Worker */ 264*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 265*495ae853SAndroid Build Coastguard Worker 266*495ae853SAndroid Build Coastguard Worker /** 267*495ae853SAndroid Build Coastguard Worker * e_cmd 268*495ae853SAndroid Build Coastguard Worker */ 269*495ae853SAndroid Build Coastguard Worker IVD_API_COMMAND_TYPE_T e_cmd; 270*495ae853SAndroid Build Coastguard Worker 271*495ae853SAndroid Build Coastguard Worker IVD_CONTROL_API_COMMAND_TYPE_T e_sub_cmd; 272*495ae853SAndroid Build Coastguard Worker 273*495ae853SAndroid Build Coastguard Worker /** 274*495ae853SAndroid Build Coastguard Worker * set the tgt dependency id 275*495ae853SAndroid Build Coastguard Worker */ 276*495ae853SAndroid Build Coastguard Worker UWORD8 u1_tgt_dep_id; 277*495ae853SAndroid Build Coastguard Worker 278*495ae853SAndroid Build Coastguard Worker /** 279*495ae853SAndroid Build Coastguard Worker * set the tgt quality id 280*495ae853SAndroid Build Coastguard Worker */ 281*495ae853SAndroid Build Coastguard Worker UWORD8 u1_tgt_quality_id; 282*495ae853SAndroid Build Coastguard Worker 283*495ae853SAndroid Build Coastguard Worker /** 284*495ae853SAndroid Build Coastguard Worker * set the tgt temporal id 285*495ae853SAndroid Build Coastguard Worker */ 286*495ae853SAndroid Build Coastguard Worker UWORD8 u1_tgt_temp_id; 287*495ae853SAndroid Build Coastguard Worker 288*495ae853SAndroid Build Coastguard Worker /** 289*495ae853SAndroid Build Coastguard Worker * set the tgt priority id 290*495ae853SAndroid Build Coastguard Worker */ 291*495ae853SAndroid Build Coastguard Worker UWORD8 u1_tgt_priority_id; 292*495ae853SAndroid Build Coastguard Worker 293*495ae853SAndroid Build Coastguard Worker } isvcd_set_target_layer_ip_t; 294*495ae853SAndroid Build Coastguard Worker 295*495ae853SAndroid Build Coastguard Worker typedef struct 296*495ae853SAndroid Build Coastguard Worker { 297*495ae853SAndroid Build Coastguard Worker /** 298*495ae853SAndroid Build Coastguard Worker * u4_size of the structure 299*495ae853SAndroid Build Coastguard Worker */ 300*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 301*495ae853SAndroid Build Coastguard Worker 302*495ae853SAndroid Build Coastguard Worker /** 303*495ae853SAndroid Build Coastguard Worker * error code 304*495ae853SAndroid Build Coastguard Worker */ 305*495ae853SAndroid Build Coastguard Worker UWORD32 u4_error_code; 306*495ae853SAndroid Build Coastguard Worker 307*495ae853SAndroid Build Coastguard Worker } isvcd_set_target_layer_op_t; 308*495ae853SAndroid Build Coastguard Worker 309*495ae853SAndroid Build Coastguard Worker typedef enum 310*495ae853SAndroid Build Coastguard Worker { 311*495ae853SAndroid Build Coastguard Worker 312*495ae853SAndroid Build Coastguard Worker /* Set TGT Layer for SVC */ 313*495ae853SAndroid Build Coastguard Worker ISVCD_CMD_CTL_SET_TGT_LAYER = IVD_CMD_CTL_CODEC_SUBCMD_START + 0x305 314*495ae853SAndroid Build Coastguard Worker 315*495ae853SAndroid Build Coastguard Worker } ISVCD_CMD_CTL_SUB_CMDS; 316*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 317*495ae853SAndroid Build Coastguard Worker /* Video control Flush */ 318*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 319*495ae853SAndroid Build Coastguard Worker 320*495ae853SAndroid Build Coastguard Worker typedef struct 321*495ae853SAndroid Build Coastguard Worker { 322*495ae853SAndroid Build Coastguard Worker ivd_ctl_flush_ip_t s_ivd_ctl_flush_ip_t; 323*495ae853SAndroid Build Coastguard Worker } isvcd_ctl_flush_ip_t; 324*495ae853SAndroid Build Coastguard Worker 325*495ae853SAndroid Build Coastguard Worker typedef struct 326*495ae853SAndroid Build Coastguard Worker { 327*495ae853SAndroid Build Coastguard Worker ivd_ctl_flush_op_t s_ivd_ctl_flush_op_t; 328*495ae853SAndroid Build Coastguard Worker } isvcd_ctl_flush_op_t; 329*495ae853SAndroid Build Coastguard Worker 330*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 331*495ae853SAndroid Build Coastguard Worker /* Video control reset */ 332*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 333*495ae853SAndroid Build Coastguard Worker 334*495ae853SAndroid Build Coastguard Worker typedef struct 335*495ae853SAndroid Build Coastguard Worker { 336*495ae853SAndroid Build Coastguard Worker ivd_ctl_reset_ip_t s_ivd_ctl_reset_ip_t; 337*495ae853SAndroid Build Coastguard Worker } isvcd_ctl_reset_ip_t; 338*495ae853SAndroid Build Coastguard Worker 339*495ae853SAndroid Build Coastguard Worker typedef struct 340*495ae853SAndroid Build Coastguard Worker { 341*495ae853SAndroid Build Coastguard Worker ivd_ctl_reset_op_t s_ivd_ctl_reset_op_t; 342*495ae853SAndroid Build Coastguard Worker } isvcd_ctl_reset_op_t; 343*495ae853SAndroid Build Coastguard Worker 344*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 345*495ae853SAndroid Build Coastguard Worker /* Video control Set Params */ 346*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 347*495ae853SAndroid Build Coastguard Worker 348*495ae853SAndroid Build Coastguard Worker typedef struct 349*495ae853SAndroid Build Coastguard Worker { 350*495ae853SAndroid Build Coastguard Worker ivd_ctl_set_config_ip_t s_ivd_ctl_set_config_ip_t; 351*495ae853SAndroid Build Coastguard Worker } isvcd_ctl_set_config_ip_t; 352*495ae853SAndroid Build Coastguard Worker 353*495ae853SAndroid Build Coastguard Worker typedef struct 354*495ae853SAndroid Build Coastguard Worker { 355*495ae853SAndroid Build Coastguard Worker ivd_ctl_set_config_op_t s_ivd_ctl_set_config_op_t; 356*495ae853SAndroid Build Coastguard Worker } isvcd_ctl_set_config_op_t; 357*495ae853SAndroid Build Coastguard Worker 358*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 359*495ae853SAndroid Build Coastguard Worker /* Video control:Get Buf Info */ 360*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 361*495ae853SAndroid Build Coastguard Worker 362*495ae853SAndroid Build Coastguard Worker typedef struct 363*495ae853SAndroid Build Coastguard Worker { 364*495ae853SAndroid Build Coastguard Worker ivd_ctl_getbufinfo_ip_t s_ivd_ctl_getbufinfo_ip_t; 365*495ae853SAndroid Build Coastguard Worker } isvcd_ctl_getbufinfo_ip_t; 366*495ae853SAndroid Build Coastguard Worker 367*495ae853SAndroid Build Coastguard Worker typedef struct 368*495ae853SAndroid Build Coastguard Worker { 369*495ae853SAndroid Build Coastguard Worker ivd_ctl_getbufinfo_op_t s_ivd_ctl_getbufinfo_op_t; 370*495ae853SAndroid Build Coastguard Worker } isvcd_ctl_getbufinfo_op_t; 371*495ae853SAndroid Build Coastguard Worker 372*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 373*495ae853SAndroid Build Coastguard Worker /* Video control:Getstatus Call */ 374*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 375*495ae853SAndroid Build Coastguard Worker 376*495ae853SAndroid Build Coastguard Worker typedef struct 377*495ae853SAndroid Build Coastguard Worker { 378*495ae853SAndroid Build Coastguard Worker ivd_ctl_getstatus_ip_t s_ivd_ctl_getstatus_ip_t; 379*495ae853SAndroid Build Coastguard Worker } isvcd_ctl_getstatus_ip_t; 380*495ae853SAndroid Build Coastguard Worker 381*495ae853SAndroid Build Coastguard Worker typedef struct 382*495ae853SAndroid Build Coastguard Worker { 383*495ae853SAndroid Build Coastguard Worker ivd_ctl_getstatus_op_t s_ivd_ctl_getstatus_op_t; 384*495ae853SAndroid Build Coastguard Worker } isvcd_ctl_getstatus_op_t; 385*495ae853SAndroid Build Coastguard Worker 386*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 387*495ae853SAndroid Build Coastguard Worker /* Video control:Get Version Info */ 388*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 389*495ae853SAndroid Build Coastguard Worker 390*495ae853SAndroid Build Coastguard Worker typedef struct 391*495ae853SAndroid Build Coastguard Worker { 392*495ae853SAndroid Build Coastguard Worker ivd_ctl_getversioninfo_ip_t s_ivd_ctl_getversioninfo_ip_t; 393*495ae853SAndroid Build Coastguard Worker } isvcd_ctl_getversioninfo_ip_t; 394*495ae853SAndroid Build Coastguard Worker 395*495ae853SAndroid Build Coastguard Worker typedef struct 396*495ae853SAndroid Build Coastguard Worker { 397*495ae853SAndroid Build Coastguard Worker ivd_ctl_getversioninfo_op_t s_ivd_ctl_getversioninfo_op_t; 398*495ae853SAndroid Build Coastguard Worker } isvcd_ctl_getversioninfo_op_t; 399*495ae853SAndroid Build Coastguard Worker 400*495ae853SAndroid Build Coastguard Worker typedef struct 401*495ae853SAndroid Build Coastguard Worker { 402*495ae853SAndroid Build Coastguard Worker /** 403*495ae853SAndroid Build Coastguard Worker * u4_size 404*495ae853SAndroid Build Coastguard Worker */ 405*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 406*495ae853SAndroid Build Coastguard Worker 407*495ae853SAndroid Build Coastguard Worker /** 408*495ae853SAndroid Build Coastguard Worker * cmd 409*495ae853SAndroid Build Coastguard Worker */ 410*495ae853SAndroid Build Coastguard Worker IVD_API_COMMAND_TYPE_T e_cmd; 411*495ae853SAndroid Build Coastguard Worker 412*495ae853SAndroid Build Coastguard Worker /** 413*495ae853SAndroid Build Coastguard Worker * sub_cmd 414*495ae853SAndroid Build Coastguard Worker */ 415*495ae853SAndroid Build Coastguard Worker IVD_CONTROL_API_COMMAND_TYPE_T e_sub_cmd; 416*495ae853SAndroid Build Coastguard Worker 417*495ae853SAndroid Build Coastguard Worker /** 418*495ae853SAndroid Build Coastguard Worker * Pictures that are are degraded 419*495ae853SAndroid Build Coastguard Worker * 0 : No degrade 420*495ae853SAndroid Build Coastguard Worker * 1 : Only on non-reference frames 421*495ae853SAndroid Build Coastguard Worker * 2 : Use interval specified by u4_nondegrade_interval 422*495ae853SAndroid Build Coastguard Worker * 3 : All non-key frames 423*495ae853SAndroid Build Coastguard Worker * 4 : All frames 424*495ae853SAndroid Build Coastguard Worker */ 425*495ae853SAndroid Build Coastguard Worker WORD32 i4_degrade_pics; 426*495ae853SAndroid Build Coastguard Worker 427*495ae853SAndroid Build Coastguard Worker /** 428*495ae853SAndroid Build Coastguard Worker * Interval for pictures which are completely decoded without any degradation 429*495ae853SAndroid Build Coastguard Worker */ 430*495ae853SAndroid Build Coastguard Worker WORD32 i4_nondegrade_interval; 431*495ae853SAndroid Build Coastguard Worker 432*495ae853SAndroid Build Coastguard Worker /** 433*495ae853SAndroid Build Coastguard Worker * bit position (lsb is zero): Type of degradation 434*495ae853SAndroid Build Coastguard Worker * 1 : Disable deblocking 435*495ae853SAndroid Build Coastguard Worker * 2 : Faster inter prediction filters 436*495ae853SAndroid Build Coastguard Worker * 3 : Fastest inter prediction filters 437*495ae853SAndroid Build Coastguard Worker */ 438*495ae853SAndroid Build Coastguard Worker WORD32 i4_degrade_type; 439*495ae853SAndroid Build Coastguard Worker 440*495ae853SAndroid Build Coastguard Worker } isvcd_ctl_degrade_ip_t; 441*495ae853SAndroid Build Coastguard Worker 442*495ae853SAndroid Build Coastguard Worker typedef struct 443*495ae853SAndroid Build Coastguard Worker { 444*495ae853SAndroid Build Coastguard Worker /** 445*495ae853SAndroid Build Coastguard Worker * u4_size 446*495ae853SAndroid Build Coastguard Worker */ 447*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 448*495ae853SAndroid Build Coastguard Worker 449*495ae853SAndroid Build Coastguard Worker /** 450*495ae853SAndroid Build Coastguard Worker * error_code 451*495ae853SAndroid Build Coastguard Worker */ 452*495ae853SAndroid Build Coastguard Worker UWORD32 u4_error_code; 453*495ae853SAndroid Build Coastguard Worker } isvcd_ctl_degrade_op_t; 454*495ae853SAndroid Build Coastguard Worker 455*495ae853SAndroid Build Coastguard Worker typedef struct 456*495ae853SAndroid Build Coastguard Worker { 457*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 458*495ae853SAndroid Build Coastguard Worker IVD_API_COMMAND_TYPE_T e_cmd; 459*495ae853SAndroid Build Coastguard Worker IVD_CONTROL_API_COMMAND_TYPE_T e_sub_cmd; 460*495ae853SAndroid Build Coastguard Worker UWORD32 u4_disable_deblk_level; 461*495ae853SAndroid Build Coastguard Worker } isvcd_ctl_disable_deblock_ip_t; 462*495ae853SAndroid Build Coastguard Worker 463*495ae853SAndroid Build Coastguard Worker typedef struct 464*495ae853SAndroid Build Coastguard Worker { 465*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 466*495ae853SAndroid Build Coastguard Worker UWORD32 u4_error_code; 467*495ae853SAndroid Build Coastguard Worker } isvcd_ctl_disable_deblock_op_t; 468*495ae853SAndroid Build Coastguard Worker 469*495ae853SAndroid Build Coastguard Worker typedef struct 470*495ae853SAndroid Build Coastguard Worker { 471*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 472*495ae853SAndroid Build Coastguard Worker IVD_API_COMMAND_TYPE_T e_cmd; 473*495ae853SAndroid Build Coastguard Worker IVD_CONTROL_API_COMMAND_TYPE_T e_sub_cmd; 474*495ae853SAndroid Build Coastguard Worker UWORD32 u4_num_cores; 475*495ae853SAndroid Build Coastguard Worker } isvcd_ctl_set_num_cores_ip_t; 476*495ae853SAndroid Build Coastguard Worker 477*495ae853SAndroid Build Coastguard Worker typedef struct 478*495ae853SAndroid Build Coastguard Worker { 479*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 480*495ae853SAndroid Build Coastguard Worker UWORD32 u4_error_code; 481*495ae853SAndroid Build Coastguard Worker } isvcd_ctl_set_num_cores_op_t; 482*495ae853SAndroid Build Coastguard Worker 483*495ae853SAndroid Build Coastguard Worker typedef struct 484*495ae853SAndroid Build Coastguard Worker { 485*495ae853SAndroid Build Coastguard Worker /** 486*495ae853SAndroid Build Coastguard Worker * i4_size 487*495ae853SAndroid Build Coastguard Worker */ 488*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 489*495ae853SAndroid Build Coastguard Worker /** 490*495ae853SAndroid Build Coastguard Worker * cmd 491*495ae853SAndroid Build Coastguard Worker */ 492*495ae853SAndroid Build Coastguard Worker IVD_API_COMMAND_TYPE_T e_cmd; 493*495ae853SAndroid Build Coastguard Worker /** 494*495ae853SAndroid Build Coastguard Worker * sub cmd 495*495ae853SAndroid Build Coastguard Worker */ 496*495ae853SAndroid Build Coastguard Worker IVD_CONTROL_API_COMMAND_TYPE_T e_sub_cmd; 497*495ae853SAndroid Build Coastguard Worker /** 498*495ae853SAndroid Build Coastguard Worker * Processor type 499*495ae853SAndroid Build Coastguard Worker */ 500*495ae853SAndroid Build Coastguard Worker UWORD32 u4_arch; 501*495ae853SAndroid Build Coastguard Worker /** 502*495ae853SAndroid Build Coastguard Worker * SOC type 503*495ae853SAndroid Build Coastguard Worker */ 504*495ae853SAndroid Build Coastguard Worker UWORD32 u4_soc; 505*495ae853SAndroid Build Coastguard Worker 506*495ae853SAndroid Build Coastguard Worker /** 507*495ae853SAndroid Build Coastguard Worker * num_cores 508*495ae853SAndroid Build Coastguard Worker */ 509*495ae853SAndroid Build Coastguard Worker UWORD32 u4_num_cores; 510*495ae853SAndroid Build Coastguard Worker 511*495ae853SAndroid Build Coastguard Worker } isvcd_ctl_set_processor_ip_t; 512*495ae853SAndroid Build Coastguard Worker 513*495ae853SAndroid Build Coastguard Worker typedef struct 514*495ae853SAndroid Build Coastguard Worker { 515*495ae853SAndroid Build Coastguard Worker /** 516*495ae853SAndroid Build Coastguard Worker * i4_size 517*495ae853SAndroid Build Coastguard Worker */ 518*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 519*495ae853SAndroid Build Coastguard Worker /** 520*495ae853SAndroid Build Coastguard Worker * error_code 521*495ae853SAndroid Build Coastguard Worker */ 522*495ae853SAndroid Build Coastguard Worker UWORD32 u4_error_code; 523*495ae853SAndroid Build Coastguard Worker } isvcd_ctl_set_processor_op_t; 524*495ae853SAndroid Build Coastguard Worker 525*495ae853SAndroid Build Coastguard Worker typedef struct 526*495ae853SAndroid Build Coastguard Worker { 527*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 528*495ae853SAndroid Build Coastguard Worker IVD_API_COMMAND_TYPE_T e_cmd; 529*495ae853SAndroid Build Coastguard Worker IVD_CONTROL_API_COMMAND_TYPE_T e_sub_cmd; 530*495ae853SAndroid Build Coastguard Worker } isvcd_ctl_get_frame_dimensions_ip_t; 531*495ae853SAndroid Build Coastguard Worker 532*495ae853SAndroid Build Coastguard Worker typedef struct 533*495ae853SAndroid Build Coastguard Worker { 534*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 535*495ae853SAndroid Build Coastguard Worker UWORD32 u4_error_code; 536*495ae853SAndroid Build Coastguard Worker UWORD32 u4_x_offset[3]; 537*495ae853SAndroid Build Coastguard Worker UWORD32 u4_y_offset[3]; 538*495ae853SAndroid Build Coastguard Worker UWORD32 u4_disp_wd[3]; 539*495ae853SAndroid Build Coastguard Worker UWORD32 u4_disp_ht[3]; 540*495ae853SAndroid Build Coastguard Worker UWORD32 u4_buffer_wd[3]; 541*495ae853SAndroid Build Coastguard Worker UWORD32 u4_buffer_ht[3]; 542*495ae853SAndroid Build Coastguard Worker } isvcd_ctl_get_frame_dimensions_op_t; 543*495ae853SAndroid Build Coastguard Worker 544*495ae853SAndroid Build Coastguard Worker typedef struct 545*495ae853SAndroid Build Coastguard Worker { 546*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 547*495ae853SAndroid Build Coastguard Worker IVD_API_COMMAND_TYPE_T e_cmd; 548*495ae853SAndroid Build Coastguard Worker IVD_CONTROL_API_COMMAND_TYPE_T e_sub_cmd; 549*495ae853SAndroid Build Coastguard Worker } isvcd_ctl_get_vui_params_ip_t; 550*495ae853SAndroid Build Coastguard Worker 551*495ae853SAndroid Build Coastguard Worker typedef struct 552*495ae853SAndroid Build Coastguard Worker { 553*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 554*495ae853SAndroid Build Coastguard Worker UWORD32 u4_error_code; 555*495ae853SAndroid Build Coastguard Worker UWORD8 u1_aspect_ratio_idc; 556*495ae853SAndroid Build Coastguard Worker UWORD16 u2_sar_width; 557*495ae853SAndroid Build Coastguard Worker UWORD16 u2_sar_height; 558*495ae853SAndroid Build Coastguard Worker UWORD8 u1_overscan_appropriate_flag; 559*495ae853SAndroid Build Coastguard Worker UWORD8 u1_video_format; 560*495ae853SAndroid Build Coastguard Worker UWORD8 u1_video_full_range_flag; 561*495ae853SAndroid Build Coastguard Worker UWORD8 u1_colour_primaries; 562*495ae853SAndroid Build Coastguard Worker UWORD8 u1_tfr_chars; 563*495ae853SAndroid Build Coastguard Worker UWORD8 u1_matrix_coeffs; 564*495ae853SAndroid Build Coastguard Worker UWORD8 u1_cr_top_field; 565*495ae853SAndroid Build Coastguard Worker UWORD8 u1_cr_bottom_field; 566*495ae853SAndroid Build Coastguard Worker UWORD32 u4_num_units_in_tick; 567*495ae853SAndroid Build Coastguard Worker UWORD32 u4_time_scale; 568*495ae853SAndroid Build Coastguard Worker UWORD8 u1_fixed_frame_rate_flag; 569*495ae853SAndroid Build Coastguard Worker UWORD8 u1_nal_hrd_params_present; 570*495ae853SAndroid Build Coastguard Worker UWORD8 u1_vcl_hrd_params_present; 571*495ae853SAndroid Build Coastguard Worker UWORD8 u1_low_delay_hrd_flag; 572*495ae853SAndroid Build Coastguard Worker UWORD8 u1_pic_struct_present_flag; 573*495ae853SAndroid Build Coastguard Worker UWORD8 u1_bitstream_restriction_flag; 574*495ae853SAndroid Build Coastguard Worker UWORD8 u1_mv_over_pic_boundaries_flag; 575*495ae853SAndroid Build Coastguard Worker UWORD32 u4_max_bytes_per_pic_denom; 576*495ae853SAndroid Build Coastguard Worker UWORD32 u4_max_bits_per_mb_denom; 577*495ae853SAndroid Build Coastguard Worker UWORD32 u4_log2_max_mv_length_horz; 578*495ae853SAndroid Build Coastguard Worker UWORD32 u4_log2_max_mv_length_vert; 579*495ae853SAndroid Build Coastguard Worker UWORD32 u4_num_reorder_frames; 580*495ae853SAndroid Build Coastguard Worker UWORD32 u4_max_dec_frame_buffering; 581*495ae853SAndroid Build Coastguard Worker } isvcd_ctl_get_vui_params_op_t; 582*495ae853SAndroid Build Coastguard Worker 583*495ae853SAndroid Build Coastguard Worker typedef struct 584*495ae853SAndroid Build Coastguard Worker { 585*495ae853SAndroid Build Coastguard Worker /** 586*495ae853SAndroid Build Coastguard Worker * u4_size 587*495ae853SAndroid Build Coastguard Worker */ 588*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 589*495ae853SAndroid Build Coastguard Worker 590*495ae853SAndroid Build Coastguard Worker /** 591*495ae853SAndroid Build Coastguard Worker * cmd 592*495ae853SAndroid Build Coastguard Worker */ 593*495ae853SAndroid Build Coastguard Worker IVD_API_COMMAND_TYPE_T e_cmd; 594*495ae853SAndroid Build Coastguard Worker 595*495ae853SAndroid Build Coastguard Worker /** 596*495ae853SAndroid Build Coastguard Worker * sub_cmd 597*495ae853SAndroid Build Coastguard Worker */ 598*495ae853SAndroid Build Coastguard Worker IVD_CONTROL_API_COMMAND_TYPE_T e_sub_cmd; 599*495ae853SAndroid Build Coastguard Worker } isvcd_ctl_get_sei_mdcv_params_ip_t; 600*495ae853SAndroid Build Coastguard Worker 601*495ae853SAndroid Build Coastguard Worker typedef struct 602*495ae853SAndroid Build Coastguard Worker { 603*495ae853SAndroid Build Coastguard Worker /** 604*495ae853SAndroid Build Coastguard Worker * u4_size 605*495ae853SAndroid Build Coastguard Worker */ 606*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 607*495ae853SAndroid Build Coastguard Worker 608*495ae853SAndroid Build Coastguard Worker /** 609*495ae853SAndroid Build Coastguard Worker * error_code 610*495ae853SAndroid Build Coastguard Worker */ 611*495ae853SAndroid Build Coastguard Worker UWORD32 u4_error_code; 612*495ae853SAndroid Build Coastguard Worker 613*495ae853SAndroid Build Coastguard Worker /** 614*495ae853SAndroid Build Coastguard Worker * Array to store the display_primaries_x values 615*495ae853SAndroid Build Coastguard Worker */ 616*495ae853SAndroid Build Coastguard Worker UWORD16 au2_display_primaries_x[NUM_SEI_MDCV_PRIMARIES]; 617*495ae853SAndroid Build Coastguard Worker 618*495ae853SAndroid Build Coastguard Worker /** 619*495ae853SAndroid Build Coastguard Worker * Array to store the display_primaries_y values 620*495ae853SAndroid Build Coastguard Worker */ 621*495ae853SAndroid Build Coastguard Worker UWORD16 au2_display_primaries_y[NUM_SEI_MDCV_PRIMARIES]; 622*495ae853SAndroid Build Coastguard Worker 623*495ae853SAndroid Build Coastguard Worker /** 624*495ae853SAndroid Build Coastguard Worker * Variable to store the white point x value 625*495ae853SAndroid Build Coastguard Worker */ 626*495ae853SAndroid Build Coastguard Worker UWORD16 u2_white_point_x; 627*495ae853SAndroid Build Coastguard Worker 628*495ae853SAndroid Build Coastguard Worker /** 629*495ae853SAndroid Build Coastguard Worker * Variable to store the white point y value 630*495ae853SAndroid Build Coastguard Worker */ 631*495ae853SAndroid Build Coastguard Worker UWORD16 u2_white_point_y; 632*495ae853SAndroid Build Coastguard Worker 633*495ae853SAndroid Build Coastguard Worker /** 634*495ae853SAndroid Build Coastguard Worker * Variable to store the max display mastering luminance value 635*495ae853SAndroid Build Coastguard Worker */ 636*495ae853SAndroid Build Coastguard Worker UWORD32 u4_max_display_mastering_luminance; 637*495ae853SAndroid Build Coastguard Worker 638*495ae853SAndroid Build Coastguard Worker /** 639*495ae853SAndroid Build Coastguard Worker * Variable to store the min display mastering luminance value 640*495ae853SAndroid Build Coastguard Worker */ 641*495ae853SAndroid Build Coastguard Worker UWORD32 u4_min_display_mastering_luminance; 642*495ae853SAndroid Build Coastguard Worker } isvcd_ctl_get_sei_mdcv_params_op_t; 643*495ae853SAndroid Build Coastguard Worker 644*495ae853SAndroid Build Coastguard Worker typedef struct 645*495ae853SAndroid Build Coastguard Worker { 646*495ae853SAndroid Build Coastguard Worker /** 647*495ae853SAndroid Build Coastguard Worker * u4_size 648*495ae853SAndroid Build Coastguard Worker */ 649*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 650*495ae853SAndroid Build Coastguard Worker 651*495ae853SAndroid Build Coastguard Worker /** 652*495ae853SAndroid Build Coastguard Worker * cmd 653*495ae853SAndroid Build Coastguard Worker */ 654*495ae853SAndroid Build Coastguard Worker IVD_API_COMMAND_TYPE_T e_cmd; 655*495ae853SAndroid Build Coastguard Worker 656*495ae853SAndroid Build Coastguard Worker /** 657*495ae853SAndroid Build Coastguard Worker * sub_cmd 658*495ae853SAndroid Build Coastguard Worker */ 659*495ae853SAndroid Build Coastguard Worker IVD_CONTROL_API_COMMAND_TYPE_T e_sub_cmd; 660*495ae853SAndroid Build Coastguard Worker } isvcd_ctl_get_sei_cll_params_ip_t; 661*495ae853SAndroid Build Coastguard Worker 662*495ae853SAndroid Build Coastguard Worker typedef struct 663*495ae853SAndroid Build Coastguard Worker { 664*495ae853SAndroid Build Coastguard Worker /** 665*495ae853SAndroid Build Coastguard Worker * u4_size 666*495ae853SAndroid Build Coastguard Worker */ 667*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 668*495ae853SAndroid Build Coastguard Worker 669*495ae853SAndroid Build Coastguard Worker /** 670*495ae853SAndroid Build Coastguard Worker * error_code 671*495ae853SAndroid Build Coastguard Worker */ 672*495ae853SAndroid Build Coastguard Worker UWORD32 u4_error_code; 673*495ae853SAndroid Build Coastguard Worker 674*495ae853SAndroid Build Coastguard Worker /** 675*495ae853SAndroid Build Coastguard Worker * The maximum pixel intensity of all samples 676*495ae853SAndroid Build Coastguard Worker */ 677*495ae853SAndroid Build Coastguard Worker UWORD16 u2_max_content_light_level; 678*495ae853SAndroid Build Coastguard Worker 679*495ae853SAndroid Build Coastguard Worker /** 680*495ae853SAndroid Build Coastguard Worker * The average pixel intensity of all samples 681*495ae853SAndroid Build Coastguard Worker */ 682*495ae853SAndroid Build Coastguard Worker UWORD16 u2_max_pic_average_light_level; 683*495ae853SAndroid Build Coastguard Worker } isvcd_ctl_get_sei_cll_params_op_t; 684*495ae853SAndroid Build Coastguard Worker 685*495ae853SAndroid Build Coastguard Worker typedef struct 686*495ae853SAndroid Build Coastguard Worker { 687*495ae853SAndroid Build Coastguard Worker /** 688*495ae853SAndroid Build Coastguard Worker * u4_size 689*495ae853SAndroid Build Coastguard Worker */ 690*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 691*495ae853SAndroid Build Coastguard Worker 692*495ae853SAndroid Build Coastguard Worker /** 693*495ae853SAndroid Build Coastguard Worker * cmd 694*495ae853SAndroid Build Coastguard Worker */ 695*495ae853SAndroid Build Coastguard Worker IVD_API_COMMAND_TYPE_T e_cmd; 696*495ae853SAndroid Build Coastguard Worker 697*495ae853SAndroid Build Coastguard Worker /** 698*495ae853SAndroid Build Coastguard Worker * sub_cmd 699*495ae853SAndroid Build Coastguard Worker */ 700*495ae853SAndroid Build Coastguard Worker IVD_CONTROL_API_COMMAND_TYPE_T e_sub_cmd; 701*495ae853SAndroid Build Coastguard Worker } isvcd_ctl_get_sei_ave_params_ip_t; 702*495ae853SAndroid Build Coastguard Worker 703*495ae853SAndroid Build Coastguard Worker typedef struct 704*495ae853SAndroid Build Coastguard Worker { 705*495ae853SAndroid Build Coastguard Worker /** 706*495ae853SAndroid Build Coastguard Worker * u4_size 707*495ae853SAndroid Build Coastguard Worker */ 708*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 709*495ae853SAndroid Build Coastguard Worker 710*495ae853SAndroid Build Coastguard Worker /** 711*495ae853SAndroid Build Coastguard Worker * error_code 712*495ae853SAndroid Build Coastguard Worker */ 713*495ae853SAndroid Build Coastguard Worker UWORD32 u4_error_code; 714*495ae853SAndroid Build Coastguard Worker 715*495ae853SAndroid Build Coastguard Worker /** 716*495ae853SAndroid Build Coastguard Worker * specifies the environmental illluminance of the ambient viewing environment 717*495ae853SAndroid Build Coastguard Worker */ 718*495ae853SAndroid Build Coastguard Worker UWORD32 u4_ambient_illuminance; 719*495ae853SAndroid Build Coastguard Worker 720*495ae853SAndroid Build Coastguard Worker /* 721*495ae853SAndroid Build Coastguard Worker * specify the normalized x chromaticity coordinates of the 722*495ae853SAndroid Build Coastguard Worker * environmental ambient light in the nominal viewing environment 723*495ae853SAndroid Build Coastguard Worker */ 724*495ae853SAndroid Build Coastguard Worker UWORD16 u2_ambient_light_x; 725*495ae853SAndroid Build Coastguard Worker 726*495ae853SAndroid Build Coastguard Worker /* 727*495ae853SAndroid Build Coastguard Worker * specify the normalized y chromaticity coordinates of the 728*495ae853SAndroid Build Coastguard Worker * environmental ambient light in the nominal viewing environment 729*495ae853SAndroid Build Coastguard Worker */ 730*495ae853SAndroid Build Coastguard Worker UWORD16 u2_ambient_light_y; 731*495ae853SAndroid Build Coastguard Worker } isvcd_ctl_get_sei_ave_params_op_t; 732*495ae853SAndroid Build Coastguard Worker 733*495ae853SAndroid Build Coastguard Worker typedef struct 734*495ae853SAndroid Build Coastguard Worker { 735*495ae853SAndroid Build Coastguard Worker /** 736*495ae853SAndroid Build Coastguard Worker * u4_size 737*495ae853SAndroid Build Coastguard Worker */ 738*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 739*495ae853SAndroid Build Coastguard Worker 740*495ae853SAndroid Build Coastguard Worker /** 741*495ae853SAndroid Build Coastguard Worker * cmd 742*495ae853SAndroid Build Coastguard Worker */ 743*495ae853SAndroid Build Coastguard Worker IVD_API_COMMAND_TYPE_T e_cmd; 744*495ae853SAndroid Build Coastguard Worker 745*495ae853SAndroid Build Coastguard Worker /** 746*495ae853SAndroid Build Coastguard Worker * sub_cmd 747*495ae853SAndroid Build Coastguard Worker */ 748*495ae853SAndroid Build Coastguard Worker IVD_CONTROL_API_COMMAND_TYPE_T e_sub_cmd; 749*495ae853SAndroid Build Coastguard Worker } isvcd_ctl_get_sei_ccv_params_ip_t; 750*495ae853SAndroid Build Coastguard Worker 751*495ae853SAndroid Build Coastguard Worker typedef struct 752*495ae853SAndroid Build Coastguard Worker { 753*495ae853SAndroid Build Coastguard Worker /** 754*495ae853SAndroid Build Coastguard Worker * u4_size 755*495ae853SAndroid Build Coastguard Worker */ 756*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 757*495ae853SAndroid Build Coastguard Worker 758*495ae853SAndroid Build Coastguard Worker /** 759*495ae853SAndroid Build Coastguard Worker * error_code 760*495ae853SAndroid Build Coastguard Worker */ 761*495ae853SAndroid Build Coastguard Worker UWORD32 u4_error_code; 762*495ae853SAndroid Build Coastguard Worker 763*495ae853SAndroid Build Coastguard Worker /* 764*495ae853SAndroid Build Coastguard Worker * Flag used to control persistence of CCV SEI messages 765*495ae853SAndroid Build Coastguard Worker */ 766*495ae853SAndroid Build Coastguard Worker UWORD8 u1_ccv_cancel_flag; 767*495ae853SAndroid Build Coastguard Worker 768*495ae853SAndroid Build Coastguard Worker /* 769*495ae853SAndroid Build Coastguard Worker * specifies the persistence of the CCV SEI message for the current layer 770*495ae853SAndroid Build Coastguard Worker */ 771*495ae853SAndroid Build Coastguard Worker UWORD8 u1_ccv_persistence_flag; 772*495ae853SAndroid Build Coastguard Worker 773*495ae853SAndroid Build Coastguard Worker /* 774*495ae853SAndroid Build Coastguard Worker * specifies the presence of syntax elements ccv_primaries_x and 775*495ae853SAndroid Build Coastguard Worker * ccv_primaries_y 776*495ae853SAndroid Build Coastguard Worker */ 777*495ae853SAndroid Build Coastguard Worker UWORD8 u1_ccv_primaries_present_flag; 778*495ae853SAndroid Build Coastguard Worker 779*495ae853SAndroid Build Coastguard Worker /* 780*495ae853SAndroid Build Coastguard Worker * specifies that the syntax element ccv_min_luminance_value is present 781*495ae853SAndroid Build Coastguard Worker */ 782*495ae853SAndroid Build Coastguard Worker UWORD8 u1_ccv_min_luminance_value_present_flag; 783*495ae853SAndroid Build Coastguard Worker 784*495ae853SAndroid Build Coastguard Worker /* 785*495ae853SAndroid Build Coastguard Worker * specifies that the syntax element ccv_max_luminance_value is present 786*495ae853SAndroid Build Coastguard Worker */ 787*495ae853SAndroid Build Coastguard Worker UWORD8 u1_ccv_max_luminance_value_present_flag; 788*495ae853SAndroid Build Coastguard Worker 789*495ae853SAndroid Build Coastguard Worker /* 790*495ae853SAndroid Build Coastguard Worker * specifies that the syntax element ccv_avg_luminance_value is present 791*495ae853SAndroid Build Coastguard Worker */ 792*495ae853SAndroid Build Coastguard Worker UWORD8 u1_ccv_avg_luminance_value_present_flag; 793*495ae853SAndroid Build Coastguard Worker 794*495ae853SAndroid Build Coastguard Worker /* 795*495ae853SAndroid Build Coastguard Worker * shall be equal to 0 in bitstreams conforming to this version. Other values 796*495ae853SAndroid Build Coastguard Worker * for reserved_zero_2bits are reserved for future use 797*495ae853SAndroid Build Coastguard Worker */ 798*495ae853SAndroid Build Coastguard Worker UWORD8 u1_ccv_reserved_zero_2bits; 799*495ae853SAndroid Build Coastguard Worker 800*495ae853SAndroid Build Coastguard Worker /* 801*495ae853SAndroid Build Coastguard Worker * specify the normalized x chromaticity coordinates of the colour 802*495ae853SAndroid Build Coastguard Worker * primary component c of the nominal content colour volume 803*495ae853SAndroid Build Coastguard Worker */ 804*495ae853SAndroid Build Coastguard Worker WORD32 ai4_ccv_primaries_x[NUM_SEI_CCV_PRIMARIES]; 805*495ae853SAndroid Build Coastguard Worker 806*495ae853SAndroid Build Coastguard Worker /* 807*495ae853SAndroid Build Coastguard Worker * specify the normalized y chromaticity coordinates of the colour 808*495ae853SAndroid Build Coastguard Worker * primary component c of the nominal content colour volume 809*495ae853SAndroid Build Coastguard Worker */ 810*495ae853SAndroid Build Coastguard Worker WORD32 ai4_ccv_primaries_y[NUM_SEI_CCV_PRIMARIES]; 811*495ae853SAndroid Build Coastguard Worker 812*495ae853SAndroid Build Coastguard Worker /* 813*495ae853SAndroid Build Coastguard Worker * specifies the normalized minimum luminance value 814*495ae853SAndroid Build Coastguard Worker */ 815*495ae853SAndroid Build Coastguard Worker UWORD32 u4_ccv_min_luminance_value; 816*495ae853SAndroid Build Coastguard Worker 817*495ae853SAndroid Build Coastguard Worker /* 818*495ae853SAndroid Build Coastguard Worker * specifies the normalized maximum luminance value 819*495ae853SAndroid Build Coastguard Worker */ 820*495ae853SAndroid Build Coastguard Worker UWORD32 u4_ccv_max_luminance_value; 821*495ae853SAndroid Build Coastguard Worker 822*495ae853SAndroid Build Coastguard Worker /* 823*495ae853SAndroid Build Coastguard Worker * specifies the normalized average luminance value 824*495ae853SAndroid Build Coastguard Worker */ 825*495ae853SAndroid Build Coastguard Worker UWORD32 u4_ccv_avg_luminance_value; 826*495ae853SAndroid Build Coastguard Worker } isvcd_ctl_get_sei_ccv_params_op_t; 827*495ae853SAndroid Build Coastguard Worker 828*495ae853SAndroid Build Coastguard Worker #ifdef __cplusplus 829*495ae853SAndroid Build Coastguard Worker } /* closing brace for extern "C" */ 830*495ae853SAndroid Build Coastguard Worker #endif 831*495ae853SAndroid Build Coastguard Worker #endif /* _ISVCD_H_ */ 832