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 Name : isvce.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 SVC Encoder */ 27*495ae853SAndroid Build Coastguard Worker /* */ 28*495ae853SAndroid Build Coastguard Worker /* List of Functions : isvce_api_function */ 29*495ae853SAndroid Build Coastguard Worker /* */ 30*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 31*495ae853SAndroid Build Coastguard Worker 32*495ae853SAndroid Build Coastguard Worker #ifndef _ISVCE_H_ 33*495ae853SAndroid Build Coastguard Worker #define _ISVCE_H_ 34*495ae853SAndroid Build Coastguard Worker 35*495ae853SAndroid Build Coastguard Worker #ifdef __cplusplus 36*495ae853SAndroid Build Coastguard Worker extern "C" 37*495ae853SAndroid Build Coastguard Worker { 38*495ae853SAndroid Build Coastguard Worker #endif 39*495ae853SAndroid Build Coastguard Worker 40*495ae853SAndroid Build Coastguard Worker #include <stdbool.h> 41*495ae853SAndroid Build Coastguard Worker 42*495ae853SAndroid Build Coastguard Worker #include "iv2.h" 43*495ae853SAndroid Build Coastguard Worker #include "ive2.h" 44*495ae853SAndroid Build Coastguard Worker 45*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 46*495ae853SAndroid Build Coastguard Worker /* Enums */ 47*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 48*495ae853SAndroid Build Coastguard Worker typedef enum ISVCE_API_COMMAND_TYPE_T 49*495ae853SAndroid Build Coastguard Worker { 50*495ae853SAndroid Build Coastguard Worker ISVCE_CMD_VIDEO_NA = 0x7FFFFFFF, 51*495ae853SAndroid Build Coastguard Worker ISVCE_CMD_GET_NUM_MEM_REC = 0x0, 52*495ae853SAndroid Build Coastguard Worker ISVCE_CMD_FILL_NUM_MEM_REC = 0x1, 53*495ae853SAndroid Build Coastguard Worker ISVCE_CMD_RETRIEVE_MEMREC = 0x2, 54*495ae853SAndroid Build Coastguard Worker ISVCE_CMD_INIT = 0x3, 55*495ae853SAndroid Build Coastguard Worker ISVCE_CMD_EXTENSIONS = 0x100, 56*495ae853SAndroid Build Coastguard Worker ISVCE_CMD_VIDEO_CTL, 57*495ae853SAndroid Build Coastguard Worker ISVCE_CMD_VIDEO_ENCODE 58*495ae853SAndroid Build Coastguard Worker } ISVCE_API_COMMAND_TYPE_T; 59*495ae853SAndroid Build Coastguard Worker 60*495ae853SAndroid Build Coastguard Worker typedef enum ISVCE_CONTROL_API_COMMAND_TYPE_T 61*495ae853SAndroid Build Coastguard Worker { 62*495ae853SAndroid Build Coastguard Worker ISVCE_CMD_CT_NA = 0x7FFFFFFF, 63*495ae853SAndroid Build Coastguard Worker ISVCE_CMD_CTL_SETDEFAULT = 0x0, 64*495ae853SAndroid Build Coastguard Worker ISVCE_CMD_CTL_SET_DIMENSIONS = 0x1, 65*495ae853SAndroid Build Coastguard Worker ISVCE_CMD_CTL_SET_FRAMERATE = 0x2, 66*495ae853SAndroid Build Coastguard Worker ISVCE_CMD_CTL_SET_BITRATE = 0x3, 67*495ae853SAndroid Build Coastguard Worker ISVCE_CMD_CTL_SET_FRAMETYPE = 0x4, 68*495ae853SAndroid Build Coastguard Worker ISVCE_CMD_CTL_SET_QP = 0x5, 69*495ae853SAndroid Build Coastguard Worker ISVCE_CMD_CTL_SET_ENC_MODE = 0x6, 70*495ae853SAndroid Build Coastguard Worker ISVCE_CMD_CTL_SET_VBV_PARAMS = 0x7, 71*495ae853SAndroid Build Coastguard Worker ISVCE_CMD_CTL_SET_AIR_PARAMS = 0x8, 72*495ae853SAndroid Build Coastguard Worker ISVCE_CMD_CTL_SET_ME_PARAMS = 0X9, 73*495ae853SAndroid Build Coastguard Worker ISVCE_CMD_CTL_SET_GOP_PARAMS = 0XA, 74*495ae853SAndroid Build Coastguard Worker ISVCE_CMD_CTL_SET_PROFILE_PARAMS = 0XB, 75*495ae853SAndroid Build Coastguard Worker ISVCE_CMD_CTL_SET_DEBLOCK_PARAMS = 0XC, 76*495ae853SAndroid Build Coastguard Worker ISVCE_CMD_CTL_SET_IPE_PARAMS = 0XD, 77*495ae853SAndroid Build Coastguard Worker ISVCE_CMD_CTL_SET_VUI_PARAMS = 0XE, 78*495ae853SAndroid Build Coastguard Worker ISVCE_CMD_CTL_SET_NUM_CORES = 0x30, 79*495ae853SAndroid Build Coastguard Worker ISVCE_CMD_CTL_RESET = 0xA0, 80*495ae853SAndroid Build Coastguard Worker ISVCE_CMD_CTL_FLUSH = 0xB0, 81*495ae853SAndroid Build Coastguard Worker ISVCE_CMD_CTL_GETBUFINFO = 0xC0, 82*495ae853SAndroid Build Coastguard Worker ISVCE_CMD_CTL_GETVERSION = 0xC1, 83*495ae853SAndroid Build Coastguard Worker ISVCE_CMD_CTL_SET_SEI_MDCV_PARAMS = 0xD0, 84*495ae853SAndroid Build Coastguard Worker ISVCE_CMD_CTL_SET_SEI_CLL_PARAMS = 0xD1, 85*495ae853SAndroid Build Coastguard Worker ISVCE_CMD_CTL_SET_SEI_AVE_PARAMS = 0xD2, 86*495ae853SAndroid Build Coastguard Worker ISVCE_CMD_CTL_SET_SEI_CCV_PARAMS = 0xD3, 87*495ae853SAndroid Build Coastguard Worker ISVCE_CMD_CTL_GET_ENC_FRAME_DIMENSIONS = 0xE1 88*495ae853SAndroid Build Coastguard Worker } ISVCE_CONTROL_API_COMMAND_TYPE_T; 89*495ae853SAndroid Build Coastguard Worker 90*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 91*495ae853SAndroid Build Coastguard Worker /* Extended Structures */ 92*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 93*495ae853SAndroid Build Coastguard Worker 94*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 95*495ae853SAndroid Build Coastguard Worker /* Get Number of Memory Records */ 96*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 97*495ae853SAndroid Build Coastguard Worker typedef struct svc_inp_params_t 98*495ae853SAndroid Build Coastguard Worker { 99*495ae853SAndroid Build Coastguard Worker /** 100*495ae853SAndroid Build Coastguard Worker * Num Temporal Layers 101*495ae853SAndroid Build Coastguard Worker */ 102*495ae853SAndroid Build Coastguard Worker UWORD8 u1_num_temporal_layers; 103*495ae853SAndroid Build Coastguard Worker 104*495ae853SAndroid Build Coastguard Worker /** 105*495ae853SAndroid Build Coastguard Worker * Num Spatial Layers 106*495ae853SAndroid Build Coastguard Worker */ 107*495ae853SAndroid Build Coastguard Worker UWORD8 u1_num_spatial_layers; 108*495ae853SAndroid Build Coastguard Worker 109*495ae853SAndroid Build Coastguard Worker /** 110*495ae853SAndroid Build Coastguard Worker * Resolution ration b/w spatial layers 111*495ae853SAndroid Build Coastguard Worker */ 112*495ae853SAndroid Build Coastguard Worker DOUBLE d_spatial_res_ratio; 113*495ae853SAndroid Build Coastguard Worker 114*495ae853SAndroid Build Coastguard Worker } svc_inp_params_t; 115*495ae853SAndroid Build Coastguard Worker 116*495ae853SAndroid Build Coastguard Worker typedef struct isvce_num_mem_rec_ip_t 117*495ae853SAndroid Build Coastguard Worker { 118*495ae853SAndroid Build Coastguard Worker iv_num_mem_rec_ip_t s_ive_ip; 119*495ae853SAndroid Build Coastguard Worker } isvce_num_mem_rec_ip_t; 120*495ae853SAndroid Build Coastguard Worker 121*495ae853SAndroid Build Coastguard Worker typedef struct isvce_num_mem_rec_op_t 122*495ae853SAndroid Build Coastguard Worker { 123*495ae853SAndroid Build Coastguard Worker iv_num_mem_rec_op_t s_ive_op; 124*495ae853SAndroid Build Coastguard Worker } isvce_num_mem_rec_op_t; 125*495ae853SAndroid Build Coastguard Worker 126*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 127*495ae853SAndroid Build Coastguard Worker /* Fill Memory Records */ 128*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 129*495ae853SAndroid Build Coastguard Worker 130*495ae853SAndroid Build Coastguard Worker typedef struct isvce_fill_mem_rec_ip_t 131*495ae853SAndroid Build Coastguard Worker { 132*495ae853SAndroid Build Coastguard Worker iv_fill_mem_rec_ip_t s_ive_ip; 133*495ae853SAndroid Build Coastguard Worker 134*495ae853SAndroid Build Coastguard Worker svc_inp_params_t s_svc_inp_params; 135*495ae853SAndroid Build Coastguard Worker 136*495ae853SAndroid Build Coastguard Worker UWORD32 u4_wd; 137*495ae853SAndroid Build Coastguard Worker 138*495ae853SAndroid Build Coastguard Worker UWORD32 u4_ht; 139*495ae853SAndroid Build Coastguard Worker 140*495ae853SAndroid Build Coastguard Worker } isvce_fill_mem_rec_ip_t; 141*495ae853SAndroid Build Coastguard Worker 142*495ae853SAndroid Build Coastguard Worker typedef struct isvce_fill_mem_rec_op_t 143*495ae853SAndroid Build Coastguard Worker { 144*495ae853SAndroid Build Coastguard Worker iv_fill_mem_rec_op_t s_ive_op; 145*495ae853SAndroid Build Coastguard Worker } isvce_fill_mem_rec_op_t; 146*495ae853SAndroid Build Coastguard Worker 147*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 148*495ae853SAndroid Build Coastguard Worker /* Retrieve Memory Records */ 149*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 150*495ae853SAndroid Build Coastguard Worker 151*495ae853SAndroid Build Coastguard Worker typedef struct isvce_retrieve_mem_rec_ip_t 152*495ae853SAndroid Build Coastguard Worker { 153*495ae853SAndroid Build Coastguard Worker iv_retrieve_mem_rec_ip_t s_ive_ip; 154*495ae853SAndroid Build Coastguard Worker } isvce_retrieve_mem_rec_ip_t; 155*495ae853SAndroid Build Coastguard Worker 156*495ae853SAndroid Build Coastguard Worker typedef struct isvce_retrieve_mem_rec_op_t 157*495ae853SAndroid Build Coastguard Worker { 158*495ae853SAndroid Build Coastguard Worker iv_retrieve_mem_rec_op_t s_ive_op; 159*495ae853SAndroid Build Coastguard Worker } isvce_retrieve_mem_rec_op_t; 160*495ae853SAndroid Build Coastguard Worker 161*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 162*495ae853SAndroid Build Coastguard Worker /* Initialize encoder */ 163*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 164*495ae853SAndroid Build Coastguard Worker 165*495ae853SAndroid Build Coastguard Worker typedef struct isvce_init_ip_t 166*495ae853SAndroid Build Coastguard Worker { 167*495ae853SAndroid Build Coastguard Worker ive_init_ip_t s_ive_ip; 168*495ae853SAndroid Build Coastguard Worker 169*495ae853SAndroid Build Coastguard Worker svc_inp_params_t s_svc_inp_params; 170*495ae853SAndroid Build Coastguard Worker 171*495ae853SAndroid Build Coastguard Worker UWORD32 *pu4_max_bitrate; 172*495ae853SAndroid Build Coastguard Worker 173*495ae853SAndroid Build Coastguard Worker UWORD32 u4_wd; 174*495ae853SAndroid Build Coastguard Worker 175*495ae853SAndroid Build Coastguard Worker UWORD32 u4_ht; 176*495ae853SAndroid Build Coastguard Worker 177*495ae853SAndroid Build Coastguard Worker bool b_use_default_vui; 178*495ae853SAndroid Build Coastguard Worker 179*495ae853SAndroid Build Coastguard Worker bool b_nalu_info_export_enable; 180*495ae853SAndroid Build Coastguard Worker 181*495ae853SAndroid Build Coastguard Worker } isvce_init_ip_t; 182*495ae853SAndroid Build Coastguard Worker 183*495ae853SAndroid Build Coastguard Worker typedef struct isvce_init_op_t 184*495ae853SAndroid Build Coastguard Worker { 185*495ae853SAndroid Build Coastguard Worker ive_init_op_t s_ive_op; 186*495ae853SAndroid Build Coastguard Worker } isvce_init_op_t; 187*495ae853SAndroid Build Coastguard Worker 188*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 189*495ae853SAndroid Build Coastguard Worker /* Video control Flush */ 190*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 191*495ae853SAndroid Build Coastguard Worker 192*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_flush_ip_t 193*495ae853SAndroid Build Coastguard Worker { 194*495ae853SAndroid Build Coastguard Worker ive_ctl_flush_ip_t s_ive_ip; 195*495ae853SAndroid Build Coastguard Worker } isvce_ctl_flush_ip_t; 196*495ae853SAndroid Build Coastguard Worker 197*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_flush_op_t 198*495ae853SAndroid Build Coastguard Worker { 199*495ae853SAndroid Build Coastguard Worker ive_ctl_flush_op_t s_ive_op; 200*495ae853SAndroid Build Coastguard Worker } isvce_ctl_flush_op_t; 201*495ae853SAndroid Build Coastguard Worker 202*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 203*495ae853SAndroid Build Coastguard Worker /* Video control reset */ 204*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 205*495ae853SAndroid Build Coastguard Worker 206*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_reset_ip_t 207*495ae853SAndroid Build Coastguard Worker { 208*495ae853SAndroid Build Coastguard Worker ive_ctl_reset_ip_t s_ive_ip; 209*495ae853SAndroid Build Coastguard Worker } isvce_ctl_reset_ip_t; 210*495ae853SAndroid Build Coastguard Worker 211*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_reset_op_t 212*495ae853SAndroid Build Coastguard Worker { 213*495ae853SAndroid Build Coastguard Worker ive_ctl_reset_op_t s_ive_op; 214*495ae853SAndroid Build Coastguard Worker } isvce_ctl_reset_op_t; 215*495ae853SAndroid Build Coastguard Worker 216*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 217*495ae853SAndroid Build Coastguard Worker /* Video control:Get Buf Info */ 218*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 219*495ae853SAndroid Build Coastguard Worker 220*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_getbufinfo_ip_t 221*495ae853SAndroid Build Coastguard Worker { 222*495ae853SAndroid Build Coastguard Worker ive_ctl_getbufinfo_ip_t s_ive_ip; 223*495ae853SAndroid Build Coastguard Worker } isvce_ctl_getbufinfo_ip_t; 224*495ae853SAndroid Build Coastguard Worker 225*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_getbufinfo_op_t 226*495ae853SAndroid Build Coastguard Worker { 227*495ae853SAndroid Build Coastguard Worker ive_ctl_getbufinfo_op_t s_ive_op; 228*495ae853SAndroid Build Coastguard Worker 229*495ae853SAndroid Build Coastguard Worker UWORD32 au4_min_rec_buf_size[IVE_MAX_IO_BUFFER_COMPONENTS]; 230*495ae853SAndroid Build Coastguard Worker 231*495ae853SAndroid Build Coastguard Worker UWORD32 u4_rec_comp_cnt; 232*495ae853SAndroid Build Coastguard Worker 233*495ae853SAndroid Build Coastguard Worker UWORD32 u4_min_rec_bufs; 234*495ae853SAndroid Build Coastguard Worker 235*495ae853SAndroid Build Coastguard Worker UWORD32 u4_min_nalu_info_bufs; 236*495ae853SAndroid Build Coastguard Worker 237*495ae853SAndroid Build Coastguard Worker UWORD32 u4_min_nalu_info_buf_size; 238*495ae853SAndroid Build Coastguard Worker } isvce_ctl_getbufinfo_op_t; 239*495ae853SAndroid Build Coastguard Worker 240*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 241*495ae853SAndroid Build Coastguard Worker /* Video control:Get Version Info */ 242*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 243*495ae853SAndroid Build Coastguard Worker 244*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_getversioninfo_ip_t 245*495ae853SAndroid Build Coastguard Worker { 246*495ae853SAndroid Build Coastguard Worker ive_ctl_getversioninfo_ip_t s_ive_ip; 247*495ae853SAndroid Build Coastguard Worker } isvce_ctl_getversioninfo_ip_t; 248*495ae853SAndroid Build Coastguard Worker 249*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_getversioninfo_op_t 250*495ae853SAndroid Build Coastguard Worker { 251*495ae853SAndroid Build Coastguard Worker ive_ctl_getversioninfo_op_t s_ive_op; 252*495ae853SAndroid Build Coastguard Worker } isvce_ctl_getversioninfo_op_t; 253*495ae853SAndroid Build Coastguard Worker 254*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 255*495ae853SAndroid Build Coastguard Worker /* Video control:Set default params */ 256*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 257*495ae853SAndroid Build Coastguard Worker 258*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_setdefault_ip_t 259*495ae853SAndroid Build Coastguard Worker { 260*495ae853SAndroid Build Coastguard Worker ive_ctl_setdefault_ip_t s_ive_ip; 261*495ae853SAndroid Build Coastguard Worker } isvce_ctl_setdefault_ip_t; 262*495ae853SAndroid Build Coastguard Worker 263*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_setdefault_op_t 264*495ae853SAndroid Build Coastguard Worker { 265*495ae853SAndroid Build Coastguard Worker ive_ctl_setdefault_op_t s_ive_op; 266*495ae853SAndroid Build Coastguard Worker } isvce_ctl_setdefault_op_t; 267*495ae853SAndroid Build Coastguard Worker 268*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 269*495ae853SAndroid Build Coastguard Worker /* Video control Set IPE params */ 270*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 271*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_set_ipe_params_ip_t 272*495ae853SAndroid Build Coastguard Worker { 273*495ae853SAndroid Build Coastguard Worker ive_ctl_set_ipe_params_ip_t s_ive_ip; 274*495ae853SAndroid Build Coastguard Worker } isvce_ctl_set_ipe_params_ip_t; 275*495ae853SAndroid Build Coastguard Worker 276*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_set_ipe_params_op_t 277*495ae853SAndroid Build Coastguard Worker { 278*495ae853SAndroid Build Coastguard Worker ive_ctl_set_ipe_params_op_t s_ive_op; 279*495ae853SAndroid Build Coastguard Worker } isvce_ctl_set_ipe_params_op_t; 280*495ae853SAndroid Build Coastguard Worker 281*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 282*495ae853SAndroid Build Coastguard Worker /* Video control Set Frame dimensions */ 283*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 284*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_set_dimensions_ip_t 285*495ae853SAndroid Build Coastguard Worker { 286*495ae853SAndroid Build Coastguard Worker ive_ctl_set_dimensions_ip_t s_ive_ip; 287*495ae853SAndroid Build Coastguard Worker } isvce_ctl_set_dimensions_ip_t; 288*495ae853SAndroid Build Coastguard Worker 289*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_set_dimensions_op_t 290*495ae853SAndroid Build Coastguard Worker { 291*495ae853SAndroid Build Coastguard Worker ive_ctl_set_dimensions_op_t s_ive_op; 292*495ae853SAndroid Build Coastguard Worker } isvce_ctl_set_dimensions_op_t; 293*495ae853SAndroid Build Coastguard Worker 294*495ae853SAndroid Build Coastguard Worker /* Video control - Get Enc Frame dimensions */ 295*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_get_enc_dimensions_ip_t 296*495ae853SAndroid Build Coastguard Worker { 297*495ae853SAndroid Build Coastguard Worker UWORD32 u4_inp_frame_wd; 298*495ae853SAndroid Build Coastguard Worker 299*495ae853SAndroid Build Coastguard Worker UWORD32 u4_inp_frame_ht; 300*495ae853SAndroid Build Coastguard Worker } isvce_ctl_get_enc_dimensions_ip_t; 301*495ae853SAndroid Build Coastguard Worker 302*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_get_enc_dimensions_op_t 303*495ae853SAndroid Build Coastguard Worker { 304*495ae853SAndroid Build Coastguard Worker UWORD32 u4_error_code; 305*495ae853SAndroid Build Coastguard Worker 306*495ae853SAndroid Build Coastguard Worker UWORD32 u4_enc_frame_wd; 307*495ae853SAndroid Build Coastguard Worker 308*495ae853SAndroid Build Coastguard Worker UWORD32 u4_enc_frame_ht; 309*495ae853SAndroid Build Coastguard Worker 310*495ae853SAndroid Build Coastguard Worker } isvce_ctl_get_enc_dimensions_op_t; 311*495ae853SAndroid Build Coastguard Worker 312*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 313*495ae853SAndroid Build Coastguard Worker /* Video control Set Frame rates */ 314*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 315*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_set_frame_rate_ip_t 316*495ae853SAndroid Build Coastguard Worker { 317*495ae853SAndroid Build Coastguard Worker ive_ctl_set_frame_rate_ip_t s_ive_ip; 318*495ae853SAndroid Build Coastguard Worker } isvce_ctl_set_frame_rate_ip_t; 319*495ae853SAndroid Build Coastguard Worker 320*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_set_frame_rate_op_t 321*495ae853SAndroid Build Coastguard Worker { 322*495ae853SAndroid Build Coastguard Worker ive_ctl_set_frame_rate_op_t s_ive_op; 323*495ae853SAndroid Build Coastguard Worker } isvce_ctl_set_frame_rate_op_t; 324*495ae853SAndroid Build Coastguard Worker 325*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 326*495ae853SAndroid Build Coastguard Worker /* Video control Set Bitrate */ 327*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 328*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_set_bitrate_ip_t 329*495ae853SAndroid Build Coastguard Worker { 330*495ae853SAndroid Build Coastguard Worker ive_ctl_set_bitrate_ip_t s_ive_ip; 331*495ae853SAndroid Build Coastguard Worker 332*495ae853SAndroid Build Coastguard Worker UWORD32 *pu4_target_bitrate; 333*495ae853SAndroid Build Coastguard Worker } isvce_ctl_set_bitrate_ip_t; 334*495ae853SAndroid Build Coastguard Worker 335*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_set_bitrate_op_t 336*495ae853SAndroid Build Coastguard Worker { 337*495ae853SAndroid Build Coastguard Worker ive_ctl_set_bitrate_op_t s_ive_op; 338*495ae853SAndroid Build Coastguard Worker } isvce_ctl_set_bitrate_op_t; 339*495ae853SAndroid Build Coastguard Worker 340*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 341*495ae853SAndroid Build Coastguard Worker /* Video control Set Frame type */ 342*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 343*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_set_frame_type_ip_t 344*495ae853SAndroid Build Coastguard Worker { 345*495ae853SAndroid Build Coastguard Worker ive_ctl_set_frame_type_ip_t s_ive_ip; 346*495ae853SAndroid Build Coastguard Worker } isvce_ctl_set_frame_type_ip_t; 347*495ae853SAndroid Build Coastguard Worker 348*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_set_frame_type_op_t 349*495ae853SAndroid Build Coastguard Worker { 350*495ae853SAndroid Build Coastguard Worker ive_ctl_set_frame_type_op_t s_ive_op; 351*495ae853SAndroid Build Coastguard Worker } isvce_ctl_set_frame_type_op_t; 352*495ae853SAndroid Build Coastguard Worker 353*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 354*495ae853SAndroid Build Coastguard Worker /* Video control Set Encode mode */ 355*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 356*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_set_enc_mode_ip_t 357*495ae853SAndroid Build Coastguard Worker { 358*495ae853SAndroid Build Coastguard Worker ive_ctl_set_enc_mode_ip_t s_ive_ip; 359*495ae853SAndroid Build Coastguard Worker } isvce_ctl_set_enc_mode_ip_t; 360*495ae853SAndroid Build Coastguard Worker 361*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_set_enc_mode_op_t 362*495ae853SAndroid Build Coastguard Worker { 363*495ae853SAndroid Build Coastguard Worker ive_ctl_set_enc_mode_op_t s_ive_op; 364*495ae853SAndroid Build Coastguard Worker } isvce_ctl_set_enc_mode_op_t; 365*495ae853SAndroid Build Coastguard Worker 366*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 367*495ae853SAndroid Build Coastguard Worker /* Video control Set QP */ 368*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 369*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_set_qp_ip_t 370*495ae853SAndroid Build Coastguard Worker { 371*495ae853SAndroid Build Coastguard Worker ive_ctl_set_qp_ip_t s_ive_ip; 372*495ae853SAndroid Build Coastguard Worker 373*495ae853SAndroid Build Coastguard Worker UWORD32 *pu4_i_qp; 374*495ae853SAndroid Build Coastguard Worker 375*495ae853SAndroid Build Coastguard Worker UWORD32 *pu4_i_qp_max; 376*495ae853SAndroid Build Coastguard Worker 377*495ae853SAndroid Build Coastguard Worker UWORD32 *pu4_i_qp_min; 378*495ae853SAndroid Build Coastguard Worker 379*495ae853SAndroid Build Coastguard Worker UWORD32 *pu4_p_qp; 380*495ae853SAndroid Build Coastguard Worker 381*495ae853SAndroid Build Coastguard Worker UWORD32 *pu4_p_qp_max; 382*495ae853SAndroid Build Coastguard Worker 383*495ae853SAndroid Build Coastguard Worker UWORD32 *pu4_p_qp_min; 384*495ae853SAndroid Build Coastguard Worker 385*495ae853SAndroid Build Coastguard Worker UWORD32 *pu4_b_qp; 386*495ae853SAndroid Build Coastguard Worker 387*495ae853SAndroid Build Coastguard Worker UWORD32 *pu4_b_qp_max; 388*495ae853SAndroid Build Coastguard Worker 389*495ae853SAndroid Build Coastguard Worker UWORD32 *pu4_b_qp_min; 390*495ae853SAndroid Build Coastguard Worker 391*495ae853SAndroid Build Coastguard Worker } isvce_ctl_set_qp_ip_t; 392*495ae853SAndroid Build Coastguard Worker 393*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_set_qp_op_t 394*495ae853SAndroid Build Coastguard Worker { 395*495ae853SAndroid Build Coastguard Worker ive_ctl_set_qp_op_t s_ive_op; 396*495ae853SAndroid Build Coastguard Worker } isvce_ctl_set_qp_op_t; 397*495ae853SAndroid Build Coastguard Worker 398*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 399*495ae853SAndroid Build Coastguard Worker /* Video control Set AIR params */ 400*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 401*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_set_air_params_ip_t 402*495ae853SAndroid Build Coastguard Worker { 403*495ae853SAndroid Build Coastguard Worker ive_ctl_set_air_params_ip_t s_ive_ip; 404*495ae853SAndroid Build Coastguard Worker } isvce_ctl_set_air_params_ip_t; 405*495ae853SAndroid Build Coastguard Worker 406*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_set_air_params_op_t 407*495ae853SAndroid Build Coastguard Worker { 408*495ae853SAndroid Build Coastguard Worker ive_ctl_set_air_params_op_t s_ive_op; 409*495ae853SAndroid Build Coastguard Worker } isvce_ctl_set_air_params_op_t; 410*495ae853SAndroid Build Coastguard Worker 411*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 412*495ae853SAndroid Build Coastguard Worker /* Video control Set VBV params */ 413*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 414*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_set_vbv_params_ip_t 415*495ae853SAndroid Build Coastguard Worker { 416*495ae853SAndroid Build Coastguard Worker ive_ctl_set_vbv_params_ip_t s_ive_ip; 417*495ae853SAndroid Build Coastguard Worker 418*495ae853SAndroid Build Coastguard Worker UWORD32 *pu4_vbv_buffer_delay; 419*495ae853SAndroid Build Coastguard Worker } isvce_ctl_set_vbv_params_ip_t; 420*495ae853SAndroid Build Coastguard Worker 421*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_set_vbv_params_op_t 422*495ae853SAndroid Build Coastguard Worker { 423*495ae853SAndroid Build Coastguard Worker ive_ctl_set_vbv_params_op_t s_ive_op; 424*495ae853SAndroid Build Coastguard Worker } isvce_ctl_set_vbv_params_op_t; 425*495ae853SAndroid Build Coastguard Worker 426*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 427*495ae853SAndroid Build Coastguard Worker /* Video control Set Processor Details */ 428*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 429*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_set_num_cores_ip_t 430*495ae853SAndroid Build Coastguard Worker { 431*495ae853SAndroid Build Coastguard Worker ive_ctl_set_num_cores_ip_t s_ive_ip; 432*495ae853SAndroid Build Coastguard Worker } isvce_ctl_set_num_cores_ip_t; 433*495ae853SAndroid Build Coastguard Worker 434*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_set_num_cores_op_t 435*495ae853SAndroid Build Coastguard Worker { 436*495ae853SAndroid Build Coastguard Worker ive_ctl_set_num_cores_op_t s_ive_op; 437*495ae853SAndroid Build Coastguard Worker } isvce_ctl_set_num_cores_op_t; 438*495ae853SAndroid Build Coastguard Worker 439*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 440*495ae853SAndroid Build Coastguard Worker /* Video control Set Motion estimation params */ 441*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 442*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_set_me_params_ip_t 443*495ae853SAndroid Build Coastguard Worker { 444*495ae853SAndroid Build Coastguard Worker ive_ctl_set_me_params_ip_t s_ive_ip; 445*495ae853SAndroid Build Coastguard Worker } isvce_ctl_set_me_params_ip_t; 446*495ae853SAndroid Build Coastguard Worker 447*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_set_me_params_op_t 448*495ae853SAndroid Build Coastguard Worker { 449*495ae853SAndroid Build Coastguard Worker ive_ctl_set_me_params_op_t s_ive_op; 450*495ae853SAndroid Build Coastguard Worker } isvce_ctl_set_me_params_op_t; 451*495ae853SAndroid Build Coastguard Worker 452*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 453*495ae853SAndroid Build Coastguard Worker /* Video control Set GOP params */ 454*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 455*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_set_gop_params_ip_t 456*495ae853SAndroid Build Coastguard Worker { 457*495ae853SAndroid Build Coastguard Worker ive_ctl_set_gop_params_ip_t s_ive_ip; 458*495ae853SAndroid Build Coastguard Worker } isvce_ctl_set_gop_params_ip_t; 459*495ae853SAndroid Build Coastguard Worker 460*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_set_gop_params_op_t 461*495ae853SAndroid Build Coastguard Worker { 462*495ae853SAndroid Build Coastguard Worker ive_ctl_set_gop_params_op_t s_ive_op; 463*495ae853SAndroid Build Coastguard Worker } isvce_ctl_set_gop_params_op_t; 464*495ae853SAndroid Build Coastguard Worker 465*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 466*495ae853SAndroid Build Coastguard Worker /* Video control Set Deblock params */ 467*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 468*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_set_deblock_params_ip_t 469*495ae853SAndroid Build Coastguard Worker { 470*495ae853SAndroid Build Coastguard Worker ive_ctl_set_deblock_params_ip_t s_ive_ip; 471*495ae853SAndroid Build Coastguard Worker } isvce_ctl_set_deblock_params_ip_t; 472*495ae853SAndroid Build Coastguard Worker 473*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_set_deblock_params_op_t 474*495ae853SAndroid Build Coastguard Worker { 475*495ae853SAndroid Build Coastguard Worker ive_ctl_set_deblock_params_op_t s_ive_op; 476*495ae853SAndroid Build Coastguard Worker } isvce_ctl_set_deblock_params_op_t; 477*495ae853SAndroid Build Coastguard Worker 478*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 479*495ae853SAndroid Build Coastguard Worker /* Video control Set Profile params */ 480*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 481*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_set_profile_params_ip_t 482*495ae853SAndroid Build Coastguard Worker { 483*495ae853SAndroid Build Coastguard Worker ive_ctl_set_profile_params_ip_t s_ive_ip; 484*495ae853SAndroid Build Coastguard Worker } isvce_ctl_set_profile_params_ip_t; 485*495ae853SAndroid Build Coastguard Worker 486*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_set_profile_params_op_t 487*495ae853SAndroid Build Coastguard Worker { 488*495ae853SAndroid Build Coastguard Worker ive_ctl_set_profile_params_op_t s_ive_op; 489*495ae853SAndroid Build Coastguard Worker } isvce_ctl_set_profile_params_op_t; 490*495ae853SAndroid Build Coastguard Worker 491*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 492*495ae853SAndroid Build Coastguard Worker /* Synchronous video encode call */ 493*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 494*495ae853SAndroid Build Coastguard Worker typedef struct isvce_nalu_info_buf_t 495*495ae853SAndroid Build Coastguard Worker { 496*495ae853SAndroid Build Coastguard Worker /* For each NALU, following info will be copied as a csv string - */ 497*495ae853SAndroid Build Coastguard Worker /* 'type,length,SId,TID,isIDR,isFirstSliceInLayer,isLastSliceInLayer' */ 498*495ae853SAndroid Build Coastguard Worker UWORD8 *pu1_buf; 499*495ae853SAndroid Build Coastguard Worker 500*495ae853SAndroid Build Coastguard Worker UWORD32 u4_num_bytes; 501*495ae853SAndroid Build Coastguard Worker 502*495ae853SAndroid Build Coastguard Worker UWORD32 u4_buf_size; 503*495ae853SAndroid Build Coastguard Worker } isvce_nalu_info_buf_t; 504*495ae853SAndroid Build Coastguard Worker 505*495ae853SAndroid Build Coastguard Worker typedef struct isvce_video_encode_ip_t 506*495ae853SAndroid Build Coastguard Worker { 507*495ae853SAndroid Build Coastguard Worker ive_video_encode_ip_t s_ive_ip; 508*495ae853SAndroid Build Coastguard Worker 509*495ae853SAndroid Build Coastguard Worker isvce_nalu_info_buf_t *ps_nalu_info_buf; 510*495ae853SAndroid Build Coastguard Worker 511*495ae853SAndroid Build Coastguard Worker } isvce_video_encode_ip_t; 512*495ae853SAndroid Build Coastguard Worker 513*495ae853SAndroid Build Coastguard Worker typedef struct isvce_video_encode_op_t 514*495ae853SAndroid Build Coastguard Worker { 515*495ae853SAndroid Build Coastguard Worker ive_video_encode_op_t s_ive_op; 516*495ae853SAndroid Build Coastguard Worker 517*495ae853SAndroid Build Coastguard Worker bool b_is_nalu_info_present; 518*495ae853SAndroid Build Coastguard Worker 519*495ae853SAndroid Build Coastguard Worker isvce_nalu_info_buf_t *ps_nalu_info_buf; 520*495ae853SAndroid Build Coastguard Worker 521*495ae853SAndroid Build Coastguard Worker } isvce_video_encode_op_t; 522*495ae853SAndroid Build Coastguard Worker 523*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 524*495ae853SAndroid Build Coastguard Worker /* Video usability information */ 525*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 526*495ae853SAndroid Build Coastguard Worker typedef struct isvce_vui_ip_t 527*495ae853SAndroid Build Coastguard Worker { 528*495ae853SAndroid Build Coastguard Worker /** size of the structure */ 529*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 530*495ae853SAndroid Build Coastguard Worker 531*495ae853SAndroid Build Coastguard Worker /** Command type : ISVCE_CMD_VIDEO_CTL */ 532*495ae853SAndroid Build Coastguard Worker ISVCE_API_COMMAND_TYPE_T e_cmd; 533*495ae853SAndroid Build Coastguard Worker 534*495ae853SAndroid Build Coastguard Worker /** Sub command type : ISVCE_CMD_CTL_SET_GOP_PARAMS */ 535*495ae853SAndroid Build Coastguard Worker ISVCE_CONTROL_API_COMMAND_TYPE_T e_sub_cmd; 536*495ae853SAndroid Build Coastguard Worker 537*495ae853SAndroid Build Coastguard Worker /** indicates the presence of aspect_ratio */ 538*495ae853SAndroid Build Coastguard Worker UWORD8 u1_aspect_ratio_info_present_flag; 539*495ae853SAndroid Build Coastguard Worker 540*495ae853SAndroid Build Coastguard Worker /** specifies the aspect ratio of the luma samples */ 541*495ae853SAndroid Build Coastguard Worker UWORD8 u1_aspect_ratio_idc; 542*495ae853SAndroid Build Coastguard Worker 543*495ae853SAndroid Build Coastguard Worker /** width of the luma samples. user dependent */ 544*495ae853SAndroid Build Coastguard Worker UWORD16 u2_sar_width; 545*495ae853SAndroid Build Coastguard Worker 546*495ae853SAndroid Build Coastguard Worker /** Height of the luma samples. user dependent */ 547*495ae853SAndroid Build Coastguard Worker UWORD16 u2_sar_height; 548*495ae853SAndroid Build Coastguard Worker 549*495ae853SAndroid Build Coastguard Worker /** if 1, specifies that the overscan_appropriate_flag is present 550*495ae853SAndroid Build Coastguard Worker * if 0, the preferred display method for the video signal is unspecified */ 551*495ae853SAndroid Build Coastguard Worker UWORD8 u1_overscan_info_present_flag; 552*495ae853SAndroid Build Coastguard Worker 553*495ae853SAndroid Build Coastguard Worker /** if 1,indicates that the cropped decoded pictures output 554*495ae853SAndroid Build Coastguard Worker * are suitable for display using overscan */ 555*495ae853SAndroid Build Coastguard Worker UWORD8 u1_overscan_appropriate_flag; 556*495ae853SAndroid Build Coastguard Worker 557*495ae853SAndroid Build Coastguard Worker /** if 1 specifies that video_format, video_full_range_flag and 558*495ae853SAndroid Build Coastguard Worker * colour_description_present_flag are present */ 559*495ae853SAndroid Build Coastguard Worker UWORD8 u1_video_signal_type_present_flag; 560*495ae853SAndroid Build Coastguard Worker 561*495ae853SAndroid Build Coastguard Worker /** pal, secam, ntsc, ... */ 562*495ae853SAndroid Build Coastguard Worker UWORD8 u1_video_format; 563*495ae853SAndroid Build Coastguard Worker 564*495ae853SAndroid Build Coastguard Worker /** indicates the black level and range of the luma and chroma signals */ 565*495ae853SAndroid Build Coastguard Worker UWORD8 u1_video_full_range_flag; 566*495ae853SAndroid Build Coastguard Worker 567*495ae853SAndroid Build Coastguard Worker /** if 1,specifies that colour_primaries, transfer_characteristics 568*495ae853SAndroid Build Coastguard Worker * and matrix_coefficients are present */ 569*495ae853SAndroid Build Coastguard Worker UWORD8 u1_colour_description_present_flag; 570*495ae853SAndroid Build Coastguard Worker 571*495ae853SAndroid Build Coastguard Worker /** indicates the chromaticity coordinates of the source primaries */ 572*495ae853SAndroid Build Coastguard Worker UWORD8 u1_colour_primaries; 573*495ae853SAndroid Build Coastguard Worker 574*495ae853SAndroid Build Coastguard Worker /** indicates the opto-electronic transfer characteristic of the source picture */ 575*495ae853SAndroid Build Coastguard Worker UWORD8 u1_transfer_characteristics; 576*495ae853SAndroid Build Coastguard Worker 577*495ae853SAndroid Build Coastguard Worker /** the matrix coefficients used in deriving luma and chroma signals 578*495ae853SAndroid Build Coastguard Worker * from the green, blue, and red primaries */ 579*495ae853SAndroid Build Coastguard Worker UWORD8 u1_matrix_coefficients; 580*495ae853SAndroid Build Coastguard Worker 581*495ae853SAndroid Build Coastguard Worker /** if 1, specifies that chroma_sample_loc_type_top_field and 582*495ae853SAndroid Build Coastguard Worker * chroma_sample_loc_type_bottom_field are present */ 583*495ae853SAndroid Build Coastguard Worker UWORD8 u1_chroma_loc_info_present_flag; 584*495ae853SAndroid Build Coastguard Worker 585*495ae853SAndroid Build Coastguard Worker /** location of chroma samples */ 586*495ae853SAndroid Build Coastguard Worker UWORD8 u1_chroma_sample_loc_type_top_field; 587*495ae853SAndroid Build Coastguard Worker 588*495ae853SAndroid Build Coastguard Worker UWORD8 u1_chroma_sample_loc_type_bottom_field; 589*495ae853SAndroid Build Coastguard Worker 590*495ae853SAndroid Build Coastguard Worker /** Indicates the presence of the num_units_in_ticks, time_scale flag */ 591*495ae853SAndroid Build Coastguard Worker UWORD8 u1_vui_timing_info_present_flag; 592*495ae853SAndroid Build Coastguard Worker 593*495ae853SAndroid Build Coastguard Worker /** Number of units that correspond to one increment of the 594*495ae853SAndroid Build Coastguard Worker * clock. Indicates the resolution */ 595*495ae853SAndroid Build Coastguard Worker UWORD32 u4_vui_num_units_in_tick; 596*495ae853SAndroid Build Coastguard Worker 597*495ae853SAndroid Build Coastguard Worker /** The number of time units that pass in one second */ 598*495ae853SAndroid Build Coastguard Worker UWORD32 u4_vui_time_scale; 599*495ae853SAndroid Build Coastguard Worker 600*495ae853SAndroid Build Coastguard Worker /** Flag indicating that time difference between two frames is a constant */ 601*495ae853SAndroid Build Coastguard Worker UWORD8 u1_fixed_frame_rate_flag; 602*495ae853SAndroid Build Coastguard Worker 603*495ae853SAndroid Build Coastguard Worker /** Indicates the presence of NAL HRD parameters */ 604*495ae853SAndroid Build Coastguard Worker UWORD8 u1_nal_hrd_parameters_present_flag; 605*495ae853SAndroid Build Coastguard Worker 606*495ae853SAndroid Build Coastguard Worker /** Indicates the presence of VCL HRD parameters */ 607*495ae853SAndroid Build Coastguard Worker UWORD8 u1_vcl_hrd_parameters_present_flag; 608*495ae853SAndroid Build Coastguard Worker 609*495ae853SAndroid Build Coastguard Worker /** Specifies the HRD operational mode */ 610*495ae853SAndroid Build Coastguard Worker UWORD8 u1_low_delay_hrd_flag; 611*495ae853SAndroid Build Coastguard Worker 612*495ae853SAndroid Build Coastguard Worker /** Indicates presence of SEI messages which include pic_struct syntax element */ 613*495ae853SAndroid Build Coastguard Worker UWORD8 u1_pic_struct_present_flag; 614*495ae853SAndroid Build Coastguard Worker 615*495ae853SAndroid Build Coastguard Worker /** 1, specifies that the following cvs bitstream restriction parameters are present */ 616*495ae853SAndroid Build Coastguard Worker UWORD8 u1_bitstream_restriction_flag; 617*495ae853SAndroid Build Coastguard Worker 618*495ae853SAndroid Build Coastguard Worker /** if 0, indicates that no pel outside the pic boundaries and 619*495ae853SAndroid Build Coastguard Worker * no sub-pels derived using pels outside the pic boundaries is used for inter prediction */ 620*495ae853SAndroid Build Coastguard Worker UWORD8 u1_motion_vectors_over_pic_boundaries_flag; 621*495ae853SAndroid Build Coastguard Worker 622*495ae853SAndroid Build Coastguard Worker /** Indicates a number of bytes not exceeded by the sum of the sizes of the VCL NAL units 623*495ae853SAndroid Build Coastguard Worker * associated with any coded picture */ 624*495ae853SAndroid Build Coastguard Worker UWORD8 u1_max_bytes_per_pic_denom; 625*495ae853SAndroid Build Coastguard Worker 626*495ae853SAndroid Build Coastguard Worker /** Indicates an upper bound for the number of bits of coding_unit() data */ 627*495ae853SAndroid Build Coastguard Worker UWORD8 u1_max_bits_per_mb_denom; 628*495ae853SAndroid Build Coastguard Worker 629*495ae853SAndroid Build Coastguard Worker /** Indicate the maximum absolute value of a decoded horizontal MV component 630*495ae853SAndroid Build Coastguard Worker * in quarter-pel luma units */ 631*495ae853SAndroid Build Coastguard Worker UWORD8 u1_log2_max_mv_length_horizontal; 632*495ae853SAndroid Build Coastguard Worker 633*495ae853SAndroid Build Coastguard Worker /** Indicate the maximum absolute value of a decoded vertical MV component 634*495ae853SAndroid Build Coastguard Worker * in quarter-pel luma units */ 635*495ae853SAndroid Build Coastguard Worker UWORD8 u1_log2_max_mv_length_vertical; 636*495ae853SAndroid Build Coastguard Worker 637*495ae853SAndroid Build Coastguard Worker /** Max number of frames that are not synchronized in display and decode order */ 638*495ae853SAndroid Build Coastguard Worker UWORD8 u1_num_reorder_frames; 639*495ae853SAndroid Build Coastguard Worker 640*495ae853SAndroid Build Coastguard Worker /** specifies required size of the HRD DPB in units of frame buffers */ 641*495ae853SAndroid Build Coastguard Worker UWORD8 u1_max_dec_frame_buffering; 642*495ae853SAndroid Build Coastguard Worker 643*495ae853SAndroid Build Coastguard Worker } isvce_vui_ip_t; 644*495ae853SAndroid Build Coastguard Worker 645*495ae853SAndroid Build Coastguard Worker typedef struct isvce_vui_op_t 646*495ae853SAndroid Build Coastguard Worker { 647*495ae853SAndroid Build Coastguard Worker /** size of the structure */ 648*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 649*495ae853SAndroid Build Coastguard Worker 650*495ae853SAndroid Build Coastguard Worker /** Return error code */ 651*495ae853SAndroid Build Coastguard Worker UWORD32 u4_error_code; 652*495ae853SAndroid Build Coastguard Worker } isvce_vui_op_t; 653*495ae853SAndroid Build Coastguard Worker 654*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 655*495ae853SAndroid Build Coastguard Worker /* Video control Set SEI MDCV params */ 656*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 657*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_set_sei_mdcv_params_ip_t 658*495ae853SAndroid Build Coastguard Worker { 659*495ae853SAndroid Build Coastguard Worker /** size of the structure */ 660*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 661*495ae853SAndroid Build Coastguard Worker 662*495ae853SAndroid Build Coastguard Worker /** Command type : ISVCE_CMD_VIDEO_CTL */ 663*495ae853SAndroid Build Coastguard Worker ISVCE_API_COMMAND_TYPE_T e_cmd; 664*495ae853SAndroid Build Coastguard Worker 665*495ae853SAndroid Build Coastguard Worker /** Sub command type : ISVCE_CMD_CTL_SET_SEI_MDCV_PARAMS */ 666*495ae853SAndroid Build Coastguard Worker ISVCE_CONTROL_API_COMMAND_TYPE_T e_sub_cmd; 667*495ae853SAndroid Build Coastguard Worker 668*495ae853SAndroid Build Coastguard Worker /** mastering display color volume info present flag */ 669*495ae853SAndroid Build Coastguard Worker UWORD8 u1_sei_mdcv_params_present_flag; 670*495ae853SAndroid Build Coastguard Worker 671*495ae853SAndroid Build Coastguard Worker /** Array to store the display_primaries_x values */ 672*495ae853SAndroid Build Coastguard Worker UWORD16 au2_display_primaries_x[3]; 673*495ae853SAndroid Build Coastguard Worker 674*495ae853SAndroid Build Coastguard Worker /** Array to store the display_primaries_y values */ 675*495ae853SAndroid Build Coastguard Worker UWORD16 au2_display_primaries_y[3]; 676*495ae853SAndroid Build Coastguard Worker 677*495ae853SAndroid Build Coastguard Worker /** Variable to store the white point x value */ 678*495ae853SAndroid Build Coastguard Worker UWORD16 u2_white_point_x; 679*495ae853SAndroid Build Coastguard Worker 680*495ae853SAndroid Build Coastguard Worker /** Variable to store the white point y value */ 681*495ae853SAndroid Build Coastguard Worker UWORD16 u2_white_point_y; 682*495ae853SAndroid Build Coastguard Worker 683*495ae853SAndroid Build Coastguard Worker /** Variable to store the max display mastering luminance value */ 684*495ae853SAndroid Build Coastguard Worker UWORD32 u4_max_display_mastering_luminance; 685*495ae853SAndroid Build Coastguard Worker 686*495ae853SAndroid Build Coastguard Worker /** Variable to store the min display mastering luminance value */ 687*495ae853SAndroid Build Coastguard Worker UWORD32 u4_min_display_mastering_luminance; 688*495ae853SAndroid Build Coastguard Worker 689*495ae853SAndroid Build Coastguard Worker /** Lower 32bits of time stamp corresponding to input buffer, 690*495ae853SAndroid Build Coastguard Worker * from which this command takes effect */ 691*495ae853SAndroid Build Coastguard Worker UWORD32 u4_timestamp_low; 692*495ae853SAndroid Build Coastguard Worker 693*495ae853SAndroid Build Coastguard Worker /** Upper 32bits of time stamp corresponding to input buffer, 694*495ae853SAndroid Build Coastguard Worker * from which this command takes effect */ 695*495ae853SAndroid Build Coastguard Worker UWORD32 u4_timestamp_high; 696*495ae853SAndroid Build Coastguard Worker 697*495ae853SAndroid Build Coastguard Worker } isvce_ctl_set_sei_mdcv_params_ip_t; 698*495ae853SAndroid Build Coastguard Worker 699*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_set_sei_mdcv_params_op_t 700*495ae853SAndroid Build Coastguard Worker { 701*495ae853SAndroid Build Coastguard Worker /** size of the structure */ 702*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 703*495ae853SAndroid Build Coastguard Worker 704*495ae853SAndroid Build Coastguard Worker /** Return error code */ 705*495ae853SAndroid Build Coastguard Worker UWORD32 u4_error_code; 706*495ae853SAndroid Build Coastguard Worker 707*495ae853SAndroid Build Coastguard Worker } isvce_ctl_set_sei_mdcv_params_op_t; 708*495ae853SAndroid Build Coastguard Worker 709*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 710*495ae853SAndroid Build Coastguard Worker /* Video control Set SEI CLL params */ 711*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 712*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_set_sei_cll_params_ip_t 713*495ae853SAndroid Build Coastguard Worker { 714*495ae853SAndroid Build Coastguard Worker /** size of the structure */ 715*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 716*495ae853SAndroid Build Coastguard Worker 717*495ae853SAndroid Build Coastguard Worker /** Command type : ISVCE_CMD_VIDEO_CTL */ 718*495ae853SAndroid Build Coastguard Worker ISVCE_API_COMMAND_TYPE_T e_cmd; 719*495ae853SAndroid Build Coastguard Worker 720*495ae853SAndroid Build Coastguard Worker /** Sub command type : ISVCE_CMD_CTL_SET_SEI_CLL_PARAMS */ 721*495ae853SAndroid Build Coastguard Worker ISVCE_CONTROL_API_COMMAND_TYPE_T e_sub_cmd; 722*495ae853SAndroid Build Coastguard Worker 723*495ae853SAndroid Build Coastguard Worker /** content light level info present flag */ 724*495ae853SAndroid Build Coastguard Worker UWORD8 u1_sei_cll_params_present_flag; 725*495ae853SAndroid Build Coastguard Worker 726*495ae853SAndroid Build Coastguard Worker /** The maximum pixel intensity of all samples */ 727*495ae853SAndroid Build Coastguard Worker UWORD16 u2_max_content_light_level; 728*495ae853SAndroid Build Coastguard Worker 729*495ae853SAndroid Build Coastguard Worker /** The average pixel intensity of all samples */ 730*495ae853SAndroid Build Coastguard Worker UWORD16 u2_max_pic_average_light_level; 731*495ae853SAndroid Build Coastguard Worker 732*495ae853SAndroid Build Coastguard Worker /** Lower 32bits of time stamp corresponding to input buffer, 733*495ae853SAndroid Build Coastguard Worker * from which this command takes effect */ 734*495ae853SAndroid Build Coastguard Worker UWORD32 u4_timestamp_low; 735*495ae853SAndroid Build Coastguard Worker 736*495ae853SAndroid Build Coastguard Worker /** Upper 32bits of time stamp corresponding to input buffer, 737*495ae853SAndroid Build Coastguard Worker * from which this command takes effect */ 738*495ae853SAndroid Build Coastguard Worker UWORD32 u4_timestamp_high; 739*495ae853SAndroid Build Coastguard Worker 740*495ae853SAndroid Build Coastguard Worker } isvce_ctl_set_sei_cll_params_ip_t; 741*495ae853SAndroid Build Coastguard Worker 742*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_set_sei_cll_params_op_t 743*495ae853SAndroid Build Coastguard Worker { 744*495ae853SAndroid Build Coastguard Worker /** size of the structure */ 745*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 746*495ae853SAndroid Build Coastguard Worker 747*495ae853SAndroid Build Coastguard Worker /** Return error code */ 748*495ae853SAndroid Build Coastguard Worker UWORD32 u4_error_code; 749*495ae853SAndroid Build Coastguard Worker 750*495ae853SAndroid Build Coastguard Worker } isvce_ctl_set_sei_cll_params_op_t; 751*495ae853SAndroid Build Coastguard Worker 752*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 753*495ae853SAndroid Build Coastguard Worker /* Video control Set SEI AVE params */ 754*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 755*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_set_sei_ave_params_ip_t 756*495ae853SAndroid Build Coastguard Worker { 757*495ae853SAndroid Build Coastguard Worker /** size of the structure */ 758*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 759*495ae853SAndroid Build Coastguard Worker 760*495ae853SAndroid Build Coastguard Worker /** Command type : ISVCE_CMD_VIDEO_CTL */ 761*495ae853SAndroid Build Coastguard Worker ISVCE_API_COMMAND_TYPE_T e_cmd; 762*495ae853SAndroid Build Coastguard Worker 763*495ae853SAndroid Build Coastguard Worker /** Sub command type : ISVCE_CMD_CTL_SET_SEI_AVE_PARAMS */ 764*495ae853SAndroid Build Coastguard Worker ISVCE_CONTROL_API_COMMAND_TYPE_T e_sub_cmd; 765*495ae853SAndroid Build Coastguard Worker 766*495ae853SAndroid Build Coastguard Worker /** ambient viewing environment info present flag */ 767*495ae853SAndroid Build Coastguard Worker UWORD8 u1_sei_ave_params_present_flag; 768*495ae853SAndroid Build Coastguard Worker 769*495ae853SAndroid Build Coastguard Worker /** specifies the environmental illluminance of the ambient viewing 770*495ae853SAndroid Build Coastguard Worker * environment */ 771*495ae853SAndroid Build Coastguard Worker UWORD32 u4_ambient_illuminance; 772*495ae853SAndroid Build Coastguard Worker 773*495ae853SAndroid Build Coastguard Worker /** specify the normalized x chromaticity coordinates of the 774*495ae853SAndroid Build Coastguard Worker * environmental ambient light in the nominal viewing environment */ 775*495ae853SAndroid Build Coastguard Worker UWORD16 u2_ambient_light_x; 776*495ae853SAndroid Build Coastguard Worker 777*495ae853SAndroid Build Coastguard Worker /** specify the normalized y chromaticity coordinates of the 778*495ae853SAndroid Build Coastguard Worker * environmental ambient light in the nominal viewing environment */ 779*495ae853SAndroid Build Coastguard Worker UWORD16 u2_ambient_light_y; 780*495ae853SAndroid Build Coastguard Worker 781*495ae853SAndroid Build Coastguard Worker /** Lower 32bits of time stamp corresponding to input buffer, 782*495ae853SAndroid Build Coastguard Worker * from which this command takes effect */ 783*495ae853SAndroid Build Coastguard Worker UWORD32 u4_timestamp_low; 784*495ae853SAndroid Build Coastguard Worker 785*495ae853SAndroid Build Coastguard Worker /** Upper 32bits of time stamp corresponding to input buffer, 786*495ae853SAndroid Build Coastguard Worker * from which this command takes effect */ 787*495ae853SAndroid Build Coastguard Worker UWORD32 u4_timestamp_high; 788*495ae853SAndroid Build Coastguard Worker 789*495ae853SAndroid Build Coastguard Worker } isvce_ctl_set_sei_ave_params_ip_t; 790*495ae853SAndroid Build Coastguard Worker 791*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_set_sei_ave_params_op_t 792*495ae853SAndroid Build Coastguard Worker { 793*495ae853SAndroid Build Coastguard Worker /** size of the structure */ 794*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 795*495ae853SAndroid Build Coastguard Worker 796*495ae853SAndroid Build Coastguard Worker /** Return error code */ 797*495ae853SAndroid Build Coastguard Worker UWORD32 u4_error_code; 798*495ae853SAndroid Build Coastguard Worker 799*495ae853SAndroid Build Coastguard Worker } isvce_ctl_set_sei_ave_params_op_t; 800*495ae853SAndroid Build Coastguard Worker 801*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 802*495ae853SAndroid Build Coastguard Worker /* Video control Set SEI CCV params */ 803*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 804*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_set_sei_ccv_params_ip_t 805*495ae853SAndroid Build Coastguard Worker { 806*495ae853SAndroid Build Coastguard Worker /** size of the structure */ 807*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 808*495ae853SAndroid Build Coastguard Worker 809*495ae853SAndroid Build Coastguard Worker /** Command type : ISVCE_CMD_VIDEO_CTL */ 810*495ae853SAndroid Build Coastguard Worker ISVCE_API_COMMAND_TYPE_T e_cmd; 811*495ae853SAndroid Build Coastguard Worker 812*495ae853SAndroid Build Coastguard Worker /** Sub command type : ISVCE_CMD_CTL_SET_SEI_CCV_PARAMS */ 813*495ae853SAndroid Build Coastguard Worker ISVCE_CONTROL_API_COMMAND_TYPE_T e_sub_cmd; 814*495ae853SAndroid Build Coastguard Worker 815*495ae853SAndroid Build Coastguard Worker /** content color volume info present flag */ 816*495ae853SAndroid Build Coastguard Worker UWORD8 u1_sei_ccv_params_present_flag; 817*495ae853SAndroid Build Coastguard Worker 818*495ae853SAndroid Build Coastguard Worker /** Flag used to control persistence of CCV SEI messages */ 819*495ae853SAndroid Build Coastguard Worker UWORD8 u1_ccv_cancel_flag; 820*495ae853SAndroid Build Coastguard Worker 821*495ae853SAndroid Build Coastguard Worker /** specifies the persistence of the CCV SEI message for the 822*495ae853SAndroid Build Coastguard Worker * current layer */ 823*495ae853SAndroid Build Coastguard Worker UWORD8 u1_ccv_persistence_flag; 824*495ae853SAndroid Build Coastguard Worker 825*495ae853SAndroid Build Coastguard Worker /** specifies the presence of syntax elements ccv_primaries_x 826*495ae853SAndroid Build Coastguard Worker * and ccv_primaries_y */ 827*495ae853SAndroid Build Coastguard Worker UWORD8 u1_ccv_primaries_present_flag; 828*495ae853SAndroid Build Coastguard Worker 829*495ae853SAndroid Build Coastguard Worker /** specifies that the syntax element ccv_min_luminance_value 830*495ae853SAndroid Build Coastguard Worker * is present */ 831*495ae853SAndroid Build Coastguard Worker UWORD8 u1_ccv_min_luminance_value_present_flag; 832*495ae853SAndroid Build Coastguard Worker 833*495ae853SAndroid Build Coastguard Worker /** specifies that the syntax element ccv_max_luminance_value 834*495ae853SAndroid Build Coastguard Worker * is present */ 835*495ae853SAndroid Build Coastguard Worker UWORD8 u1_ccv_max_luminance_value_present_flag; 836*495ae853SAndroid Build Coastguard Worker 837*495ae853SAndroid Build Coastguard Worker /** specifies that the syntax element ccv_avg_luminance_value 838*495ae853SAndroid Build Coastguard Worker * is present */ 839*495ae853SAndroid Build Coastguard Worker UWORD8 u1_ccv_avg_luminance_value_present_flag; 840*495ae853SAndroid Build Coastguard Worker 841*495ae853SAndroid Build Coastguard Worker /** shall be equal to 0 in bitstreams conforming to this version. 842*495ae853SAndroid Build Coastguard Worker * Other values for reserved_zero_2bits are reserved for future use */ 843*495ae853SAndroid Build Coastguard Worker UWORD8 u1_ccv_reserved_zero_2bits; 844*495ae853SAndroid Build Coastguard Worker 845*495ae853SAndroid Build Coastguard Worker /** specify the normalized x chromaticity coordinates of the colour 846*495ae853SAndroid Build Coastguard Worker * primary component c of the nominal content colour volume */ 847*495ae853SAndroid Build Coastguard Worker WORD32 ai4_ccv_primaries_x[3]; 848*495ae853SAndroid Build Coastguard Worker 849*495ae853SAndroid Build Coastguard Worker /** specify the normalized y chromaticity coordinates of the colour 850*495ae853SAndroid Build Coastguard Worker * primary component c of the nominal content colour volume */ 851*495ae853SAndroid Build Coastguard Worker WORD32 ai4_ccv_primaries_y[3]; 852*495ae853SAndroid Build Coastguard Worker 853*495ae853SAndroid Build Coastguard Worker /** specifies the normalized minimum luminance value */ 854*495ae853SAndroid Build Coastguard Worker UWORD32 u4_ccv_min_luminance_value; 855*495ae853SAndroid Build Coastguard Worker 856*495ae853SAndroid Build Coastguard Worker /** specifies the normalized maximum luminance value */ 857*495ae853SAndroid Build Coastguard Worker UWORD32 u4_ccv_max_luminance_value; 858*495ae853SAndroid Build Coastguard Worker 859*495ae853SAndroid Build Coastguard Worker /** specifies the normalized average luminance value */ 860*495ae853SAndroid Build Coastguard Worker UWORD32 u4_ccv_avg_luminance_value; 861*495ae853SAndroid Build Coastguard Worker 862*495ae853SAndroid Build Coastguard Worker /** Lower 32bits of time stamp corresponding to input buffer, 863*495ae853SAndroid Build Coastguard Worker * from which this command takes effect */ 864*495ae853SAndroid Build Coastguard Worker UWORD32 u4_timestamp_low; 865*495ae853SAndroid Build Coastguard Worker 866*495ae853SAndroid Build Coastguard Worker /** Upper 32bits of time stamp corresponding to input buffer, 867*495ae853SAndroid Build Coastguard Worker * from which this command takes effect */ 868*495ae853SAndroid Build Coastguard Worker UWORD32 u4_timestamp_high; 869*495ae853SAndroid Build Coastguard Worker 870*495ae853SAndroid Build Coastguard Worker } isvce_ctl_set_sei_ccv_params_ip_t; 871*495ae853SAndroid Build Coastguard Worker 872*495ae853SAndroid Build Coastguard Worker typedef struct isvce_ctl_set_sei_ccv_params_op_t 873*495ae853SAndroid Build Coastguard Worker { 874*495ae853SAndroid Build Coastguard Worker /** size of the structure */ 875*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 876*495ae853SAndroid Build Coastguard Worker 877*495ae853SAndroid Build Coastguard Worker /** Return error code */ 878*495ae853SAndroid Build Coastguard Worker UWORD32 u4_error_code; 879*495ae853SAndroid Build Coastguard Worker 880*495ae853SAndroid Build Coastguard Worker } isvce_ctl_set_sei_ccv_params_op_t; 881*495ae853SAndroid Build Coastguard Worker 882*495ae853SAndroid Build Coastguard Worker /* The enum values should not have greater than 8 bits as this is assigned to WORD8 */ 883*495ae853SAndroid Build Coastguard Worker typedef enum IV_MB_TYPE_T 884*495ae853SAndroid Build Coastguard Worker { 885*495ae853SAndroid Build Coastguard Worker INTRA16x16 = 0, 886*495ae853SAndroid Build Coastguard Worker INTRA4x4, 887*495ae853SAndroid Build Coastguard Worker INTER16x16 888*495ae853SAndroid Build Coastguard Worker } IV_MB_TYPE_T; 889*495ae853SAndroid Build Coastguard Worker 890*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 891*495ae853SAndroid Build Coastguard Worker /* Pic info structures */ 892*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 893*495ae853SAndroid Build Coastguard Worker typedef struct isvce_pic_info1_t 894*495ae853SAndroid Build Coastguard Worker { 895*495ae853SAndroid Build Coastguard Worker /** Qp */ 896*495ae853SAndroid Build Coastguard Worker UWORD32 u4_qp; 897*495ae853SAndroid Build Coastguard Worker 898*495ae853SAndroid Build Coastguard Worker /** Pic Type */ 899*495ae853SAndroid Build Coastguard Worker IV_PICTURE_CODING_TYPE_T e_frame_type; 900*495ae853SAndroid Build Coastguard Worker 901*495ae853SAndroid Build Coastguard Worker } isvce_pic_info1_t; 902*495ae853SAndroid Build Coastguard Worker 903*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 904*495ae853SAndroid Build Coastguard Worker /* MB info structures */ 905*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 906*495ae853SAndroid Build Coastguard Worker typedef struct isvce_mv_t 907*495ae853SAndroid Build Coastguard Worker { 908*495ae853SAndroid Build Coastguard Worker /** MV X */ 909*495ae853SAndroid Build Coastguard Worker WORD16 i2_mv_x; 910*495ae853SAndroid Build Coastguard Worker 911*495ae853SAndroid Build Coastguard Worker /** MV Y */ 912*495ae853SAndroid Build Coastguard Worker WORD16 i2_mv_y; 913*495ae853SAndroid Build Coastguard Worker } isvce_mv_t; 914*495ae853SAndroid Build Coastguard Worker 915*495ae853SAndroid Build Coastguard Worker typedef struct isvce_mb_info1_t 916*495ae853SAndroid Build Coastguard Worker { 917*495ae853SAndroid Build Coastguard Worker /** Intra / Inter */ 918*495ae853SAndroid Build Coastguard Worker WORD8 i1_mb_type; 919*495ae853SAndroid Build Coastguard Worker 920*495ae853SAndroid Build Coastguard Worker union 921*495ae853SAndroid Build Coastguard Worker { 922*495ae853SAndroid Build Coastguard Worker isvce_mv_t as_mv[1]; 923*495ae853SAndroid Build Coastguard Worker 924*495ae853SAndroid Build Coastguard Worker /** Intra mode */ 925*495ae853SAndroid Build Coastguard Worker WORD8 ai1_intra_mode[1]; 926*495ae853SAndroid Build Coastguard Worker }; 927*495ae853SAndroid Build Coastguard Worker } isvce_mb_info1_t; 928*495ae853SAndroid Build Coastguard Worker 929*495ae853SAndroid Build Coastguard Worker typedef struct isvce_mb_info2_t 930*495ae853SAndroid Build Coastguard Worker { 931*495ae853SAndroid Build Coastguard Worker /** Intra / Inter */ 932*495ae853SAndroid Build Coastguard Worker WORD8 i1_mb_type; 933*495ae853SAndroid Build Coastguard Worker 934*495ae853SAndroid Build Coastguard Worker /** SAD */ 935*495ae853SAndroid Build Coastguard Worker UWORD16 u2_sad; 936*495ae853SAndroid Build Coastguard Worker 937*495ae853SAndroid Build Coastguard Worker union 938*495ae853SAndroid Build Coastguard Worker { 939*495ae853SAndroid Build Coastguard Worker isvce_mv_t as_mv[1]; 940*495ae853SAndroid Build Coastguard Worker 941*495ae853SAndroid Build Coastguard Worker /** Intra mode */ 942*495ae853SAndroid Build Coastguard Worker WORD8 ai1_intra_mode[1]; 943*495ae853SAndroid Build Coastguard Worker }; 944*495ae853SAndroid Build Coastguard Worker 945*495ae853SAndroid Build Coastguard Worker } isvce_mb_info2_t; 946*495ae853SAndroid Build Coastguard Worker 947*495ae853SAndroid Build Coastguard Worker typedef struct isvce_mb_info3_t 948*495ae853SAndroid Build Coastguard Worker { 949*495ae853SAndroid Build Coastguard Worker /** Intra / Inter */ 950*495ae853SAndroid Build Coastguard Worker WORD8 i1_mb_type; 951*495ae853SAndroid Build Coastguard Worker 952*495ae853SAndroid Build Coastguard Worker union 953*495ae853SAndroid Build Coastguard Worker { 954*495ae853SAndroid Build Coastguard Worker isvce_mv_t as_mv[4]; 955*495ae853SAndroid Build Coastguard Worker 956*495ae853SAndroid Build Coastguard Worker /** Intra mode */ 957*495ae853SAndroid Build Coastguard Worker WORD8 ai1_intra_mode[16]; 958*495ae853SAndroid Build Coastguard Worker }; 959*495ae853SAndroid Build Coastguard Worker 960*495ae853SAndroid Build Coastguard Worker } isvce_mb_info3_t; 961*495ae853SAndroid Build Coastguard Worker 962*495ae853SAndroid Build Coastguard Worker typedef struct isvce_mb_info4_t 963*495ae853SAndroid Build Coastguard Worker { 964*495ae853SAndroid Build Coastguard Worker /** Intra / Inter */ 965*495ae853SAndroid Build Coastguard Worker WORD8 i1_mb_type; 966*495ae853SAndroid Build Coastguard Worker 967*495ae853SAndroid Build Coastguard Worker /** Intra Mode */ 968*495ae853SAndroid Build Coastguard Worker WORD8 i1_intra_mode; 969*495ae853SAndroid Build Coastguard Worker 970*495ae853SAndroid Build Coastguard Worker /** SAD */ 971*495ae853SAndroid Build Coastguard Worker UWORD16 u2_sad; 972*495ae853SAndroid Build Coastguard Worker 973*495ae853SAndroid Build Coastguard Worker union 974*495ae853SAndroid Build Coastguard Worker { 975*495ae853SAndroid Build Coastguard Worker isvce_mv_t as_mv[16]; 976*495ae853SAndroid Build Coastguard Worker 977*495ae853SAndroid Build Coastguard Worker /** Intra mode */ 978*495ae853SAndroid Build Coastguard Worker WORD8 ai1_intra_mode[16]; 979*495ae853SAndroid Build Coastguard Worker }; 980*495ae853SAndroid Build Coastguard Worker 981*495ae853SAndroid Build Coastguard Worker } isvce_mb_info4_t; 982*495ae853SAndroid Build Coastguard Worker 983*495ae853SAndroid Build Coastguard Worker /* Add any new structures to the following union. It is used to calculate the 984*495ae853SAndroid Build Coastguard Worker * max size needed for allocation of memory */ 985*495ae853SAndroid Build Coastguard Worker typedef struct isvce_api_mb_info_t 986*495ae853SAndroid Build Coastguard Worker { 987*495ae853SAndroid Build Coastguard Worker union 988*495ae853SAndroid Build Coastguard Worker { 989*495ae853SAndroid Build Coastguard Worker isvce_mb_info1_t s_mb_info1; 990*495ae853SAndroid Build Coastguard Worker isvce_mb_info2_t s_mb_info2; 991*495ae853SAndroid Build Coastguard Worker isvce_mb_info3_t s_mb_info3; 992*495ae853SAndroid Build Coastguard Worker isvce_mb_info4_t s_mb_info4; 993*495ae853SAndroid Build Coastguard Worker }; 994*495ae853SAndroid Build Coastguard Worker } isvce_api_mb_info_t; 995*495ae853SAndroid Build Coastguard Worker 996*495ae853SAndroid Build Coastguard Worker typedef struct isvce_pic_info2_t 997*495ae853SAndroid Build Coastguard Worker { 998*495ae853SAndroid Build Coastguard Worker /** Qp */ 999*495ae853SAndroid Build Coastguard Worker UWORD32 u4_qp; 1000*495ae853SAndroid Build Coastguard Worker 1001*495ae853SAndroid Build Coastguard Worker /** Pic Type */ 1002*495ae853SAndroid Build Coastguard Worker IV_PICTURE_CODING_TYPE_T e_frame_type; 1003*495ae853SAndroid Build Coastguard Worker 1004*495ae853SAndroid Build Coastguard Worker /** Disable deblock level (0: Enable completely, 3: Disable completely */ 1005*495ae853SAndroid Build Coastguard Worker UWORD32 u4_disable_deblock_level; 1006*495ae853SAndroid Build Coastguard Worker 1007*495ae853SAndroid Build Coastguard Worker } isvce_pic_info2_t; 1008*495ae853SAndroid Build Coastguard Worker 1009*495ae853SAndroid Build Coastguard Worker typedef struct isvce_api_cmds_t 1010*495ae853SAndroid Build Coastguard Worker { 1011*495ae853SAndroid Build Coastguard Worker ISVCE_API_COMMAND_TYPE_T e_cmd; 1012*495ae853SAndroid Build Coastguard Worker 1013*495ae853SAndroid Build Coastguard Worker ISVCE_CONTROL_API_COMMAND_TYPE_T e_ctl_cmd; 1014*495ae853SAndroid Build Coastguard Worker } isvce_api_cmds_t; 1015*495ae853SAndroid Build Coastguard Worker 1016*495ae853SAndroid Build Coastguard Worker extern IV_STATUS_T isvce_api_function(iv_obj_t *ps_handle, void *pv_api_ip, void *pv_api_op, 1017*495ae853SAndroid Build Coastguard Worker isvce_api_cmds_t *ps_iv_api_cmds); 1018*495ae853SAndroid Build Coastguard Worker 1019*495ae853SAndroid Build Coastguard Worker #ifdef __cplusplus 1020*495ae853SAndroid Build Coastguard Worker } /* closing brace for extern "C" */ 1021*495ae853SAndroid Build Coastguard Worker #endif 1022*495ae853SAndroid Build Coastguard Worker 1023*495ae853SAndroid Build Coastguard Worker #endif 1024