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 * iv.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 27*495ae853SAndroid Build Coastguard Worker * definitions needed for the Application Program Interface(API) of the 28*495ae853SAndroid Build Coastguard Worker * Ittiam Video and Image codecs 29*495ae853SAndroid Build Coastguard Worker * 30*495ae853SAndroid Build Coastguard Worker * @author 31*495ae853SAndroid Build Coastguard Worker * 100239(RCY) 32*495ae853SAndroid Build Coastguard Worker * 33*495ae853SAndroid Build Coastguard Worker * @par List of Functions: 34*495ae853SAndroid Build Coastguard Worker * 35*495ae853SAndroid Build Coastguard Worker * @remarks 36*495ae853SAndroid Build Coastguard Worker * None 37*495ae853SAndroid Build Coastguard Worker * 38*495ae853SAndroid Build Coastguard Worker ******************************************************************************* 39*495ae853SAndroid Build Coastguard Worker */ 40*495ae853SAndroid Build Coastguard Worker 41*495ae853SAndroid Build Coastguard Worker 42*495ae853SAndroid Build Coastguard Worker #ifndef _IV_H 43*495ae853SAndroid Build Coastguard Worker #define _IV_H 44*495ae853SAndroid Build Coastguard Worker 45*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 46*495ae853SAndroid Build Coastguard Worker /* Constant Macros */ 47*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 48*495ae853SAndroid Build Coastguard Worker 49*495ae853SAndroid Build Coastguard Worker 50*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 51*495ae853SAndroid Build Coastguard Worker /* Typedefs */ 52*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 53*495ae853SAndroid Build Coastguard Worker 54*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 55*495ae853SAndroid Build Coastguard Worker /* Enums */ 56*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 57*495ae853SAndroid Build Coastguard Worker 58*495ae853SAndroid Build Coastguard Worker 59*495ae853SAndroid Build Coastguard Worker /* IV_API_CALL_STATUS_T:This is only to return the FAIL/PASS status to the */ 60*495ae853SAndroid Build Coastguard Worker /* application for the current API call */ 61*495ae853SAndroid Build Coastguard Worker 62*495ae853SAndroid Build Coastguard Worker typedef enum { 63*495ae853SAndroid Build Coastguard Worker IV_STATUS_NA = 0x7FFFFFFF, 64*495ae853SAndroid Build Coastguard Worker IV_SUCCESS = 0x0, 65*495ae853SAndroid Build Coastguard Worker IV_FAIL = 0x1, 66*495ae853SAndroid Build Coastguard Worker }IV_API_CALL_STATUS_T; 67*495ae853SAndroid Build Coastguard Worker 68*495ae853SAndroid Build Coastguard Worker 69*495ae853SAndroid Build Coastguard Worker /* IV_COLOR_FORMAT_T: This enumeration lists all the color formats which */ 70*495ae853SAndroid Build Coastguard Worker /* finds usage in video/image codecs */ 71*495ae853SAndroid Build Coastguard Worker 72*495ae853SAndroid Build Coastguard Worker typedef enum { 73*495ae853SAndroid Build Coastguard Worker IV_CHROMA_NA = 0x7FFFFFFF, 74*495ae853SAndroid Build Coastguard Worker IV_YUV_420P = 0x1, 75*495ae853SAndroid Build Coastguard Worker IV_YUV_422P = 0x2, 76*495ae853SAndroid Build Coastguard Worker IV_420_UV_INTL = 0x3, 77*495ae853SAndroid Build Coastguard Worker IV_YUV_422IBE = 0x4, 78*495ae853SAndroid Build Coastguard Worker IV_YUV_422ILE = 0x5, 79*495ae853SAndroid Build Coastguard Worker IV_YUV_444P = 0x6, 80*495ae853SAndroid Build Coastguard Worker IV_YUV_411P = 0x7, 81*495ae853SAndroid Build Coastguard Worker IV_GRAY = 0x8, 82*495ae853SAndroid Build Coastguard Worker IV_RGB_565 = 0x9, 83*495ae853SAndroid Build Coastguard Worker IV_RGB_24 = 0xa, 84*495ae853SAndroid Build Coastguard Worker IV_YUV_420SP_UV = 0xb, 85*495ae853SAndroid Build Coastguard Worker IV_YUV_420SP_VU = 0xc, 86*495ae853SAndroid Build Coastguard Worker IV_RGBA_8888 = 0xd 87*495ae853SAndroid Build Coastguard Worker }IV_COLOR_FORMAT_T; 88*495ae853SAndroid Build Coastguard Worker 89*495ae853SAndroid Build Coastguard Worker /* IV_PICTURE_CODING_TYPE_T: VOP/Frame coding type Enumeration */ 90*495ae853SAndroid Build Coastguard Worker 91*495ae853SAndroid Build Coastguard Worker typedef enum { 92*495ae853SAndroid Build Coastguard Worker IV_NA_FRAME = 0x7FFFFFFF, 93*495ae853SAndroid Build Coastguard Worker IV_I_FRAME = 0x0, 94*495ae853SAndroid Build Coastguard Worker IV_P_FRAME = 0x1, 95*495ae853SAndroid Build Coastguard Worker IV_B_FRAME = 0x2, 96*495ae853SAndroid Build Coastguard Worker IV_IDR_FRAME = 0x3, 97*495ae853SAndroid Build Coastguard Worker IV_II_FRAME = 0x4, 98*495ae853SAndroid Build Coastguard Worker IV_IP_FRAME = 0x5, 99*495ae853SAndroid Build Coastguard Worker IV_IB_FRAME = 0x6, 100*495ae853SAndroid Build Coastguard Worker IV_PI_FRAME = 0x7, 101*495ae853SAndroid Build Coastguard Worker IV_PP_FRAME = 0x8, 102*495ae853SAndroid Build Coastguard Worker IV_PB_FRAME = 0x9, 103*495ae853SAndroid Build Coastguard Worker IV_BI_FRAME = 0xa, 104*495ae853SAndroid Build Coastguard Worker IV_BP_FRAME = 0xb, 105*495ae853SAndroid Build Coastguard Worker IV_BB_FRAME = 0xc, 106*495ae853SAndroid Build Coastguard Worker IV_MBAFF_I_FRAME = 0xd, 107*495ae853SAndroid Build Coastguard Worker IV_MBAFF_P_FRAME = 0xe, 108*495ae853SAndroid Build Coastguard Worker IV_MBAFF_B_FRAME = 0xf, 109*495ae853SAndroid Build Coastguard Worker IV_MBAFF_IDR_FRAME = 0x10, 110*495ae853SAndroid Build Coastguard Worker IV_NOT_CODED_FRAME = 0x11, 111*495ae853SAndroid Build Coastguard Worker IV_FRAMETYPE_DEFAULT = IV_I_FRAME 112*495ae853SAndroid Build Coastguard Worker }IV_PICTURE_CODING_TYPE_T; 113*495ae853SAndroid Build Coastguard Worker 114*495ae853SAndroid Build Coastguard Worker /* IV_FLD_TYPE_T: field type Enumeration */ 115*495ae853SAndroid Build Coastguard Worker 116*495ae853SAndroid Build Coastguard Worker typedef enum { 117*495ae853SAndroid Build Coastguard Worker IV_NA_FLD = 0x7FFFFFFF, 118*495ae853SAndroid Build Coastguard Worker IV_TOP_FLD = 0x0, 119*495ae853SAndroid Build Coastguard Worker IV_BOT_FLD = 0x1, 120*495ae853SAndroid Build Coastguard Worker IV_FLD_TYPE_DEFAULT = IV_TOP_FLD 121*495ae853SAndroid Build Coastguard Worker }IV_FLD_TYPE_T; 122*495ae853SAndroid Build Coastguard Worker 123*495ae853SAndroid Build Coastguard Worker /* IV_CONTENT_TYPE_T: Video content type */ 124*495ae853SAndroid Build Coastguard Worker 125*495ae853SAndroid Build Coastguard Worker typedef enum { 126*495ae853SAndroid Build Coastguard Worker IV_CONTENTTYPE_NA = 0x7FFFFFFF, 127*495ae853SAndroid Build Coastguard Worker IV_PROGRESSIVE = 0x0, 128*495ae853SAndroid Build Coastguard Worker IV_INTERLACED = 0x1, 129*495ae853SAndroid Build Coastguard Worker IV_PROGRESSIVE_FRAME = 0x2, 130*495ae853SAndroid Build Coastguard Worker IV_INTERLACED_FRAME = 0x3, 131*495ae853SAndroid Build Coastguard Worker IV_INTERLACED_TOPFIELD = 0x4, 132*495ae853SAndroid Build Coastguard Worker IV_INTERLACED_BOTTOMFIELD = 0x5, 133*495ae853SAndroid Build Coastguard Worker IV_CONTENTTYPE_DEFAULT = IV_PROGRESSIVE, 134*495ae853SAndroid Build Coastguard Worker }IV_CONTENT_TYPE_T; 135*495ae853SAndroid Build Coastguard Worker 136*495ae853SAndroid Build Coastguard Worker /* IV_API_COMMAND_TYPE_T:API command type */ 137*495ae853SAndroid Build Coastguard Worker typedef enum { 138*495ae853SAndroid Build Coastguard Worker IV_CMD_NA = 0x7FFFFFFF, 139*495ae853SAndroid Build Coastguard Worker IV_CMD_DUMMY_ELEMENT = 0x4, 140*495ae853SAndroid Build Coastguard Worker }IV_API_COMMAND_TYPE_T; 141*495ae853SAndroid Build Coastguard Worker 142*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 143*495ae853SAndroid Build Coastguard Worker /* Structure */ 144*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 145*495ae853SAndroid Build Coastguard Worker 146*495ae853SAndroid Build Coastguard Worker /* IV_OBJ_T: This structure defines the handle for the codec instance */ 147*495ae853SAndroid Build Coastguard Worker 148*495ae853SAndroid Build Coastguard Worker typedef struct { 149*495ae853SAndroid Build Coastguard Worker /** 150*495ae853SAndroid Build Coastguard Worker * u4_size of the structure 151*495ae853SAndroid Build Coastguard Worker */ 152*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 153*495ae853SAndroid Build Coastguard Worker 154*495ae853SAndroid Build Coastguard Worker /** 155*495ae853SAndroid Build Coastguard Worker * Pointer to the API function pointer table of the codec 156*495ae853SAndroid Build Coastguard Worker */ 157*495ae853SAndroid Build Coastguard Worker void *pv_fxns; 158*495ae853SAndroid Build Coastguard Worker 159*495ae853SAndroid Build Coastguard Worker /** 160*495ae853SAndroid Build Coastguard Worker * Pointer to the handle of the codec 161*495ae853SAndroid Build Coastguard Worker */ 162*495ae853SAndroid Build Coastguard Worker void *pv_codec_handle; 163*495ae853SAndroid Build Coastguard Worker }iv_obj_t; 164*495ae853SAndroid Build Coastguard Worker 165*495ae853SAndroid Build Coastguard Worker 166*495ae853SAndroid Build Coastguard Worker /* IV_YUV_BUF_T: This structure defines attributes for the yuv buffer */ 167*495ae853SAndroid Build Coastguard Worker 168*495ae853SAndroid Build Coastguard Worker typedef struct { 169*495ae853SAndroid Build Coastguard Worker /** 170*495ae853SAndroid Build Coastguard Worker * u4_size of the structure 171*495ae853SAndroid Build Coastguard Worker */ 172*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 173*495ae853SAndroid Build Coastguard Worker 174*495ae853SAndroid Build Coastguard Worker /** 175*495ae853SAndroid Build Coastguard Worker * Pointer to Luma (Y) Buffer 176*495ae853SAndroid Build Coastguard Worker */ 177*495ae853SAndroid Build Coastguard Worker 178*495ae853SAndroid Build Coastguard Worker void *pv_y_buf; 179*495ae853SAndroid Build Coastguard Worker /** 180*495ae853SAndroid Build Coastguard Worker * Pointer to Chroma (Cb) Buffer 181*495ae853SAndroid Build Coastguard Worker */ 182*495ae853SAndroid Build Coastguard Worker void *pv_u_buf; 183*495ae853SAndroid Build Coastguard Worker 184*495ae853SAndroid Build Coastguard Worker /** 185*495ae853SAndroid Build Coastguard Worker * Pointer to Chroma (Cr) Buffer 186*495ae853SAndroid Build Coastguard Worker */ 187*495ae853SAndroid Build Coastguard Worker void *pv_v_buf; 188*495ae853SAndroid Build Coastguard Worker 189*495ae853SAndroid Build Coastguard Worker /** 190*495ae853SAndroid Build Coastguard Worker * Width of the Luma (Y) Buffer 191*495ae853SAndroid Build Coastguard Worker */ 192*495ae853SAndroid Build Coastguard Worker UWORD32 u4_y_wd; 193*495ae853SAndroid Build Coastguard Worker 194*495ae853SAndroid Build Coastguard Worker /** 195*495ae853SAndroid Build Coastguard Worker * Height of the Luma (Y) Buffer 196*495ae853SAndroid Build Coastguard Worker */ 197*495ae853SAndroid Build Coastguard Worker UWORD32 u4_y_ht; 198*495ae853SAndroid Build Coastguard Worker 199*495ae853SAndroid Build Coastguard Worker /** 200*495ae853SAndroid Build Coastguard Worker * Stride/Pitch of the Luma (Y) Buffer 201*495ae853SAndroid Build Coastguard Worker */ 202*495ae853SAndroid Build Coastguard Worker UWORD32 u4_y_strd; 203*495ae853SAndroid Build Coastguard Worker 204*495ae853SAndroid Build Coastguard Worker /** 205*495ae853SAndroid Build Coastguard Worker * Width of the Chroma (Cb) Buffer 206*495ae853SAndroid Build Coastguard Worker */ 207*495ae853SAndroid Build Coastguard Worker UWORD32 u4_u_wd; 208*495ae853SAndroid Build Coastguard Worker 209*495ae853SAndroid Build Coastguard Worker /** 210*495ae853SAndroid Build Coastguard Worker * Height of the Chroma (Cb) Buffer 211*495ae853SAndroid Build Coastguard Worker */ 212*495ae853SAndroid Build Coastguard Worker UWORD32 u4_u_ht; 213*495ae853SAndroid Build Coastguard Worker 214*495ae853SAndroid Build Coastguard Worker /** 215*495ae853SAndroid Build Coastguard Worker * Stride/Pitch of the Chroma (Cb) Buffer 216*495ae853SAndroid Build Coastguard Worker */ 217*495ae853SAndroid Build Coastguard Worker UWORD32 u4_u_strd; 218*495ae853SAndroid Build Coastguard Worker 219*495ae853SAndroid Build Coastguard Worker /** 220*495ae853SAndroid Build Coastguard Worker * Width of the Chroma (Cr) Buffer 221*495ae853SAndroid Build Coastguard Worker */ 222*495ae853SAndroid Build Coastguard Worker UWORD32 u4_v_wd; 223*495ae853SAndroid Build Coastguard Worker 224*495ae853SAndroid Build Coastguard Worker /** 225*495ae853SAndroid Build Coastguard Worker * Height of the Chroma (Cr) Buffer 226*495ae853SAndroid Build Coastguard Worker */ 227*495ae853SAndroid Build Coastguard Worker UWORD32 u4_v_ht; 228*495ae853SAndroid Build Coastguard Worker 229*495ae853SAndroid Build Coastguard Worker /** 230*495ae853SAndroid Build Coastguard Worker * Stride/Pitch of the Chroma (Cr) Buffer 231*495ae853SAndroid Build Coastguard Worker */ 232*495ae853SAndroid Build Coastguard Worker UWORD32 u4_v_strd; 233*495ae853SAndroid Build Coastguard Worker }iv_yuv_buf_t; 234*495ae853SAndroid Build Coastguard Worker 235*495ae853SAndroid Build Coastguard Worker 236*495ae853SAndroid Build Coastguard Worker 237*495ae853SAndroid Build Coastguard Worker #endif /* _IV_H */ 238*495ae853SAndroid Build Coastguard Worker 239