1*495ae853SAndroid Build Coastguard Worker /****************************************************************************** 2*495ae853SAndroid Build Coastguard Worker * 3*495ae853SAndroid Build Coastguard Worker * Copyright (C) 2015 The Android Open Source Project 4*495ae853SAndroid Build Coastguard Worker * 5*495ae853SAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 6*495ae853SAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 7*495ae853SAndroid Build Coastguard Worker * You may obtain a copy of the License at: 8*495ae853SAndroid Build Coastguard Worker * 9*495ae853SAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 10*495ae853SAndroid Build Coastguard Worker * 11*495ae853SAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 12*495ae853SAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 13*495ae853SAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*495ae853SAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 15*495ae853SAndroid Build Coastguard Worker * limitations under the License. 16*495ae853SAndroid Build Coastguard Worker * 17*495ae853SAndroid Build Coastguard Worker ***************************************************************************** 18*495ae853SAndroid Build Coastguard Worker * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore 19*495ae853SAndroid Build Coastguard Worker */ 20*495ae853SAndroid Build Coastguard Worker /** 21*495ae853SAndroid Build Coastguard Worker ******************************************************************************* 22*495ae853SAndroid Build Coastguard Worker * @file 23*495ae853SAndroid Build Coastguard Worker * iv2.h 24*495ae853SAndroid Build Coastguard Worker * 25*495ae853SAndroid Build Coastguard Worker * @brief 26*495ae853SAndroid Build Coastguard Worker * This file contains all the necessary structure and enumeration definitions 27*495ae853SAndroid Build Coastguard Worker * needed for the Application Program Interface(API) of the Ittiam Video codecs. 28*495ae853SAndroid Build Coastguard Worker * This is version 2 of Ittiam Video API 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 39*495ae853SAndroid Build Coastguard Worker #ifndef _IV2_H_ 40*495ae853SAndroid Build Coastguard Worker #define _IV2_H_ 41*495ae853SAndroid Build Coastguard Worker 42*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 43*495ae853SAndroid Build Coastguard Worker /* Constant Macros */ 44*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 45*495ae853SAndroid Build Coastguard Worker #define IV_MAX_RAW_COMPONENTS 4 46*495ae853SAndroid Build Coastguard Worker 47*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 48*495ae853SAndroid Build Coastguard Worker /* Typedefs */ 49*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 50*495ae853SAndroid Build Coastguard Worker 51*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 52*495ae853SAndroid Build Coastguard Worker /* Enums */ 53*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 54*495ae853SAndroid Build Coastguard Worker 55*495ae853SAndroid Build Coastguard Worker 56*495ae853SAndroid Build Coastguard Worker /** Function status */ 57*495ae853SAndroid Build Coastguard Worker typedef enum{ 58*495ae853SAndroid Build Coastguard Worker IV_STATUS_NA = 0x7FFFFFFF, 59*495ae853SAndroid Build Coastguard Worker IV_SUCCESS = 0x0, 60*495ae853SAndroid Build Coastguard Worker IV_FAIL = 0x1, 61*495ae853SAndroid Build Coastguard Worker }IV_STATUS_T; 62*495ae853SAndroid Build Coastguard Worker 63*495ae853SAndroid Build Coastguard Worker 64*495ae853SAndroid Build Coastguard Worker /** Defines the types of memory */ 65*495ae853SAndroid Build Coastguard Worker typedef enum { 66*495ae853SAndroid Build Coastguard Worker IV_NA_MEM_TYPE = 0x7FFFFFFF, 67*495ae853SAndroid Build Coastguard Worker IV_EXTERNAL_CACHEABLE_PERSISTENT_MEM = 0x0, 68*495ae853SAndroid Build Coastguard Worker IV_EXTERNAL_CACHEABLE_SCRATCH_MEM = 0x1, 69*495ae853SAndroid Build Coastguard Worker IV_EXTERNAL_NONCACHEABLE_PERSISTENT_MEM = 0x2, 70*495ae853SAndroid Build Coastguard Worker IV_EXTERNAL_NONCACHEABLE_SCRATCH_MEM = 0x3, 71*495ae853SAndroid Build Coastguard Worker IV_INTERNAL_CACHEABLE_PERSISTENT_MEM = 0x10, 72*495ae853SAndroid Build Coastguard Worker IV_INTERNAL_CACHEABLE_SCRATCH_MEM = 0x11, 73*495ae853SAndroid Build Coastguard Worker IV_INTERNAL_NONCACHEABLE_PERSISTENT_MEM = 0x12, 74*495ae853SAndroid Build Coastguard Worker IV_INTERNAL_NONCACHEABLE_SCRATCH_MEM = 0x13, 75*495ae853SAndroid Build Coastguard Worker }IV_MEM_TYPE_T; 76*495ae853SAndroid Build Coastguard Worker 77*495ae853SAndroid Build Coastguard Worker /* The color formats used in video/image codecs */ 78*495ae853SAndroid Build Coastguard Worker typedef enum { 79*495ae853SAndroid Build Coastguard Worker IV_CHROMA_NA = 0x7FFFFFFF, 80*495ae853SAndroid Build Coastguard Worker IV_YUV_420P = 0x0, 81*495ae853SAndroid Build Coastguard Worker IV_YUV_420SP_UV = 0x1, 82*495ae853SAndroid Build Coastguard Worker IV_YUV_420SP_VU = 0x2, 83*495ae853SAndroid Build Coastguard Worker 84*495ae853SAndroid Build Coastguard Worker IV_YUV_422P = 0x10, 85*495ae853SAndroid Build Coastguard Worker IV_YUV_422IBE = 0x11, 86*495ae853SAndroid Build Coastguard Worker IV_YUV_422ILE = 0x12, 87*495ae853SAndroid Build Coastguard Worker 88*495ae853SAndroid Build Coastguard Worker IV_YUV_444P = 0x20, 89*495ae853SAndroid Build Coastguard Worker IV_YUV_411P = 0x21, 90*495ae853SAndroid Build Coastguard Worker 91*495ae853SAndroid Build Coastguard Worker IV_GRAY = 0x30, 92*495ae853SAndroid Build Coastguard Worker 93*495ae853SAndroid Build Coastguard Worker IV_RGB_565 = 0x31, 94*495ae853SAndroid Build Coastguard Worker IV_RGB_24 = 0x32, 95*495ae853SAndroid Build Coastguard Worker IV_RGBA_8888 = 0x33 96*495ae853SAndroid Build Coastguard Worker }IV_COLOR_FORMAT_T; 97*495ae853SAndroid Build Coastguard Worker 98*495ae853SAndroid Build Coastguard Worker /** Frame/Field coding types */ 99*495ae853SAndroid Build Coastguard Worker typedef enum { 100*495ae853SAndroid Build Coastguard Worker IV_NA_FRAME = 0x7FFFFFFF, 101*495ae853SAndroid Build Coastguard Worker IV_I_FRAME = 0x0, 102*495ae853SAndroid Build Coastguard Worker IV_P_FRAME = 0x1, 103*495ae853SAndroid Build Coastguard Worker IV_B_FRAME = 0x2, 104*495ae853SAndroid Build Coastguard Worker IV_IDR_FRAME = 0x3, 105*495ae853SAndroid Build Coastguard Worker IV_II_FRAME = 0x4, 106*495ae853SAndroid Build Coastguard Worker IV_IP_FRAME = 0x5, 107*495ae853SAndroid Build Coastguard Worker IV_IB_FRAME = 0x6, 108*495ae853SAndroid Build Coastguard Worker IV_PI_FRAME = 0x7, 109*495ae853SAndroid Build Coastguard Worker IV_PP_FRAME = 0x8, 110*495ae853SAndroid Build Coastguard Worker IV_PB_FRAME = 0x9, 111*495ae853SAndroid Build Coastguard Worker IV_BI_FRAME = 0xa, 112*495ae853SAndroid Build Coastguard Worker IV_BP_FRAME = 0xb, 113*495ae853SAndroid Build Coastguard Worker IV_BB_FRAME = 0xc, 114*495ae853SAndroid Build Coastguard Worker IV_MBAFF_I_FRAME = 0xd, 115*495ae853SAndroid Build Coastguard Worker IV_MBAFF_P_FRAME = 0xe, 116*495ae853SAndroid Build Coastguard Worker IV_MBAFF_B_FRAME = 0xf, 117*495ae853SAndroid Build Coastguard Worker IV_MBAFF_IDR_FRAME = 0x10, 118*495ae853SAndroid Build Coastguard Worker IV_NOT_CODED_FRAME = 0x11, 119*495ae853SAndroid Build Coastguard Worker IV_FRAMETYPE_DEFAULT = IV_I_FRAME 120*495ae853SAndroid Build Coastguard Worker }IV_PICTURE_CODING_TYPE_T; 121*495ae853SAndroid Build Coastguard Worker 122*495ae853SAndroid Build Coastguard Worker /** Field type */ 123*495ae853SAndroid Build Coastguard Worker typedef enum { 124*495ae853SAndroid Build Coastguard Worker IV_NA_FLD = 0x7FFFFFFF, 125*495ae853SAndroid Build Coastguard Worker IV_TOP_FLD = 0x0, 126*495ae853SAndroid Build Coastguard Worker IV_BOT_FLD = 0x1, 127*495ae853SAndroid Build Coastguard Worker IV_FLD_TYPE_DEFAULT = IV_TOP_FLD 128*495ae853SAndroid Build Coastguard Worker }IV_FLD_TYPE_T; 129*495ae853SAndroid Build Coastguard Worker 130*495ae853SAndroid Build Coastguard Worker /** Video content type progressive/interlaced etc */ 131*495ae853SAndroid Build Coastguard Worker typedef enum { 132*495ae853SAndroid Build Coastguard Worker IV_CONTENTTYPE_NA = 0x7FFFFFFF, 133*495ae853SAndroid Build Coastguard Worker IV_PROGRESSIVE = 0x0, 134*495ae853SAndroid Build Coastguard Worker IV_INTERLACED = 0x1, 135*495ae853SAndroid Build Coastguard Worker IV_PROGRESSIVE_FRAME = 0x2, 136*495ae853SAndroid Build Coastguard Worker IV_INTERLACED_FRAME = 0x3, 137*495ae853SAndroid Build Coastguard Worker IV_INTERLACED_TOPFIELD = 0x4, 138*495ae853SAndroid Build Coastguard Worker IV_INTERLACED_BOTTOMFIELD = 0x5, 139*495ae853SAndroid Build Coastguard Worker IV_CONTENTTYPE_DEFAULT = IV_PROGRESSIVE, 140*495ae853SAndroid Build Coastguard Worker }IV_CONTENT_TYPE_T; 141*495ae853SAndroid Build Coastguard Worker 142*495ae853SAndroid Build Coastguard Worker /** Profile */ 143*495ae853SAndroid Build Coastguard Worker typedef enum 144*495ae853SAndroid Build Coastguard Worker { 145*495ae853SAndroid Build Coastguard Worker IV_PROFILE_NA = 0x7FFFFFFF, 146*495ae853SAndroid Build Coastguard Worker IV_PROFILE_BASE = 0x0, 147*495ae853SAndroid Build Coastguard Worker IV_PROFILE_MAIN = 0x1, 148*495ae853SAndroid Build Coastguard Worker IV_PROFILE_HIGH = 0x2, 149*495ae853SAndroid Build Coastguard Worker 150*495ae853SAndroid Build Coastguard Worker 151*495ae853SAndroid Build Coastguard Worker IV_PROFILE_SIMPLE = 0x100, 152*495ae853SAndroid Build Coastguard Worker IV_PROFILE_ADVSIMPLE = 0x101, 153*495ae853SAndroid Build Coastguard Worker IV_PROFILE_DEFAULT = IV_PROFILE_BASE, 154*495ae853SAndroid Build Coastguard Worker }IV_PROFILE_T; 155*495ae853SAndroid Build Coastguard Worker 156*495ae853SAndroid Build Coastguard Worker 157*495ae853SAndroid Build Coastguard Worker /** Architecture Enumeration */ 158*495ae853SAndroid Build Coastguard Worker typedef enum 159*495ae853SAndroid Build Coastguard Worker { 160*495ae853SAndroid Build Coastguard Worker ARCH_NA = 0x7FFFFFFF, 161*495ae853SAndroid Build Coastguard Worker ARCH_ARM_NONEON = 0x0, 162*495ae853SAndroid Build Coastguard Worker ARCH_ARM_A9Q, 163*495ae853SAndroid Build Coastguard Worker ARCH_ARM_A9A, 164*495ae853SAndroid Build Coastguard Worker ARCH_ARM_A9, 165*495ae853SAndroid Build Coastguard Worker ARCH_ARM_A7, 166*495ae853SAndroid Build Coastguard Worker ARCH_ARM_A5, 167*495ae853SAndroid Build Coastguard Worker ARCH_ARM_A15, 168*495ae853SAndroid Build Coastguard Worker ARCH_ARM_NEONINTR, 169*495ae853SAndroid Build Coastguard Worker ARCH_X86_GENERIC, 170*495ae853SAndroid Build Coastguard Worker ARCH_X86_SSSE3, 171*495ae853SAndroid Build Coastguard Worker ARCH_X86_SSE42, 172*495ae853SAndroid Build Coastguard Worker ARCH_ARM_A53, 173*495ae853SAndroid Build Coastguard Worker ARCH_ARM_A57, 174*495ae853SAndroid Build Coastguard Worker ARCH_ARM_V8_NEON 175*495ae853SAndroid Build Coastguard Worker }IV_ARCH_T; 176*495ae853SAndroid Build Coastguard Worker 177*495ae853SAndroid Build Coastguard Worker /** SOC Enumeration */ 178*495ae853SAndroid Build Coastguard Worker typedef enum 179*495ae853SAndroid Build Coastguard Worker { 180*495ae853SAndroid Build Coastguard Worker SOC_NA = 0x7FFFFFFF, 181*495ae853SAndroid Build Coastguard Worker SOC_GENERIC = 0x0, 182*495ae853SAndroid Build Coastguard Worker SOC_HISI_37X 183*495ae853SAndroid Build Coastguard Worker }IV_SOC_T; 184*495ae853SAndroid Build Coastguard Worker 185*495ae853SAndroid Build Coastguard Worker 186*495ae853SAndroid Build Coastguard Worker /** API command type */ 187*495ae853SAndroid Build Coastguard Worker typedef enum { 188*495ae853SAndroid Build Coastguard Worker IV_CMD_NA = 0x7FFFFFFF, 189*495ae853SAndroid Build Coastguard Worker IV_CMD_GET_NUM_MEM_REC = 0x0, 190*495ae853SAndroid Build Coastguard Worker IV_CMD_FILL_NUM_MEM_REC = 0x1, 191*495ae853SAndroid Build Coastguard Worker IV_CMD_RETRIEVE_MEMREC = 0x2, 192*495ae853SAndroid Build Coastguard Worker IV_CMD_INIT = 0x3, 193*495ae853SAndroid Build Coastguard Worker /* Do not add anything after the following entry */ 194*495ae853SAndroid Build Coastguard Worker IV_CMD_EXTENSIONS = 0x100 195*495ae853SAndroid Build Coastguard Worker }IV_API_COMMAND_TYPE_T; 196*495ae853SAndroid Build Coastguard Worker 197*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 198*495ae853SAndroid Build Coastguard Worker /* Structure Definitions */ 199*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 200*495ae853SAndroid Build Coastguard Worker 201*495ae853SAndroid Build Coastguard Worker /** This structure defines the handle for the codec instance */ 202*495ae853SAndroid Build Coastguard Worker 203*495ae853SAndroid Build Coastguard Worker typedef struct{ 204*495ae853SAndroid Build Coastguard Worker /** size of the structure */ 205*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 206*495ae853SAndroid Build Coastguard Worker /** Pointer to the API function pointer table of the codec */ 207*495ae853SAndroid Build Coastguard Worker void *pv_fxns; 208*495ae853SAndroid Build Coastguard Worker /** Pointer to the handle of the codec */ 209*495ae853SAndroid Build Coastguard Worker void *pv_codec_handle; 210*495ae853SAndroid Build Coastguard Worker }iv_obj_t; 211*495ae853SAndroid Build Coastguard Worker 212*495ae853SAndroid Build Coastguard Worker /** This structure defines the memory record holder which will * 213*495ae853SAndroid Build Coastguard Worker * be used by the codec to communicate its memory requirements to the * 214*495ae853SAndroid Build Coastguard Worker * application through appropriate API functions */ 215*495ae853SAndroid Build Coastguard Worker 216*495ae853SAndroid Build Coastguard Worker typedef struct { 217*495ae853SAndroid Build Coastguard Worker /** size of the structure */ 218*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 219*495ae853SAndroid Build Coastguard Worker /** Pointer to the memory allocated by the application */ 220*495ae853SAndroid Build Coastguard Worker void *pv_base; 221*495ae853SAndroid Build Coastguard Worker /** u4_size of the memory to be allocated */ 222*495ae853SAndroid Build Coastguard Worker UWORD32 u4_mem_size; 223*495ae853SAndroid Build Coastguard Worker /** Alignment of the memory pointer */ 224*495ae853SAndroid Build Coastguard Worker UWORD32 u4_mem_alignment; 225*495ae853SAndroid Build Coastguard Worker /** Type of the memory to be allocated */ 226*495ae853SAndroid Build Coastguard Worker IV_MEM_TYPE_T e_mem_type; 227*495ae853SAndroid Build Coastguard Worker }iv_mem_rec_t; 228*495ae853SAndroid Build Coastguard Worker 229*495ae853SAndroid Build Coastguard Worker /** This structure defines attributes for the raw buffer */ 230*495ae853SAndroid Build Coastguard Worker typedef struct { 231*495ae853SAndroid Build Coastguard Worker /** size of the structure */ 232*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 233*495ae853SAndroid Build Coastguard Worker 234*495ae853SAndroid Build Coastguard Worker /** Color format */ 235*495ae853SAndroid Build Coastguard Worker IV_COLOR_FORMAT_T e_color_fmt; 236*495ae853SAndroid Build Coastguard Worker 237*495ae853SAndroid Build Coastguard Worker /** Pointer to each component */ 238*495ae853SAndroid Build Coastguard Worker void *apv_bufs[IV_MAX_RAW_COMPONENTS]; 239*495ae853SAndroid Build Coastguard Worker 240*495ae853SAndroid Build Coastguard Worker /** Width of each component */ 241*495ae853SAndroid Build Coastguard Worker UWORD32 au4_wd[IV_MAX_RAW_COMPONENTS]; 242*495ae853SAndroid Build Coastguard Worker 243*495ae853SAndroid Build Coastguard Worker /** Height of each component */ 244*495ae853SAndroid Build Coastguard Worker UWORD32 au4_ht[IV_MAX_RAW_COMPONENTS]; 245*495ae853SAndroid Build Coastguard Worker 246*495ae853SAndroid Build Coastguard Worker /** Stride of each component */ 247*495ae853SAndroid Build Coastguard Worker UWORD32 au4_strd[IV_MAX_RAW_COMPONENTS]; 248*495ae853SAndroid Build Coastguard Worker 249*495ae853SAndroid Build Coastguard Worker }iv_raw_buf_t; 250*495ae853SAndroid Build Coastguard Worker 251*495ae853SAndroid Build Coastguard Worker /** This structure defines attributes for the bitstream buffer */ 252*495ae853SAndroid Build Coastguard Worker typedef struct 253*495ae853SAndroid Build Coastguard Worker { 254*495ae853SAndroid Build Coastguard Worker /** size of the structure */ 255*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 256*495ae853SAndroid Build Coastguard Worker 257*495ae853SAndroid Build Coastguard Worker /** Pointer to buffer */ 258*495ae853SAndroid Build Coastguard Worker void *pv_buf; 259*495ae853SAndroid Build Coastguard Worker 260*495ae853SAndroid Build Coastguard Worker /** Number of valid bytes in the buffer */ 261*495ae853SAndroid Build Coastguard Worker UWORD32 u4_bytes; 262*495ae853SAndroid Build Coastguard Worker 263*495ae853SAndroid Build Coastguard Worker /** Allocated size of the buffer */ 264*495ae853SAndroid Build Coastguard Worker UWORD32 u4_bufsize; 265*495ae853SAndroid Build Coastguard Worker 266*495ae853SAndroid Build Coastguard Worker }iv_bits_buf_t; 267*495ae853SAndroid Build Coastguard Worker 268*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 269*495ae853SAndroid Build Coastguard Worker /* Get Number of Memory Records */ 270*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 271*495ae853SAndroid Build Coastguard Worker 272*495ae853SAndroid Build Coastguard Worker /** Input structure : Get number of memory records */ 273*495ae853SAndroid Build Coastguard Worker typedef struct { 274*495ae853SAndroid Build Coastguard Worker /** size of the structure */ 275*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 276*495ae853SAndroid Build Coastguard Worker 277*495ae853SAndroid Build Coastguard Worker /** Command type */ 278*495ae853SAndroid Build Coastguard Worker IV_API_COMMAND_TYPE_T e_cmd; 279*495ae853SAndroid Build Coastguard Worker }iv_num_mem_rec_ip_t; 280*495ae853SAndroid Build Coastguard Worker 281*495ae853SAndroid Build Coastguard Worker /** Output structure : Get number of memory records */ 282*495ae853SAndroid Build Coastguard Worker typedef struct{ 283*495ae853SAndroid Build Coastguard Worker /** size of the structure */ 284*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 285*495ae853SAndroid Build Coastguard Worker 286*495ae853SAndroid Build Coastguard Worker /** Return error code */ 287*495ae853SAndroid Build Coastguard Worker UWORD32 u4_error_code; 288*495ae853SAndroid Build Coastguard Worker 289*495ae853SAndroid Build Coastguard Worker /** Number of memory records that will be used by the codec */ 290*495ae853SAndroid Build Coastguard Worker UWORD32 u4_num_mem_rec; 291*495ae853SAndroid Build Coastguard Worker }iv_num_mem_rec_op_t; 292*495ae853SAndroid Build Coastguard Worker 293*495ae853SAndroid Build Coastguard Worker 294*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 295*495ae853SAndroid Build Coastguard Worker /* Fill Memory Records */ 296*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 297*495ae853SAndroid Build Coastguard Worker 298*495ae853SAndroid Build Coastguard Worker /** Input structure : Fill memory records */ 299*495ae853SAndroid Build Coastguard Worker 300*495ae853SAndroid Build Coastguard Worker typedef struct { 301*495ae853SAndroid Build Coastguard Worker /** size of the structure */ 302*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 303*495ae853SAndroid Build Coastguard Worker 304*495ae853SAndroid Build Coastguard Worker /** Command type */ 305*495ae853SAndroid Build Coastguard Worker IV_API_COMMAND_TYPE_T e_cmd; 306*495ae853SAndroid Build Coastguard Worker 307*495ae853SAndroid Build Coastguard Worker /** Number of memory records */ 308*495ae853SAndroid Build Coastguard Worker UWORD32 u4_num_mem_rec; 309*495ae853SAndroid Build Coastguard Worker 310*495ae853SAndroid Build Coastguard Worker /** pointer to array of memrecords structures should be filled by codec 311*495ae853SAndroid Build Coastguard Worker with details of memory resource requirements */ 312*495ae853SAndroid Build Coastguard Worker iv_mem_rec_t *ps_mem_rec; 313*495ae853SAndroid Build Coastguard Worker 314*495ae853SAndroid Build Coastguard Worker /** maximum width for which codec should request memory requirements */ 315*495ae853SAndroid Build Coastguard Worker UWORD32 u4_max_wd; 316*495ae853SAndroid Build Coastguard Worker 317*495ae853SAndroid Build Coastguard Worker /** maximum height for which codec should request memory requirements*/ 318*495ae853SAndroid Build Coastguard Worker UWORD32 u4_max_ht; 319*495ae853SAndroid Build Coastguard Worker 320*495ae853SAndroid Build Coastguard Worker /** Maximum number of reference frames */ 321*495ae853SAndroid Build Coastguard Worker UWORD32 u4_max_ref_cnt; 322*495ae853SAndroid Build Coastguard Worker 323*495ae853SAndroid Build Coastguard Worker /** Maximum number of reorder frames */ 324*495ae853SAndroid Build Coastguard Worker UWORD32 u4_max_reorder_cnt; 325*495ae853SAndroid Build Coastguard Worker 326*495ae853SAndroid Build Coastguard Worker /** Maximum level supported */ 327*495ae853SAndroid Build Coastguard Worker UWORD32 u4_max_level; 328*495ae853SAndroid Build Coastguard Worker 329*495ae853SAndroid Build Coastguard Worker /** Color format that codec supports for input/output */ 330*495ae853SAndroid Build Coastguard Worker IV_COLOR_FORMAT_T e_color_format; 331*495ae853SAndroid Build Coastguard Worker 332*495ae853SAndroid Build Coastguard Worker /** Maximum search range to be used in X direction */ 333*495ae853SAndroid Build Coastguard Worker UWORD32 u4_max_srch_rng_x; 334*495ae853SAndroid Build Coastguard Worker 335*495ae853SAndroid Build Coastguard Worker /** Maximum search range to be used in Y direction */ 336*495ae853SAndroid Build Coastguard Worker UWORD32 u4_max_srch_rng_y; 337*495ae853SAndroid Build Coastguard Worker 338*495ae853SAndroid Build Coastguard Worker }iv_fill_mem_rec_ip_t; 339*495ae853SAndroid Build Coastguard Worker 340*495ae853SAndroid Build Coastguard Worker 341*495ae853SAndroid Build Coastguard Worker /** Output structure : Fill memory records */ 342*495ae853SAndroid Build Coastguard Worker typedef struct{ 343*495ae853SAndroid Build Coastguard Worker /** size of the structure */ 344*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 345*495ae853SAndroid Build Coastguard Worker 346*495ae853SAndroid Build Coastguard Worker /** Return error code */ 347*495ae853SAndroid Build Coastguard Worker UWORD32 u4_error_code; 348*495ae853SAndroid Build Coastguard Worker 349*495ae853SAndroid Build Coastguard Worker /** no of memory record structures which are filled by codec */ 350*495ae853SAndroid Build Coastguard Worker UWORD32 u4_num_mem_rec; 351*495ae853SAndroid Build Coastguard Worker }iv_fill_mem_rec_op_t; 352*495ae853SAndroid Build Coastguard Worker 353*495ae853SAndroid Build Coastguard Worker 354*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 355*495ae853SAndroid Build Coastguard Worker /* Retrieve Memory Records */ 356*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 357*495ae853SAndroid Build Coastguard Worker 358*495ae853SAndroid Build Coastguard Worker /** Input structure : Retrieve memory records */ 359*495ae853SAndroid Build Coastguard Worker 360*495ae853SAndroid Build Coastguard Worker typedef struct { 361*495ae853SAndroid Build Coastguard Worker /** size of the structure */ 362*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 363*495ae853SAndroid Build Coastguard Worker 364*495ae853SAndroid Build Coastguard Worker /** Command type */ 365*495ae853SAndroid Build Coastguard Worker IV_API_COMMAND_TYPE_T e_cmd; 366*495ae853SAndroid Build Coastguard Worker 367*495ae853SAndroid Build Coastguard Worker /** array of structures where codec should fill with all memory requested earlier */ 368*495ae853SAndroid Build Coastguard Worker iv_mem_rec_t *ps_mem_rec; 369*495ae853SAndroid Build Coastguard Worker }iv_retrieve_mem_rec_ip_t; 370*495ae853SAndroid Build Coastguard Worker 371*495ae853SAndroid Build Coastguard Worker 372*495ae853SAndroid Build Coastguard Worker typedef struct{ 373*495ae853SAndroid Build Coastguard Worker /** size of the structure */ 374*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 375*495ae853SAndroid Build Coastguard Worker 376*495ae853SAndroid Build Coastguard Worker /** Return error code */ 377*495ae853SAndroid Build Coastguard Worker UWORD32 u4_error_code; 378*495ae853SAndroid Build Coastguard Worker 379*495ae853SAndroid Build Coastguard Worker /** no of memory record structures which are filled by codec */ 380*495ae853SAndroid Build Coastguard Worker UWORD32 u4_num_mem_rec_filled; 381*495ae853SAndroid Build Coastguard Worker }iv_retrieve_mem_rec_op_t; 382*495ae853SAndroid Build Coastguard Worker 383*495ae853SAndroid Build Coastguard Worker #endif /* _IV2_H_ */ 384*495ae853SAndroid Build Coastguard Worker 385