1*495ae853SAndroid Build Coastguard Worker /****************************************************************************** 2*495ae853SAndroid Build Coastguard Worker * 3*495ae853SAndroid Build Coastguard Worker * Copyright (C) 2015 The Android Open Source Project 4*495ae853SAndroid Build Coastguard Worker * 5*495ae853SAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 6*495ae853SAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 7*495ae853SAndroid Build Coastguard Worker * You may obtain a copy of the License at: 8*495ae853SAndroid Build Coastguard Worker * 9*495ae853SAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 10*495ae853SAndroid Build Coastguard Worker * 11*495ae853SAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 12*495ae853SAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 13*495ae853SAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*495ae853SAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 15*495ae853SAndroid Build Coastguard Worker * limitations under the License. 16*495ae853SAndroid Build Coastguard Worker * 17*495ae853SAndroid Build Coastguard Worker ***************************************************************************** 18*495ae853SAndroid Build Coastguard Worker * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore 19*495ae853SAndroid Build Coastguard Worker */ 20*495ae853SAndroid Build Coastguard Worker 21*495ae853SAndroid Build Coastguard Worker /** 22*495ae853SAndroid Build Coastguard Worker ****************************************************************************** 23*495ae853SAndroid Build Coastguard Worker * @file 24*495ae853SAndroid Build Coastguard Worker * ih264e.h 25*495ae853SAndroid Build Coastguard Worker * 26*495ae853SAndroid Build Coastguard Worker * @brief 27*495ae853SAndroid Build Coastguard Worker * This file contains all the necessary structure and enumeration definitions 28*495ae853SAndroid Build Coastguard Worker * needed for the Application Program Interface(API) of the Ittiam H264 Encoder 29*495ae853SAndroid Build Coastguard Worker * 30*495ae853SAndroid Build Coastguard Worker * @author 31*495ae853SAndroid Build Coastguard Worker * ittiam 32*495ae853SAndroid Build Coastguard Worker * 33*495ae853SAndroid Build Coastguard Worker * @remarks 34*495ae853SAndroid Build Coastguard Worker * none 35*495ae853SAndroid Build Coastguard Worker ****************************************************************************** 36*495ae853SAndroid Build Coastguard Worker */ 37*495ae853SAndroid Build Coastguard Worker 38*495ae853SAndroid Build Coastguard Worker #ifndef _IH264E_H_ 39*495ae853SAndroid Build Coastguard Worker #define _IH264E_H_ 40*495ae853SAndroid Build Coastguard Worker 41*495ae853SAndroid Build Coastguard Worker #ifdef __cplusplus 42*495ae853SAndroid Build Coastguard Worker extern "C" { 43*495ae853SAndroid Build Coastguard Worker #endif 44*495ae853SAndroid Build Coastguard Worker 45*495ae853SAndroid Build Coastguard Worker #include "iv2.h" 46*495ae853SAndroid Build Coastguard Worker #include "ive2.h" 47*495ae853SAndroid Build Coastguard Worker 48*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 49*495ae853SAndroid Build Coastguard Worker /* Constant Macros */ 50*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 51*495ae853SAndroid Build Coastguard Worker 52*495ae853SAndroid Build Coastguard Worker 53*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 54*495ae853SAndroid Build Coastguard Worker /* Function Declarations */ 55*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 56*495ae853SAndroid Build Coastguard Worker IV_STATUS_T ih264e_api_function(iv_obj_t *ps_handle, void *pv_api_ip, 57*495ae853SAndroid Build Coastguard Worker void *pv_api_op); 58*495ae853SAndroid Build Coastguard Worker 59*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 60*495ae853SAndroid Build Coastguard Worker /* Enums */ 61*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 62*495ae853SAndroid Build Coastguard Worker typedef enum 63*495ae853SAndroid Build Coastguard Worker { 64*495ae853SAndroid Build Coastguard Worker IH264E_CMD_CTL_SET_ME_INFO_ENABLE, 65*495ae853SAndroid Build Coastguard Worker }IH264E_CMD_CTL_SUB_CMDS; 66*495ae853SAndroid Build Coastguard Worker 67*495ae853SAndroid Build Coastguard Worker /* NOTE: Ensure this enum values are not greater than 8 bits as this is being 68*495ae853SAndroid Build Coastguard Worker * assigned to WORD8 */ 69*495ae853SAndroid Build Coastguard Worker typedef enum 70*495ae853SAndroid Build Coastguard Worker { 71*495ae853SAndroid Build Coastguard Worker INTRA16x16 = 0, 72*495ae853SAndroid Build Coastguard Worker INTRA4x4, 73*495ae853SAndroid Build Coastguard Worker INTER16x16, 74*495ae853SAndroid Build Coastguard Worker }IV_MB_TYPE_T; 75*495ae853SAndroid Build Coastguard Worker 76*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 77*495ae853SAndroid Build Coastguard Worker /* Extended Structures */ 78*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 79*495ae853SAndroid Build Coastguard Worker 80*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 81*495ae853SAndroid Build Coastguard Worker /* Get Number of Memory Records */ 82*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 83*495ae853SAndroid Build Coastguard Worker typedef struct 84*495ae853SAndroid Build Coastguard Worker { 85*495ae853SAndroid Build Coastguard Worker iv_num_mem_rec_ip_t s_ive_ip; 86*495ae853SAndroid Build Coastguard Worker }ih264e_num_mem_rec_ip_t; 87*495ae853SAndroid Build Coastguard Worker 88*495ae853SAndroid Build Coastguard Worker typedef struct 89*495ae853SAndroid Build Coastguard Worker { 90*495ae853SAndroid Build Coastguard Worker iv_num_mem_rec_op_t s_ive_op; 91*495ae853SAndroid Build Coastguard Worker }ih264e_num_mem_rec_op_t; 92*495ae853SAndroid Build Coastguard Worker 93*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 94*495ae853SAndroid Build Coastguard Worker /* Fill Memory Records */ 95*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 96*495ae853SAndroid Build Coastguard Worker typedef struct 97*495ae853SAndroid Build Coastguard Worker { 98*495ae853SAndroid Build Coastguard Worker iv_fill_mem_rec_ip_t s_ive_ip; 99*495ae853SAndroid Build Coastguard Worker }ih264e_fill_mem_rec_ip_t; 100*495ae853SAndroid Build Coastguard Worker 101*495ae853SAndroid Build Coastguard Worker typedef struct 102*495ae853SAndroid Build Coastguard Worker { 103*495ae853SAndroid Build Coastguard Worker iv_fill_mem_rec_op_t s_ive_op; 104*495ae853SAndroid Build Coastguard Worker }ih264e_fill_mem_rec_op_t; 105*495ae853SAndroid Build Coastguard Worker 106*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 107*495ae853SAndroid Build Coastguard Worker /* Retrieve Memory Records */ 108*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 109*495ae853SAndroid Build Coastguard Worker typedef struct 110*495ae853SAndroid Build Coastguard Worker { 111*495ae853SAndroid Build Coastguard Worker iv_retrieve_mem_rec_ip_t s_ive_ip; 112*495ae853SAndroid Build Coastguard Worker }ih264e_retrieve_mem_rec_ip_t; 113*495ae853SAndroid Build Coastguard Worker 114*495ae853SAndroid Build Coastguard Worker typedef struct 115*495ae853SAndroid Build Coastguard Worker { 116*495ae853SAndroid Build Coastguard Worker iv_retrieve_mem_rec_op_t s_ive_op; 117*495ae853SAndroid Build Coastguard Worker }ih264e_retrieve_mem_rec_op_t; 118*495ae853SAndroid Build Coastguard Worker 119*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 120*495ae853SAndroid Build Coastguard Worker /* Initialize encoder */ 121*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 122*495ae853SAndroid Build Coastguard Worker typedef struct 123*495ae853SAndroid Build Coastguard Worker { 124*495ae853SAndroid Build Coastguard Worker ive_init_ip_t s_ive_ip; 125*495ae853SAndroid Build Coastguard Worker }ih264e_init_ip_t; 126*495ae853SAndroid Build Coastguard Worker 127*495ae853SAndroid Build Coastguard Worker typedef struct 128*495ae853SAndroid Build Coastguard Worker { 129*495ae853SAndroid Build Coastguard Worker ive_init_op_t s_ive_op; 130*495ae853SAndroid Build Coastguard Worker }ih264e_init_op_t; 131*495ae853SAndroid Build Coastguard Worker 132*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 133*495ae853SAndroid Build Coastguard Worker /* Queue Input raw buffer - Send the YUV buffer to be encoded */ 134*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 135*495ae853SAndroid Build Coastguard Worker typedef struct 136*495ae853SAndroid Build Coastguard Worker { 137*495ae853SAndroid Build Coastguard Worker ive_queue_inp_ip_t s_ive_ip; 138*495ae853SAndroid Build Coastguard Worker }ih264e_queue_inp_ip_t; 139*495ae853SAndroid Build Coastguard Worker 140*495ae853SAndroid Build Coastguard Worker typedef struct 141*495ae853SAndroid Build Coastguard Worker { 142*495ae853SAndroid Build Coastguard Worker ive_queue_inp_op_t s_ive_op; 143*495ae853SAndroid Build Coastguard Worker }ih264e_queue_inp_op_t; 144*495ae853SAndroid Build Coastguard Worker 145*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 146*495ae853SAndroid Build Coastguard Worker /* Dequeue Input raw buffer - Get free YUV buffer from the encoder */ 147*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 148*495ae853SAndroid Build Coastguard Worker typedef struct 149*495ae853SAndroid Build Coastguard Worker { 150*495ae853SAndroid Build Coastguard Worker ive_dequeue_inp_ip_t s_ive_ip; 151*495ae853SAndroid Build Coastguard Worker }ih264e_dequeue_inp_ip_t; 152*495ae853SAndroid Build Coastguard Worker 153*495ae853SAndroid Build Coastguard Worker typedef struct 154*495ae853SAndroid Build Coastguard Worker { 155*495ae853SAndroid Build Coastguard Worker ive_dequeue_inp_op_t s_ive_op; 156*495ae853SAndroid Build Coastguard Worker }ih264e_dequeue_inp_op_t; 157*495ae853SAndroid Build Coastguard Worker 158*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 159*495ae853SAndroid Build Coastguard Worker /* Queue Output bitstream buffer - Send the bistream buffer to be filled */ 160*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 161*495ae853SAndroid Build Coastguard Worker typedef struct 162*495ae853SAndroid Build Coastguard Worker { 163*495ae853SAndroid Build Coastguard Worker ive_queue_out_ip_t s_ive_ip; 164*495ae853SAndroid Build Coastguard Worker }ih264e_queue_out_ip_t; 165*495ae853SAndroid Build Coastguard Worker 166*495ae853SAndroid Build Coastguard Worker typedef struct 167*495ae853SAndroid Build Coastguard Worker { 168*495ae853SAndroid Build Coastguard Worker ive_queue_out_op_t s_ive_op; 169*495ae853SAndroid Build Coastguard Worker }ih264e_queue_out_op_t; 170*495ae853SAndroid Build Coastguard Worker 171*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 172*495ae853SAndroid Build Coastguard Worker /* Dequeue Output bitstream buffer - Get the bistream buffer filled */ 173*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 174*495ae853SAndroid Build Coastguard Worker typedef struct 175*495ae853SAndroid Build Coastguard Worker { 176*495ae853SAndroid Build Coastguard Worker ive_dequeue_out_ip_t s_ive_ip; 177*495ae853SAndroid Build Coastguard Worker }ih264e_dequeue_out_ip_t; 178*495ae853SAndroid Build Coastguard Worker 179*495ae853SAndroid Build Coastguard Worker typedef struct 180*495ae853SAndroid Build Coastguard Worker { 181*495ae853SAndroid Build Coastguard Worker ive_dequeue_out_op_t s_ive_op; 182*495ae853SAndroid Build Coastguard Worker }ih264e_dequeue_out_op_t; 183*495ae853SAndroid Build Coastguard Worker 184*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 185*495ae853SAndroid Build Coastguard Worker /* Get Recon data - Get the reconstructed data from encoder */ 186*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 187*495ae853SAndroid Build Coastguard Worker typedef struct 188*495ae853SAndroid Build Coastguard Worker { 189*495ae853SAndroid Build Coastguard Worker ive_get_recon_ip_t s_ive_ip; 190*495ae853SAndroid Build Coastguard Worker }ih264e_get_recon_ip_t; 191*495ae853SAndroid Build Coastguard Worker 192*495ae853SAndroid Build Coastguard Worker typedef struct 193*495ae853SAndroid Build Coastguard Worker { 194*495ae853SAndroid Build Coastguard Worker ive_get_recon_op_t s_ive_op; 195*495ae853SAndroid Build Coastguard Worker }ih264e_get_recon_op_t; 196*495ae853SAndroid Build Coastguard Worker 197*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 198*495ae853SAndroid Build Coastguard Worker /* Video control Flush */ 199*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 200*495ae853SAndroid Build Coastguard Worker typedef struct 201*495ae853SAndroid Build Coastguard Worker { 202*495ae853SAndroid Build Coastguard Worker ive_ctl_flush_ip_t s_ive_ip; 203*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_flush_ip_t; 204*495ae853SAndroid Build Coastguard Worker 205*495ae853SAndroid Build Coastguard Worker typedef struct 206*495ae853SAndroid Build Coastguard Worker { 207*495ae853SAndroid Build Coastguard Worker ive_ctl_flush_op_t s_ive_op; 208*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_flush_op_t; 209*495ae853SAndroid Build Coastguard Worker 210*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 211*495ae853SAndroid Build Coastguard Worker /* Video control reset */ 212*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 213*495ae853SAndroid Build Coastguard Worker typedef struct 214*495ae853SAndroid Build Coastguard Worker { 215*495ae853SAndroid Build Coastguard Worker ive_ctl_reset_ip_t s_ive_ip; 216*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_reset_ip_t; 217*495ae853SAndroid Build Coastguard Worker 218*495ae853SAndroid Build Coastguard Worker typedef struct 219*495ae853SAndroid Build Coastguard Worker { 220*495ae853SAndroid Build Coastguard Worker ive_ctl_reset_op_t s_ive_op; 221*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_reset_op_t; 222*495ae853SAndroid Build Coastguard Worker 223*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 224*495ae853SAndroid Build Coastguard Worker /* Video control:Get Buf Info */ 225*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 226*495ae853SAndroid Build Coastguard Worker typedef struct 227*495ae853SAndroid Build Coastguard Worker { 228*495ae853SAndroid Build Coastguard Worker ive_ctl_getbufinfo_ip_t s_ive_ip; 229*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_getbufinfo_ip_t; 230*495ae853SAndroid Build Coastguard Worker 231*495ae853SAndroid Build Coastguard Worker typedef struct 232*495ae853SAndroid Build Coastguard Worker { 233*495ae853SAndroid Build Coastguard Worker ive_ctl_getbufinfo_op_t s_ive_op; 234*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_getbufinfo_op_t; 235*495ae853SAndroid Build Coastguard Worker 236*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 237*495ae853SAndroid Build Coastguard Worker /* Video control:Get Version Info */ 238*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 239*495ae853SAndroid Build Coastguard Worker typedef struct 240*495ae853SAndroid Build Coastguard Worker { 241*495ae853SAndroid Build Coastguard Worker ive_ctl_getversioninfo_ip_t s_ive_ip; 242*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_getversioninfo_ip_t; 243*495ae853SAndroid Build Coastguard Worker 244*495ae853SAndroid Build Coastguard Worker typedef struct 245*495ae853SAndroid Build Coastguard Worker { 246*495ae853SAndroid Build Coastguard Worker ive_ctl_getversioninfo_op_t s_ive_op; 247*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_getversioninfo_op_t; 248*495ae853SAndroid Build Coastguard Worker 249*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 250*495ae853SAndroid Build Coastguard Worker /* Video control:Set default params */ 251*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 252*495ae853SAndroid Build Coastguard Worker typedef struct 253*495ae853SAndroid Build Coastguard Worker { 254*495ae853SAndroid Build Coastguard Worker ive_ctl_setdefault_ip_t s_ive_ip; 255*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_setdefault_ip_t; 256*495ae853SAndroid Build Coastguard Worker 257*495ae853SAndroid Build Coastguard Worker typedef struct 258*495ae853SAndroid Build Coastguard Worker { 259*495ae853SAndroid Build Coastguard Worker ive_ctl_setdefault_op_t s_ive_op; 260*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_setdefault_op_t; 261*495ae853SAndroid Build Coastguard Worker 262*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 263*495ae853SAndroid Build Coastguard Worker /* Video control Set IPE params */ 264*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 265*495ae853SAndroid Build Coastguard Worker typedef struct 266*495ae853SAndroid Build Coastguard Worker { 267*495ae853SAndroid Build Coastguard Worker ive_ctl_set_ipe_params_ip_t s_ive_ip; 268*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_ipe_params_ip_t; 269*495ae853SAndroid Build Coastguard Worker 270*495ae853SAndroid Build Coastguard Worker typedef struct 271*495ae853SAndroid Build Coastguard Worker { 272*495ae853SAndroid Build Coastguard Worker ive_ctl_set_ipe_params_op_t s_ive_op; 273*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_ipe_params_op_t; 274*495ae853SAndroid Build Coastguard Worker 275*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 276*495ae853SAndroid Build Coastguard Worker /* Video control Set Frame dimensions */ 277*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 278*495ae853SAndroid Build Coastguard Worker typedef struct 279*495ae853SAndroid Build Coastguard Worker { 280*495ae853SAndroid Build Coastguard Worker ive_ctl_set_dimensions_ip_t s_ive_ip; 281*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_dimensions_ip_t; 282*495ae853SAndroid Build Coastguard Worker 283*495ae853SAndroid Build Coastguard Worker typedef struct 284*495ae853SAndroid Build Coastguard Worker { 285*495ae853SAndroid Build Coastguard Worker ive_ctl_set_dimensions_op_t s_ive_op; 286*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_dimensions_op_t; 287*495ae853SAndroid Build Coastguard Worker 288*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 289*495ae853SAndroid Build Coastguard Worker /* Video control Set Frame rates */ 290*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 291*495ae853SAndroid Build Coastguard Worker typedef struct 292*495ae853SAndroid Build Coastguard Worker { 293*495ae853SAndroid Build Coastguard Worker ive_ctl_set_frame_rate_ip_t s_ive_ip; 294*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_frame_rate_ip_t; 295*495ae853SAndroid Build Coastguard Worker 296*495ae853SAndroid Build Coastguard Worker typedef struct 297*495ae853SAndroid Build Coastguard Worker { 298*495ae853SAndroid Build Coastguard Worker ive_ctl_set_frame_rate_op_t s_ive_op; 299*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_frame_rate_op_t; 300*495ae853SAndroid Build Coastguard Worker 301*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 302*495ae853SAndroid Build Coastguard Worker /* Video control Set Bitrate */ 303*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 304*495ae853SAndroid Build Coastguard Worker typedef struct 305*495ae853SAndroid Build Coastguard Worker { 306*495ae853SAndroid Build Coastguard Worker ive_ctl_set_bitrate_ip_t s_ive_ip; 307*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_bitrate_ip_t; 308*495ae853SAndroid Build Coastguard Worker 309*495ae853SAndroid Build Coastguard Worker typedef struct 310*495ae853SAndroid Build Coastguard Worker { 311*495ae853SAndroid Build Coastguard Worker ive_ctl_set_bitrate_op_t s_ive_op; 312*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_bitrate_op_t; 313*495ae853SAndroid Build Coastguard Worker 314*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 315*495ae853SAndroid Build Coastguard Worker /* Video control Set Frame type */ 316*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 317*495ae853SAndroid Build Coastguard Worker typedef struct 318*495ae853SAndroid Build Coastguard Worker { 319*495ae853SAndroid Build Coastguard Worker ive_ctl_set_frame_type_ip_t s_ive_ip; 320*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_frame_type_ip_t; 321*495ae853SAndroid Build Coastguard Worker 322*495ae853SAndroid Build Coastguard Worker typedef struct 323*495ae853SAndroid Build Coastguard Worker { 324*495ae853SAndroid Build Coastguard Worker ive_ctl_set_frame_type_op_t s_ive_op; 325*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_frame_type_op_t; 326*495ae853SAndroid Build Coastguard Worker 327*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 328*495ae853SAndroid Build Coastguard Worker /* Video control Set Encode mode */ 329*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 330*495ae853SAndroid Build Coastguard Worker typedef struct 331*495ae853SAndroid Build Coastguard Worker { 332*495ae853SAndroid Build Coastguard Worker ive_ctl_set_enc_mode_ip_t s_ive_ip; 333*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_enc_mode_ip_t; 334*495ae853SAndroid Build Coastguard Worker 335*495ae853SAndroid Build Coastguard Worker typedef struct 336*495ae853SAndroid Build Coastguard Worker { 337*495ae853SAndroid Build Coastguard Worker ive_ctl_set_enc_mode_op_t s_ive_op; 338*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_enc_mode_op_t; 339*495ae853SAndroid Build Coastguard Worker 340*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 341*495ae853SAndroid Build Coastguard Worker /* Video control Set QP */ 342*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 343*495ae853SAndroid Build Coastguard Worker typedef struct 344*495ae853SAndroid Build Coastguard Worker { 345*495ae853SAndroid Build Coastguard Worker ive_ctl_set_qp_ip_t s_ive_ip; 346*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_qp_ip_t; 347*495ae853SAndroid Build Coastguard Worker 348*495ae853SAndroid Build Coastguard Worker typedef struct 349*495ae853SAndroid Build Coastguard Worker { 350*495ae853SAndroid Build Coastguard Worker ive_ctl_set_qp_op_t s_ive_op; 351*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_qp_op_t; 352*495ae853SAndroid Build Coastguard Worker 353*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 354*495ae853SAndroid Build Coastguard Worker /* Video control Set AIR params */ 355*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 356*495ae853SAndroid Build Coastguard Worker typedef struct 357*495ae853SAndroid Build Coastguard Worker { 358*495ae853SAndroid Build Coastguard Worker ive_ctl_set_air_params_ip_t s_ive_ip; 359*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_air_params_ip_t; 360*495ae853SAndroid Build Coastguard Worker 361*495ae853SAndroid Build Coastguard Worker typedef struct 362*495ae853SAndroid Build Coastguard Worker { 363*495ae853SAndroid Build Coastguard Worker ive_ctl_set_air_params_op_t s_ive_op; 364*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_air_params_op_t; 365*495ae853SAndroid Build Coastguard Worker 366*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 367*495ae853SAndroid Build Coastguard Worker /* Video control Set VBV params */ 368*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 369*495ae853SAndroid Build Coastguard Worker typedef struct 370*495ae853SAndroid Build Coastguard Worker { 371*495ae853SAndroid Build Coastguard Worker ive_ctl_set_vbv_params_ip_t s_ive_ip; 372*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_vbv_params_ip_t; 373*495ae853SAndroid Build Coastguard Worker 374*495ae853SAndroid Build Coastguard Worker typedef struct 375*495ae853SAndroid Build Coastguard Worker { 376*495ae853SAndroid Build Coastguard Worker ive_ctl_set_vbv_params_op_t s_ive_op; 377*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_vbv_params_op_t; 378*495ae853SAndroid Build Coastguard Worker 379*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 380*495ae853SAndroid Build Coastguard Worker /* Video control Set Processor Details */ 381*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 382*495ae853SAndroid Build Coastguard Worker typedef struct 383*495ae853SAndroid Build Coastguard Worker { 384*495ae853SAndroid Build Coastguard Worker ive_ctl_set_num_cores_ip_t s_ive_ip; 385*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_num_cores_ip_t; 386*495ae853SAndroid Build Coastguard Worker 387*495ae853SAndroid Build Coastguard Worker typedef struct 388*495ae853SAndroid Build Coastguard Worker { 389*495ae853SAndroid Build Coastguard Worker ive_ctl_set_num_cores_op_t s_ive_op; 390*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_num_cores_op_t; 391*495ae853SAndroid Build Coastguard Worker 392*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 393*495ae853SAndroid Build Coastguard Worker /* Video control Set Motion estimation params */ 394*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 395*495ae853SAndroid Build Coastguard Worker typedef struct 396*495ae853SAndroid Build Coastguard Worker { 397*495ae853SAndroid Build Coastguard Worker ive_ctl_set_me_params_ip_t s_ive_ip; 398*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_me_params_ip_t; 399*495ae853SAndroid Build Coastguard Worker 400*495ae853SAndroid Build Coastguard Worker typedef struct 401*495ae853SAndroid Build Coastguard Worker { 402*495ae853SAndroid Build Coastguard Worker ive_ctl_set_me_params_op_t s_ive_op; 403*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_me_params_op_t; 404*495ae853SAndroid Build Coastguard Worker 405*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 406*495ae853SAndroid Build Coastguard Worker /* Video control Set GOP params */ 407*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 408*495ae853SAndroid Build Coastguard Worker typedef struct 409*495ae853SAndroid Build Coastguard Worker { 410*495ae853SAndroid Build Coastguard Worker ive_ctl_set_gop_params_ip_t s_ive_ip; 411*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_gop_params_ip_t; 412*495ae853SAndroid Build Coastguard Worker 413*495ae853SAndroid Build Coastguard Worker typedef struct 414*495ae853SAndroid Build Coastguard Worker { 415*495ae853SAndroid Build Coastguard Worker ive_ctl_set_gop_params_op_t s_ive_op; 416*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_gop_params_op_t; 417*495ae853SAndroid Build Coastguard Worker 418*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 419*495ae853SAndroid Build Coastguard Worker /* Video control Set Deblock params */ 420*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 421*495ae853SAndroid Build Coastguard Worker typedef struct 422*495ae853SAndroid Build Coastguard Worker { 423*495ae853SAndroid Build Coastguard Worker ive_ctl_set_deblock_params_ip_t s_ive_ip; 424*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_deblock_params_ip_t; 425*495ae853SAndroid Build Coastguard Worker 426*495ae853SAndroid Build Coastguard Worker typedef struct 427*495ae853SAndroid Build Coastguard Worker { 428*495ae853SAndroid Build Coastguard Worker ive_ctl_set_deblock_params_op_t s_ive_op; 429*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_deblock_params_op_t; 430*495ae853SAndroid Build Coastguard Worker 431*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 432*495ae853SAndroid Build Coastguard Worker /* Video control Set Profile params */ 433*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 434*495ae853SAndroid Build Coastguard Worker typedef struct 435*495ae853SAndroid Build Coastguard Worker { 436*495ae853SAndroid Build Coastguard Worker ive_ctl_set_profile_params_ip_t s_ive_ip; 437*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_profile_params_ip_t; 438*495ae853SAndroid Build Coastguard Worker 439*495ae853SAndroid Build Coastguard Worker typedef struct 440*495ae853SAndroid Build Coastguard Worker { 441*495ae853SAndroid Build Coastguard Worker ive_ctl_set_profile_params_op_t s_ive_op; 442*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_profile_params_op_t; 443*495ae853SAndroid Build Coastguard Worker 444*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 445*495ae853SAndroid Build Coastguard Worker /* Synchronous video encode call */ 446*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 447*495ae853SAndroid Build Coastguard Worker typedef struct 448*495ae853SAndroid Build Coastguard Worker { 449*495ae853SAndroid Build Coastguard Worker ive_video_encode_ip_t s_ive_ip; 450*495ae853SAndroid Build Coastguard Worker }ih264e_video_encode_ip_t; 451*495ae853SAndroid Build Coastguard Worker 452*495ae853SAndroid Build Coastguard Worker typedef struct 453*495ae853SAndroid Build Coastguard Worker { 454*495ae853SAndroid Build Coastguard Worker ive_video_encode_op_t s_ive_op; 455*495ae853SAndroid Build Coastguard Worker }ih264e_video_encode_op_t; 456*495ae853SAndroid Build Coastguard Worker 457*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 458*495ae853SAndroid Build Coastguard Worker /* Video usability information */ 459*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 460*495ae853SAndroid Build Coastguard Worker typedef struct 461*495ae853SAndroid Build Coastguard Worker { 462*495ae853SAndroid Build Coastguard Worker /** size of the structure */ 463*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 464*495ae853SAndroid Build Coastguard Worker 465*495ae853SAndroid Build Coastguard Worker /** Command type : IVE_CMD_VIDEO_CTL */ 466*495ae853SAndroid Build Coastguard Worker IVE_API_COMMAND_TYPE_T e_cmd; 467*495ae853SAndroid Build Coastguard Worker 468*495ae853SAndroid Build Coastguard Worker /** Sub command type : IVE_CMD_CTL_SET_GOP_PARAMS */ 469*495ae853SAndroid Build Coastguard Worker IVE_CONTROL_API_COMMAND_TYPE_T e_sub_cmd; 470*495ae853SAndroid Build Coastguard Worker 471*495ae853SAndroid Build Coastguard Worker /** indicates the presence of aspect_ratio */ 472*495ae853SAndroid Build Coastguard Worker UWORD8 u1_aspect_ratio_info_present_flag; 473*495ae853SAndroid Build Coastguard Worker 474*495ae853SAndroid Build Coastguard Worker /** specifies the aspect ratio of the luma samples */ 475*495ae853SAndroid Build Coastguard Worker UWORD8 u1_aspect_ratio_idc; 476*495ae853SAndroid Build Coastguard Worker 477*495ae853SAndroid Build Coastguard Worker /** width of the luma samples. user dependent */ 478*495ae853SAndroid Build Coastguard Worker UWORD16 u2_sar_width; 479*495ae853SAndroid Build Coastguard Worker 480*495ae853SAndroid Build Coastguard Worker /** Height of the luma samples. user dependent */ 481*495ae853SAndroid Build Coastguard Worker UWORD16 u2_sar_height; 482*495ae853SAndroid Build Coastguard Worker 483*495ae853SAndroid Build Coastguard Worker /** if 1, specifies that the overscan_appropriate_flag is present 484*495ae853SAndroid Build Coastguard Worker * if 0, the preferred display method for the video signal is unspecified */ 485*495ae853SAndroid Build Coastguard Worker UWORD8 u1_overscan_info_present_flag; 486*495ae853SAndroid Build Coastguard Worker 487*495ae853SAndroid Build Coastguard Worker /** if 1,indicates that the cropped decoded pictures output 488*495ae853SAndroid Build Coastguard Worker * are suitable for display using overscan */ 489*495ae853SAndroid Build Coastguard Worker UWORD8 u1_overscan_appropriate_flag; 490*495ae853SAndroid Build Coastguard Worker 491*495ae853SAndroid Build Coastguard Worker /** if 1 specifies that video_format, video_full_range_flag and 492*495ae853SAndroid Build Coastguard Worker * colour_description_present_flag are present */ 493*495ae853SAndroid Build Coastguard Worker UWORD8 u1_video_signal_type_present_flag; 494*495ae853SAndroid Build Coastguard Worker 495*495ae853SAndroid Build Coastguard Worker /** pal, secam, ntsc, ... */ 496*495ae853SAndroid Build Coastguard Worker UWORD8 u1_video_format; 497*495ae853SAndroid Build Coastguard Worker 498*495ae853SAndroid Build Coastguard Worker /** indicates the black level and range of the luma and chroma signals */ 499*495ae853SAndroid Build Coastguard Worker UWORD8 u1_video_full_range_flag; 500*495ae853SAndroid Build Coastguard Worker 501*495ae853SAndroid Build Coastguard Worker /** if 1,specifies that colour_primaries, transfer_characteristics 502*495ae853SAndroid Build Coastguard Worker * and matrix_coefficients are present */ 503*495ae853SAndroid Build Coastguard Worker UWORD8 u1_colour_description_present_flag; 504*495ae853SAndroid Build Coastguard Worker 505*495ae853SAndroid Build Coastguard Worker /** indicates the chromaticity coordinates of the source primaries */ 506*495ae853SAndroid Build Coastguard Worker UWORD8 u1_colour_primaries; 507*495ae853SAndroid Build Coastguard Worker 508*495ae853SAndroid Build Coastguard Worker /** indicates the opto-electronic transfer characteristic of the source picture */ 509*495ae853SAndroid Build Coastguard Worker UWORD8 u1_transfer_characteristics; 510*495ae853SAndroid Build Coastguard Worker 511*495ae853SAndroid Build Coastguard Worker /** the matrix coefficients used in deriving luma and chroma signals 512*495ae853SAndroid Build Coastguard Worker * from the green, blue, and red primaries */ 513*495ae853SAndroid Build Coastguard Worker UWORD8 u1_matrix_coefficients; 514*495ae853SAndroid Build Coastguard Worker 515*495ae853SAndroid Build Coastguard Worker /** if 1, specifies that chroma_sample_loc_type_top_field and 516*495ae853SAndroid Build Coastguard Worker * chroma_sample_loc_type_bottom_field are present */ 517*495ae853SAndroid Build Coastguard Worker UWORD8 u1_chroma_loc_info_present_flag; 518*495ae853SAndroid Build Coastguard Worker 519*495ae853SAndroid Build Coastguard Worker /** location of chroma samples */ 520*495ae853SAndroid Build Coastguard Worker UWORD8 u1_chroma_sample_loc_type_top_field; 521*495ae853SAndroid Build Coastguard Worker UWORD8 u1_chroma_sample_loc_type_bottom_field; 522*495ae853SAndroid Build Coastguard Worker 523*495ae853SAndroid Build Coastguard Worker /** Indicates the presence of the num_units_in_ticks, time_scale flag */ 524*495ae853SAndroid Build Coastguard Worker UWORD8 u1_vui_timing_info_present_flag; 525*495ae853SAndroid Build Coastguard Worker 526*495ae853SAndroid Build Coastguard Worker /** Number of units that correspond to one increment of the 527*495ae853SAndroid Build Coastguard Worker * clock. Indicates the resolution */ 528*495ae853SAndroid Build Coastguard Worker UWORD32 u4_vui_num_units_in_tick; 529*495ae853SAndroid Build Coastguard Worker 530*495ae853SAndroid Build Coastguard Worker /** The number of time units that pass in one second */ 531*495ae853SAndroid Build Coastguard Worker UWORD32 u4_vui_time_scale; 532*495ae853SAndroid Build Coastguard Worker 533*495ae853SAndroid Build Coastguard Worker /** Flag indicating that time difference between two frames is a constant */ 534*495ae853SAndroid Build Coastguard Worker UWORD8 u1_fixed_frame_rate_flag; 535*495ae853SAndroid Build Coastguard Worker 536*495ae853SAndroid Build Coastguard Worker /** Indicates the presence of NAL HRD parameters */ 537*495ae853SAndroid Build Coastguard Worker UWORD8 u1_nal_hrd_parameters_present_flag; 538*495ae853SAndroid Build Coastguard Worker 539*495ae853SAndroid Build Coastguard Worker /** Indicates the presence of VCL HRD parameters */ 540*495ae853SAndroid Build Coastguard Worker UWORD8 u1_vcl_hrd_parameters_present_flag; 541*495ae853SAndroid Build Coastguard Worker 542*495ae853SAndroid Build Coastguard Worker /** Specifies the HRD operational mode */ 543*495ae853SAndroid Build Coastguard Worker UWORD8 u1_low_delay_hrd_flag; 544*495ae853SAndroid Build Coastguard Worker 545*495ae853SAndroid Build Coastguard Worker /** Indicates presence of SEI messages which include pic_struct syntax element */ 546*495ae853SAndroid Build Coastguard Worker UWORD8 u1_pic_struct_present_flag; 547*495ae853SAndroid Build Coastguard Worker 548*495ae853SAndroid Build Coastguard Worker /** 1, specifies that the following cvs bitstream restriction parameters are present */ 549*495ae853SAndroid Build Coastguard Worker UWORD8 u1_bitstream_restriction_flag; 550*495ae853SAndroid Build Coastguard Worker 551*495ae853SAndroid Build Coastguard Worker /** if 0, indicates that no pel outside the pic boundaries and 552*495ae853SAndroid Build Coastguard Worker * no sub-pels derived using pels outside the pic boundaries is used for inter prediction */ 553*495ae853SAndroid Build Coastguard Worker UWORD8 u1_motion_vectors_over_pic_boundaries_flag; 554*495ae853SAndroid Build Coastguard Worker 555*495ae853SAndroid Build Coastguard Worker /** Indicates a number of bytes not exceeded by the sum of the sizes of the VCL NAL units 556*495ae853SAndroid Build Coastguard Worker * associated with any coded picture */ 557*495ae853SAndroid Build Coastguard Worker UWORD8 u1_max_bytes_per_pic_denom; 558*495ae853SAndroid Build Coastguard Worker 559*495ae853SAndroid Build Coastguard Worker /** Indicates an upper bound for the number of bits of coding_unit() data */ 560*495ae853SAndroid Build Coastguard Worker UWORD8 u1_max_bits_per_mb_denom; 561*495ae853SAndroid Build Coastguard Worker 562*495ae853SAndroid Build Coastguard Worker /** Indicate the maximum absolute value of a decoded horizontal MV component 563*495ae853SAndroid Build Coastguard Worker * in quarter-pel luma units */ 564*495ae853SAndroid Build Coastguard Worker UWORD8 u1_log2_max_mv_length_horizontal; 565*495ae853SAndroid Build Coastguard Worker 566*495ae853SAndroid Build Coastguard Worker /** Indicate the maximum absolute value of a decoded vertical MV component 567*495ae853SAndroid Build Coastguard Worker * in quarter-pel luma units */ 568*495ae853SAndroid Build Coastguard Worker UWORD8 u1_log2_max_mv_length_vertical; 569*495ae853SAndroid Build Coastguard Worker 570*495ae853SAndroid Build Coastguard Worker /** Max number of frames that are not synchronized in display and decode order */ 571*495ae853SAndroid Build Coastguard Worker UWORD8 u1_num_reorder_frames; 572*495ae853SAndroid Build Coastguard Worker 573*495ae853SAndroid Build Coastguard Worker /** specifies required size of the HRD DPB in units of frame buffers */ 574*495ae853SAndroid Build Coastguard Worker UWORD8 u1_max_dec_frame_buffering; 575*495ae853SAndroid Build Coastguard Worker 576*495ae853SAndroid Build Coastguard Worker }ih264e_vui_ip_t; 577*495ae853SAndroid Build Coastguard Worker 578*495ae853SAndroid Build Coastguard Worker typedef struct 579*495ae853SAndroid Build Coastguard Worker { 580*495ae853SAndroid Build Coastguard Worker /** size of the structure */ 581*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 582*495ae853SAndroid Build Coastguard Worker 583*495ae853SAndroid Build Coastguard Worker /** Return error code */ 584*495ae853SAndroid Build Coastguard Worker UWORD32 u4_error_code; 585*495ae853SAndroid Build Coastguard Worker }ih264e_vui_op_t; 586*495ae853SAndroid Build Coastguard Worker 587*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 588*495ae853SAndroid Build Coastguard Worker /* Video control Set SEI MDCV params */ 589*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 590*495ae853SAndroid Build Coastguard Worker typedef struct 591*495ae853SAndroid Build Coastguard Worker { 592*495ae853SAndroid Build Coastguard Worker /** size of the structure */ 593*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 594*495ae853SAndroid Build Coastguard Worker 595*495ae853SAndroid Build Coastguard Worker /** Command type : IVE_CMD_VIDEO_CTL */ 596*495ae853SAndroid Build Coastguard Worker IVE_API_COMMAND_TYPE_T e_cmd; 597*495ae853SAndroid Build Coastguard Worker 598*495ae853SAndroid Build Coastguard Worker /** Sub command type : IVE_CMD_CTL_SET_SEI_MDCV_PARAMS */ 599*495ae853SAndroid Build Coastguard Worker IVE_CONTROL_API_COMMAND_TYPE_T e_sub_cmd; 600*495ae853SAndroid Build Coastguard Worker 601*495ae853SAndroid Build Coastguard Worker /** mastering display color volume info present flag */ 602*495ae853SAndroid Build Coastguard Worker UWORD8 u1_sei_mdcv_params_present_flag; 603*495ae853SAndroid Build Coastguard Worker 604*495ae853SAndroid Build Coastguard Worker /** Array to store the display_primaries_x values */ 605*495ae853SAndroid Build Coastguard Worker UWORD16 au2_display_primaries_x[3]; 606*495ae853SAndroid Build Coastguard Worker 607*495ae853SAndroid Build Coastguard Worker /** Array to store the display_primaries_y values */ 608*495ae853SAndroid Build Coastguard Worker UWORD16 au2_display_primaries_y[3]; 609*495ae853SAndroid Build Coastguard Worker 610*495ae853SAndroid Build Coastguard Worker /** Variable to store the white point x value */ 611*495ae853SAndroid Build Coastguard Worker UWORD16 u2_white_point_x; 612*495ae853SAndroid Build Coastguard Worker 613*495ae853SAndroid Build Coastguard Worker /** Variable to store the white point y value */ 614*495ae853SAndroid Build Coastguard Worker UWORD16 u2_white_point_y; 615*495ae853SAndroid Build Coastguard Worker 616*495ae853SAndroid Build Coastguard Worker /** Variable to store the max display mastering luminance value */ 617*495ae853SAndroid Build Coastguard Worker UWORD32 u4_max_display_mastering_luminance; 618*495ae853SAndroid Build Coastguard Worker 619*495ae853SAndroid Build Coastguard Worker /** Variable to store the min display mastering luminance value */ 620*495ae853SAndroid Build Coastguard Worker UWORD32 u4_min_display_mastering_luminance; 621*495ae853SAndroid Build Coastguard Worker 622*495ae853SAndroid Build Coastguard Worker /** Lower 32bits of time stamp corresponding to input buffer, 623*495ae853SAndroid Build Coastguard Worker * from which this command takes effect */ 624*495ae853SAndroid Build Coastguard Worker UWORD32 u4_timestamp_low; 625*495ae853SAndroid Build Coastguard Worker 626*495ae853SAndroid Build Coastguard Worker /** Upper 32bits of time stamp corresponding to input buffer, 627*495ae853SAndroid Build Coastguard Worker * from which this command takes effect */ 628*495ae853SAndroid Build Coastguard Worker UWORD32 u4_timestamp_high; 629*495ae853SAndroid Build Coastguard Worker 630*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_sei_mdcv_params_ip_t; 631*495ae853SAndroid Build Coastguard Worker 632*495ae853SAndroid Build Coastguard Worker typedef struct 633*495ae853SAndroid Build Coastguard Worker { 634*495ae853SAndroid Build Coastguard Worker /** size of the structure */ 635*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 636*495ae853SAndroid Build Coastguard Worker 637*495ae853SAndroid Build Coastguard Worker /** Return error code */ 638*495ae853SAndroid Build Coastguard Worker UWORD32 u4_error_code; 639*495ae853SAndroid Build Coastguard Worker 640*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_sei_mdcv_params_op_t; 641*495ae853SAndroid Build Coastguard Worker 642*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 643*495ae853SAndroid Build Coastguard Worker /* Video control Set SEI CLL params */ 644*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 645*495ae853SAndroid Build Coastguard Worker typedef struct 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 /** Command type : IVE_CMD_VIDEO_CTL */ 651*495ae853SAndroid Build Coastguard Worker IVE_API_COMMAND_TYPE_T e_cmd; 652*495ae853SAndroid Build Coastguard Worker 653*495ae853SAndroid Build Coastguard Worker /** Sub command type : IVE_CMD_CTL_SET_SEI_CLL_PARAMS */ 654*495ae853SAndroid Build Coastguard Worker IVE_CONTROL_API_COMMAND_TYPE_T e_sub_cmd; 655*495ae853SAndroid Build Coastguard Worker 656*495ae853SAndroid Build Coastguard Worker /** content light level info present flag */ 657*495ae853SAndroid Build Coastguard Worker UWORD8 u1_sei_cll_params_present_flag; 658*495ae853SAndroid Build Coastguard Worker 659*495ae853SAndroid Build Coastguard Worker /** The maximum pixel intensity of all samples */ 660*495ae853SAndroid Build Coastguard Worker UWORD16 u2_max_content_light_level; 661*495ae853SAndroid Build Coastguard Worker 662*495ae853SAndroid Build Coastguard Worker /** The average pixel intensity of all samples */ 663*495ae853SAndroid Build Coastguard Worker UWORD16 u2_max_pic_average_light_level; 664*495ae853SAndroid Build Coastguard Worker 665*495ae853SAndroid Build Coastguard Worker /** Lower 32bits of time stamp corresponding to input buffer, 666*495ae853SAndroid Build Coastguard Worker * from which this command takes effect */ 667*495ae853SAndroid Build Coastguard Worker UWORD32 u4_timestamp_low; 668*495ae853SAndroid Build Coastguard Worker 669*495ae853SAndroid Build Coastguard Worker /** Upper 32bits of time stamp corresponding to input buffer, 670*495ae853SAndroid Build Coastguard Worker * from which this command takes effect */ 671*495ae853SAndroid Build Coastguard Worker UWORD32 u4_timestamp_high; 672*495ae853SAndroid Build Coastguard Worker 673*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_sei_cll_params_ip_t; 674*495ae853SAndroid Build Coastguard Worker 675*495ae853SAndroid Build Coastguard Worker typedef struct 676*495ae853SAndroid Build Coastguard Worker { 677*495ae853SAndroid Build Coastguard Worker /** size of the structure */ 678*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 679*495ae853SAndroid Build Coastguard Worker 680*495ae853SAndroid Build Coastguard Worker /** Return error code */ 681*495ae853SAndroid Build Coastguard Worker UWORD32 u4_error_code; 682*495ae853SAndroid Build Coastguard Worker 683*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_sei_cll_params_op_t; 684*495ae853SAndroid Build Coastguard Worker 685*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 686*495ae853SAndroid Build Coastguard Worker /* Video control Set SEI AVE params */ 687*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 688*495ae853SAndroid Build Coastguard Worker typedef struct 689*495ae853SAndroid Build Coastguard Worker { 690*495ae853SAndroid Build Coastguard Worker /** size of the structure */ 691*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 692*495ae853SAndroid Build Coastguard Worker 693*495ae853SAndroid Build Coastguard Worker /** Command type : IVE_CMD_VIDEO_CTL */ 694*495ae853SAndroid Build Coastguard Worker IVE_API_COMMAND_TYPE_T e_cmd; 695*495ae853SAndroid Build Coastguard Worker 696*495ae853SAndroid Build Coastguard Worker /** Sub command type : IVE_CMD_CTL_SET_SEI_AVE_PARAMS */ 697*495ae853SAndroid Build Coastguard Worker IVE_CONTROL_API_COMMAND_TYPE_T e_sub_cmd; 698*495ae853SAndroid Build Coastguard Worker 699*495ae853SAndroid Build Coastguard Worker /** ambient viewing environment info present flag */ 700*495ae853SAndroid Build Coastguard Worker UWORD8 u1_sei_ave_params_present_flag; 701*495ae853SAndroid Build Coastguard Worker 702*495ae853SAndroid Build Coastguard Worker /** specifies the environmental illluminance of the ambient viewing 703*495ae853SAndroid Build Coastguard Worker * environment */ 704*495ae853SAndroid Build Coastguard Worker UWORD32 u4_ambient_illuminance; 705*495ae853SAndroid Build Coastguard Worker 706*495ae853SAndroid Build Coastguard Worker /** specify the normalized x chromaticity coordinates of the 707*495ae853SAndroid Build Coastguard Worker * environmental ambient light in the nominal viewing environment */ 708*495ae853SAndroid Build Coastguard Worker UWORD16 u2_ambient_light_x; 709*495ae853SAndroid Build Coastguard Worker 710*495ae853SAndroid Build Coastguard Worker /** specify the normalized y chromaticity coordinates of the 711*495ae853SAndroid Build Coastguard Worker * environmental ambient light in the nominal viewing environment */ 712*495ae853SAndroid Build Coastguard Worker UWORD16 u2_ambient_light_y; 713*495ae853SAndroid Build Coastguard Worker 714*495ae853SAndroid Build Coastguard Worker /** Lower 32bits of time stamp corresponding to input buffer, 715*495ae853SAndroid Build Coastguard Worker * from which this command takes effect */ 716*495ae853SAndroid Build Coastguard Worker UWORD32 u4_timestamp_low; 717*495ae853SAndroid Build Coastguard Worker 718*495ae853SAndroid Build Coastguard Worker /** Upper 32bits of time stamp corresponding to input buffer, 719*495ae853SAndroid Build Coastguard Worker * from which this command takes effect */ 720*495ae853SAndroid Build Coastguard Worker UWORD32 u4_timestamp_high; 721*495ae853SAndroid Build Coastguard Worker 722*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_sei_ave_params_ip_t; 723*495ae853SAndroid Build Coastguard Worker 724*495ae853SAndroid Build Coastguard Worker typedef struct 725*495ae853SAndroid Build Coastguard Worker { 726*495ae853SAndroid Build Coastguard Worker /** size of the structure */ 727*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 728*495ae853SAndroid Build Coastguard Worker 729*495ae853SAndroid Build Coastguard Worker /** Return error code */ 730*495ae853SAndroid Build Coastguard Worker UWORD32 u4_error_code; 731*495ae853SAndroid Build Coastguard Worker 732*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_sei_ave_params_op_t; 733*495ae853SAndroid Build Coastguard Worker 734*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 735*495ae853SAndroid Build Coastguard Worker /* Video control Set SEI CCV params */ 736*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 737*495ae853SAndroid Build Coastguard Worker typedef struct 738*495ae853SAndroid Build Coastguard Worker { 739*495ae853SAndroid Build Coastguard Worker /** size of the structure */ 740*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 741*495ae853SAndroid Build Coastguard Worker 742*495ae853SAndroid Build Coastguard Worker /** Command type : IVE_CMD_VIDEO_CTL */ 743*495ae853SAndroid Build Coastguard Worker IVE_API_COMMAND_TYPE_T e_cmd; 744*495ae853SAndroid Build Coastguard Worker 745*495ae853SAndroid Build Coastguard Worker /** Sub command type : IVE_CMD_CTL_SET_SEI_CCV_PARAMS */ 746*495ae853SAndroid Build Coastguard Worker IVE_CONTROL_API_COMMAND_TYPE_T e_sub_cmd; 747*495ae853SAndroid Build Coastguard Worker 748*495ae853SAndroid Build Coastguard Worker /** content color volume info present flag */ 749*495ae853SAndroid Build Coastguard Worker UWORD8 u1_sei_ccv_params_present_flag; 750*495ae853SAndroid Build Coastguard Worker 751*495ae853SAndroid Build Coastguard Worker /** Flag used to control persistence of CCV SEI messages */ 752*495ae853SAndroid Build Coastguard Worker UWORD8 u1_ccv_cancel_flag; 753*495ae853SAndroid Build Coastguard Worker 754*495ae853SAndroid Build Coastguard Worker /** specifies the persistence of the CCV SEI message for the 755*495ae853SAndroid Build Coastguard Worker * current layer */ 756*495ae853SAndroid Build Coastguard Worker UWORD8 u1_ccv_persistence_flag; 757*495ae853SAndroid Build Coastguard Worker 758*495ae853SAndroid Build Coastguard Worker /** specifies the presence of syntax elements ccv_primaries_x 759*495ae853SAndroid Build Coastguard Worker * and ccv_primaries_y */ 760*495ae853SAndroid Build Coastguard Worker UWORD8 u1_ccv_primaries_present_flag; 761*495ae853SAndroid Build Coastguard Worker 762*495ae853SAndroid Build Coastguard Worker /** specifies that the syntax element ccv_min_luminance_value 763*495ae853SAndroid Build Coastguard Worker * is present */ 764*495ae853SAndroid Build Coastguard Worker UWORD8 u1_ccv_min_luminance_value_present_flag; 765*495ae853SAndroid Build Coastguard Worker 766*495ae853SAndroid Build Coastguard Worker /** specifies that the syntax element ccv_max_luminance_value 767*495ae853SAndroid Build Coastguard Worker * is present */ 768*495ae853SAndroid Build Coastguard Worker UWORD8 u1_ccv_max_luminance_value_present_flag; 769*495ae853SAndroid Build Coastguard Worker 770*495ae853SAndroid Build Coastguard Worker /** specifies that the syntax element ccv_avg_luminance_value 771*495ae853SAndroid Build Coastguard Worker * is present */ 772*495ae853SAndroid Build Coastguard Worker UWORD8 u1_ccv_avg_luminance_value_present_flag; 773*495ae853SAndroid Build Coastguard Worker 774*495ae853SAndroid Build Coastguard Worker /** shall be equal to 0 in bitstreams conforming to this version. 775*495ae853SAndroid Build Coastguard Worker * Other values for reserved_zero_2bits are reserved for future use */ 776*495ae853SAndroid Build Coastguard Worker UWORD8 u1_ccv_reserved_zero_2bits; 777*495ae853SAndroid Build Coastguard Worker 778*495ae853SAndroid Build Coastguard Worker /** specify the normalized x chromaticity coordinates of the colour 779*495ae853SAndroid Build Coastguard Worker * primary component c of the nominal content colour volume */ 780*495ae853SAndroid Build Coastguard Worker WORD32 ai4_ccv_primaries_x[3]; 781*495ae853SAndroid Build Coastguard Worker 782*495ae853SAndroid Build Coastguard Worker /** specify the normalized y chromaticity coordinates of the colour 783*495ae853SAndroid Build Coastguard Worker * primary component c of the nominal content colour volume */ 784*495ae853SAndroid Build Coastguard Worker WORD32 ai4_ccv_primaries_y[3]; 785*495ae853SAndroid Build Coastguard Worker 786*495ae853SAndroid Build Coastguard Worker /** specifies the normalized minimum luminance value */ 787*495ae853SAndroid Build Coastguard Worker UWORD32 u4_ccv_min_luminance_value; 788*495ae853SAndroid Build Coastguard Worker 789*495ae853SAndroid Build Coastguard Worker /** specifies the normalized maximum luminance value */ 790*495ae853SAndroid Build Coastguard Worker UWORD32 u4_ccv_max_luminance_value; 791*495ae853SAndroid Build Coastguard Worker 792*495ae853SAndroid Build Coastguard Worker /** specifies the normalized average luminance value */ 793*495ae853SAndroid Build Coastguard Worker UWORD32 u4_ccv_avg_luminance_value; 794*495ae853SAndroid Build Coastguard Worker 795*495ae853SAndroid Build Coastguard Worker /** Lower 32bits of time stamp corresponding to input buffer, 796*495ae853SAndroid Build Coastguard Worker * from which this command takes effect */ 797*495ae853SAndroid Build Coastguard Worker UWORD32 u4_timestamp_low; 798*495ae853SAndroid Build Coastguard Worker 799*495ae853SAndroid Build Coastguard Worker /** Upper 32bits of time stamp corresponding to input buffer, 800*495ae853SAndroid Build Coastguard Worker * from which this command takes effect */ 801*495ae853SAndroid Build Coastguard Worker UWORD32 u4_timestamp_high; 802*495ae853SAndroid Build Coastguard Worker 803*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_sei_ccv_params_ip_t; 804*495ae853SAndroid Build Coastguard Worker 805*495ae853SAndroid Build Coastguard Worker typedef struct 806*495ae853SAndroid Build Coastguard Worker { 807*495ae853SAndroid Build Coastguard Worker /** size of the structure */ 808*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 809*495ae853SAndroid Build Coastguard Worker 810*495ae853SAndroid Build Coastguard Worker /** Return error code */ 811*495ae853SAndroid Build Coastguard Worker UWORD32 u4_error_code; 812*495ae853SAndroid Build Coastguard Worker 813*495ae853SAndroid Build Coastguard Worker }ih264e_ctl_set_sei_ccv_params_op_t; 814*495ae853SAndroid Build Coastguard Worker 815*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 816*495ae853SAndroid Build Coastguard Worker /* Video control Set SEI SII params */ 817*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 818*495ae853SAndroid Build Coastguard Worker 819*495ae853SAndroid Build Coastguard Worker typedef struct 820*495ae853SAndroid Build Coastguard Worker { 821*495ae853SAndroid Build Coastguard Worker /** size of the structure */ 822*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 823*495ae853SAndroid Build Coastguard Worker 824*495ae853SAndroid Build Coastguard Worker /** Command type : IVE_CMD_VIDEO_CTL */ 825*495ae853SAndroid Build Coastguard Worker IVE_API_COMMAND_TYPE_T e_cmd; 826*495ae853SAndroid Build Coastguard Worker 827*495ae853SAndroid Build Coastguard Worker /** Sub command type : IVE_CMD_CTL_SET_SEI_SII_PARAMS */ 828*495ae853SAndroid Build Coastguard Worker IVE_CONTROL_API_COMMAND_TYPE_T e_sub_cmd; 829*495ae853SAndroid Build Coastguard Worker 830*495ae853SAndroid Build Coastguard Worker /** 831*495ae853SAndroid Build Coastguard Worker * specifies if the sei sii is enabled */ 832*495ae853SAndroid Build Coastguard Worker UWORD8 u1_shutter_interval_info_present_flag; 833*495ae853SAndroid Build Coastguard Worker 834*495ae853SAndroid Build Coastguard Worker /** 835*495ae853SAndroid Build Coastguard Worker * specifies the shutter interval temporal sub-layer index 836*495ae853SAndroid Build Coastguard Worker * of the current picture */ 837*495ae853SAndroid Build Coastguard Worker UWORD32 u4_sii_sub_layer_idx; 838*495ae853SAndroid Build Coastguard Worker 839*495ae853SAndroid Build Coastguard Worker /** 840*495ae853SAndroid Build Coastguard Worker * specify the number of time units that pass in one second */ 841*495ae853SAndroid Build Coastguard Worker UWORD32 u4_sii_time_scale; 842*495ae853SAndroid Build Coastguard Worker 843*495ae853SAndroid Build Coastguard Worker /** 844*495ae853SAndroid Build Coastguard Worker * specifies that the indicated shutter interval is the same 845*495ae853SAndroid Build Coastguard Worker * for all pictures in the coded video sequence */ 846*495ae853SAndroid Build Coastguard Worker UWORD8 u1_fixed_shutter_interval_within_cvs_flag; 847*495ae853SAndroid Build Coastguard Worker 848*495ae853SAndroid Build Coastguard Worker /** 849*495ae853SAndroid Build Coastguard Worker * specifies the the number of time units of a clock operating at 850*495ae853SAndroid Build Coastguard Worker * the frequency sii_time_scale Hz that corresponds to the indicated 851*495ae853SAndroid Build Coastguard Worker * shutter interval of each picture in the coded video sequence */ 852*495ae853SAndroid Build Coastguard Worker UWORD32 u4_sii_num_units_in_shutter_interval; 853*495ae853SAndroid Build Coastguard Worker 854*495ae853SAndroid Build Coastguard Worker /** 855*495ae853SAndroid Build Coastguard Worker * sii_max_sub_layers_minus1 plus 1 specifies the maximum number of 856*495ae853SAndroid Build Coastguard Worker * shutter interval temporal sub-layers indexes that may be present 857*495ae853SAndroid Build Coastguard Worker * in the coded video sequence */ 858*495ae853SAndroid Build Coastguard Worker UWORD8 u1_sii_max_sub_layers_minus1; 859*495ae853SAndroid Build Coastguard Worker 860*495ae853SAndroid Build Coastguard Worker /** 861*495ae853SAndroid Build Coastguard Worker * specifies the number of time units of a clock operating at the 862*495ae853SAndroid Build Coastguard Worker * frequency sii_time_scale Hz that corresponds to the shutter 863*495ae853SAndroid Build Coastguard Worker * interval of each picture in the coded video sequence */ 864*495ae853SAndroid Build Coastguard Worker UWORD32 au4_sub_layer_num_units_in_shutter_interval[8]; 865*495ae853SAndroid Build Coastguard Worker 866*495ae853SAndroid Build Coastguard Worker /** 867*495ae853SAndroid Build Coastguard Worker * Lower 32bits of time stamp corresponding to input buffer, 868*495ae853SAndroid Build Coastguard Worker * from which this command takes effect */ 869*495ae853SAndroid Build Coastguard Worker UWORD32 u4_timestamp_low; 870*495ae853SAndroid Build Coastguard Worker 871*495ae853SAndroid Build Coastguard Worker /** 872*495ae853SAndroid Build Coastguard Worker * Upper 32bits of time stamp corresponding to input buffer, 873*495ae853SAndroid Build Coastguard Worker * from which this command takes effect */ 874*495ae853SAndroid Build Coastguard Worker UWORD32 u4_timestamp_high; 875*495ae853SAndroid Build Coastguard Worker 876*495ae853SAndroid Build Coastguard Worker } ih264e_ctl_set_sei_sii_params_ip_t; 877*495ae853SAndroid Build Coastguard Worker 878*495ae853SAndroid Build Coastguard Worker typedef struct 879*495ae853SAndroid Build Coastguard Worker { 880*495ae853SAndroid Build Coastguard Worker /** size of the structure */ 881*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 882*495ae853SAndroid Build Coastguard Worker 883*495ae853SAndroid Build Coastguard Worker /** Return error code */ 884*495ae853SAndroid Build Coastguard Worker UWORD32 u4_error_code; 885*495ae853SAndroid Build Coastguard Worker 886*495ae853SAndroid Build Coastguard Worker } ih264e_ctl_set_sei_sii_params_op_t; 887*495ae853SAndroid Build Coastguard Worker 888*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 889*495ae853SAndroid Build Coastguard Worker /* Pic info structures */ 890*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 891*495ae853SAndroid Build Coastguard Worker typedef struct 892*495ae853SAndroid Build Coastguard Worker { 893*495ae853SAndroid Build Coastguard Worker /** Qp */ 894*495ae853SAndroid Build Coastguard Worker UWORD32 u4_qp; 895*495ae853SAndroid Build Coastguard Worker 896*495ae853SAndroid Build Coastguard Worker /** Pic Type */ 897*495ae853SAndroid Build Coastguard Worker IV_PICTURE_CODING_TYPE_T e_frame_type; 898*495ae853SAndroid Build Coastguard Worker 899*495ae853SAndroid Build Coastguard Worker }ih264e_pic_info1_t; 900*495ae853SAndroid Build Coastguard Worker 901*495ae853SAndroid Build Coastguard Worker typedef struct 902*495ae853SAndroid Build Coastguard Worker { 903*495ae853SAndroid Build Coastguard Worker /** Qp */ 904*495ae853SAndroid Build Coastguard Worker UWORD32 u4_qp; 905*495ae853SAndroid Build Coastguard Worker 906*495ae853SAndroid Build Coastguard Worker /** Pic Type */ 907*495ae853SAndroid Build Coastguard Worker IV_PICTURE_CODING_TYPE_T e_frame_type; 908*495ae853SAndroid Build Coastguard Worker 909*495ae853SAndroid Build Coastguard Worker /** Disable deblock level (0: Enable completely, 3: Disable completely */ 910*495ae853SAndroid Build Coastguard Worker UWORD32 u4_disable_deblock_level; 911*495ae853SAndroid Build Coastguard Worker 912*495ae853SAndroid Build Coastguard Worker }ih264e_pic_info2_t; 913*495ae853SAndroid Build Coastguard Worker 914*495ae853SAndroid Build Coastguard Worker 915*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 916*495ae853SAndroid Build Coastguard Worker /* MB info structures */ 917*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 918*495ae853SAndroid Build Coastguard Worker typedef struct 919*495ae853SAndroid Build Coastguard Worker { 920*495ae853SAndroid Build Coastguard Worker /** MV X */ 921*495ae853SAndroid Build Coastguard Worker WORD16 i2_mv_x; 922*495ae853SAndroid Build Coastguard Worker 923*495ae853SAndroid Build Coastguard Worker /** MV Y */ 924*495ae853SAndroid Build Coastguard Worker WORD16 i2_mv_y; 925*495ae853SAndroid Build Coastguard Worker }ih264e_mv_t; 926*495ae853SAndroid Build Coastguard Worker 927*495ae853SAndroid Build Coastguard Worker typedef struct 928*495ae853SAndroid Build Coastguard Worker { 929*495ae853SAndroid Build Coastguard Worker /** Intra / Inter */ 930*495ae853SAndroid Build Coastguard Worker WORD8 i1_mb_type; 931*495ae853SAndroid Build Coastguard Worker union 932*495ae853SAndroid Build Coastguard Worker { 933*495ae853SAndroid Build Coastguard Worker ih264e_mv_t as_mv[1]; 934*495ae853SAndroid Build Coastguard Worker 935*495ae853SAndroid Build Coastguard Worker /** Intra mode */ 936*495ae853SAndroid Build Coastguard Worker WORD8 ai1_intra_mode[1]; 937*495ae853SAndroid Build Coastguard Worker }; 938*495ae853SAndroid Build Coastguard Worker }ih264e_mb_info1_t; 939*495ae853SAndroid Build Coastguard Worker 940*495ae853SAndroid Build Coastguard Worker typedef struct 941*495ae853SAndroid Build Coastguard Worker { 942*495ae853SAndroid Build Coastguard Worker /** Intra / Inter */ 943*495ae853SAndroid Build Coastguard Worker WORD8 i1_mb_type; 944*495ae853SAndroid Build Coastguard Worker 945*495ae853SAndroid Build Coastguard Worker 946*495ae853SAndroid Build Coastguard Worker /** SAD */ 947*495ae853SAndroid Build Coastguard Worker UWORD16 u2_sad; 948*495ae853SAndroid Build Coastguard Worker 949*495ae853SAndroid Build Coastguard Worker union 950*495ae853SAndroid Build Coastguard Worker { 951*495ae853SAndroid Build Coastguard Worker ih264e_mv_t as_mv[1]; 952*495ae853SAndroid Build Coastguard Worker 953*495ae853SAndroid Build Coastguard Worker /** Intra mode */ 954*495ae853SAndroid Build Coastguard Worker WORD8 ai1_intra_mode[1]; 955*495ae853SAndroid Build Coastguard Worker }; 956*495ae853SAndroid Build Coastguard Worker 957*495ae853SAndroid Build Coastguard Worker 958*495ae853SAndroid Build Coastguard Worker }ih264e_mb_info2_t; 959*495ae853SAndroid Build Coastguard Worker 960*495ae853SAndroid Build Coastguard Worker typedef struct 961*495ae853SAndroid Build Coastguard Worker { 962*495ae853SAndroid Build Coastguard Worker /** Intra / Inter */ 963*495ae853SAndroid Build Coastguard Worker WORD8 i1_mb_type; 964*495ae853SAndroid Build Coastguard Worker 965*495ae853SAndroid Build Coastguard Worker union 966*495ae853SAndroid Build Coastguard Worker { 967*495ae853SAndroid Build Coastguard Worker ih264e_mv_t as_mv[4]; 968*495ae853SAndroid Build Coastguard Worker 969*495ae853SAndroid Build Coastguard Worker /** Intra mode */ 970*495ae853SAndroid Build Coastguard Worker WORD8 ai1_intra_mode[16]; 971*495ae853SAndroid Build Coastguard Worker }; 972*495ae853SAndroid Build Coastguard Worker 973*495ae853SAndroid Build Coastguard Worker }ih264e_mb_info3_t; 974*495ae853SAndroid Build Coastguard Worker 975*495ae853SAndroid Build Coastguard Worker typedef struct 976*495ae853SAndroid Build Coastguard Worker { 977*495ae853SAndroid Build Coastguard Worker /** Intra / Inter */ 978*495ae853SAndroid Build Coastguard Worker WORD8 i1_mb_type; 979*495ae853SAndroid Build Coastguard Worker 980*495ae853SAndroid Build Coastguard Worker /** Intra Mode */ 981*495ae853SAndroid Build Coastguard Worker WORD8 i1_intra_mode; 982*495ae853SAndroid Build Coastguard Worker 983*495ae853SAndroid Build Coastguard Worker /** SAD */ 984*495ae853SAndroid Build Coastguard Worker UWORD16 u2_sad; 985*495ae853SAndroid Build Coastguard Worker 986*495ae853SAndroid Build Coastguard Worker union 987*495ae853SAndroid Build Coastguard Worker { 988*495ae853SAndroid Build Coastguard Worker ih264e_mv_t as_mv[16]; 989*495ae853SAndroid Build Coastguard Worker 990*495ae853SAndroid Build Coastguard Worker /** Intra mode */ 991*495ae853SAndroid Build Coastguard Worker WORD8 ai1_intra_mode[16]; 992*495ae853SAndroid Build Coastguard Worker }; 993*495ae853SAndroid Build Coastguard Worker 994*495ae853SAndroid Build Coastguard Worker }ih264e_mb_info4_t; 995*495ae853SAndroid Build Coastguard Worker 996*495ae853SAndroid Build Coastguard Worker /* Add any new structures to the following union. It is used to calculate the 997*495ae853SAndroid Build Coastguard Worker * max size needed for allocation of memory */ 998*495ae853SAndroid Build Coastguard Worker typedef struct 999*495ae853SAndroid Build Coastguard Worker { 1000*495ae853SAndroid Build Coastguard Worker union 1001*495ae853SAndroid Build Coastguard Worker { 1002*495ae853SAndroid Build Coastguard Worker ih264e_mb_info1_t s_mb_info1; 1003*495ae853SAndroid Build Coastguard Worker ih264e_mb_info2_t s_mb_info2; 1004*495ae853SAndroid Build Coastguard Worker ih264e_mb_info3_t s_mb_info3; 1005*495ae853SAndroid Build Coastguard Worker ih264e_mb_info4_t s_mb_info4; 1006*495ae853SAndroid Build Coastguard Worker }; 1007*495ae853SAndroid Build Coastguard Worker }ih264e_mb_info_t; 1008*495ae853SAndroid Build Coastguard Worker 1009*495ae853SAndroid Build Coastguard Worker #ifdef __cplusplus 1010*495ae853SAndroid Build Coastguard Worker } /* closing brace for extern "C" */ 1011*495ae853SAndroid Build Coastguard Worker 1012*495ae853SAndroid Build Coastguard Worker #endif 1013*495ae853SAndroid Build Coastguard Worker #endif /* _IH264E_H_ */ 1014