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 * ivd.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 Decoders 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 * @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 _IVD_H 40*495ae853SAndroid Build Coastguard Worker #define _IVD_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 IVD_VIDDEC_MAX_IO_BUFFERS 64 46*495ae853SAndroid Build Coastguard Worker 47*495ae853SAndroid Build Coastguard Worker /** SEI macros */ 48*495ae853SAndroid Build Coastguard Worker /* 49*495ae853SAndroid Build Coastguard Worker * @brief specifies the number of colour primary components of the mastering display 50*495ae853SAndroid Build Coastguard Worker */ 51*495ae853SAndroid Build Coastguard Worker #define NUM_SEI_MDCV_PRIMARIES 3 52*495ae853SAndroid Build Coastguard Worker 53*495ae853SAndroid Build Coastguard Worker /* 54*495ae853SAndroid Build Coastguard Worker * @brief specifies the number of colour primary components of the nominal content colour volume 55*495ae853SAndroid Build Coastguard Worker */ 56*495ae853SAndroid Build Coastguard Worker #define NUM_SEI_CCV_PRIMARIES 3 57*495ae853SAndroid Build Coastguard Worker 58*495ae853SAndroid Build Coastguard Worker /* 59*495ae853SAndroid Build Coastguard Worker * @brief specifies maximum number of sub-layers available in the sequence 60*495ae853SAndroid Build Coastguard Worker */ 61*495ae853SAndroid Build Coastguard Worker #define SII_MAX_SUB_LAYERS 8 62*495ae853SAndroid Build Coastguard Worker 63*495ae853SAndroid Build Coastguard Worker #define SEI_FGC_NUM_COLOUR_COMPONENTS 3 64*495ae853SAndroid Build Coastguard Worker #define SEI_FGC_MAX_NUM_MODEL_VALUES 6 65*495ae853SAndroid Build Coastguard Worker #define SEI_FGC_MAX_NUM_INTENSITY_INTERVALS 256 66*495ae853SAndroid Build Coastguard Worker 67*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 68*495ae853SAndroid Build Coastguard Worker /* Typedefs */ 69*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 70*495ae853SAndroid Build Coastguard Worker 71*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 72*495ae853SAndroid Build Coastguard Worker /* Enums */ 73*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 74*495ae853SAndroid Build Coastguard Worker 75*495ae853SAndroid Build Coastguard Worker /* IVD_ARCH_T: Architecture Enumeration */ 76*495ae853SAndroid Build Coastguard Worker typedef enum 77*495ae853SAndroid Build Coastguard Worker { 78*495ae853SAndroid Build Coastguard Worker ARCH_NA = 0x7FFFFFFF, 79*495ae853SAndroid Build Coastguard Worker ARCH_ARM_NONEON = 0x0, 80*495ae853SAndroid Build Coastguard Worker ARCH_ARM_A9Q, 81*495ae853SAndroid Build Coastguard Worker ARCH_ARM_A9A, 82*495ae853SAndroid Build Coastguard Worker ARCH_ARM_A9, 83*495ae853SAndroid Build Coastguard Worker ARCH_ARM_A7, 84*495ae853SAndroid Build Coastguard Worker ARCH_ARM_A5, 85*495ae853SAndroid Build Coastguard Worker ARCH_ARM_A15, 86*495ae853SAndroid Build Coastguard Worker ARCH_ARM_NEONINTR, 87*495ae853SAndroid Build Coastguard Worker ARCH_ARMV8_GENERIC, 88*495ae853SAndroid Build Coastguard Worker ARCH_X86_GENERIC = 0x100, 89*495ae853SAndroid Build Coastguard Worker ARCH_X86_SSSE3, 90*495ae853SAndroid Build Coastguard Worker ARCH_X86_SSE42, 91*495ae853SAndroid Build Coastguard Worker ARCH_X86_AVX2, 92*495ae853SAndroid Build Coastguard Worker ARCH_MIPS_GENERIC = 0x200, 93*495ae853SAndroid Build Coastguard Worker ARCH_MIPS_32 94*495ae853SAndroid Build Coastguard Worker }IVD_ARCH_T; 95*495ae853SAndroid Build Coastguard Worker 96*495ae853SAndroid Build Coastguard Worker /* IVD_SOC_T: SOC Enumeration */ 97*495ae853SAndroid Build Coastguard Worker typedef enum 98*495ae853SAndroid Build Coastguard Worker { 99*495ae853SAndroid Build Coastguard Worker SOC_NA = 0x7FFFFFFF, 100*495ae853SAndroid Build Coastguard Worker SOC_GENERIC = 0x0, 101*495ae853SAndroid Build Coastguard Worker SOC_HISI_37X = 0x100, 102*495ae853SAndroid Build Coastguard Worker }IVD_SOC_T; 103*495ae853SAndroid Build Coastguard Worker 104*495ae853SAndroid Build Coastguard Worker /* IVD_FRAME_SKIP_MODE_T:Skip mode Enumeration */ 105*495ae853SAndroid Build Coastguard Worker 106*495ae853SAndroid Build Coastguard Worker typedef enum { 107*495ae853SAndroid Build Coastguard Worker IVD_SKIP_NONE = 0x7FFFFFFF, 108*495ae853SAndroid Build Coastguard Worker IVD_SKIP_P = 0x1, 109*495ae853SAndroid Build Coastguard Worker IVD_SKIP_B = 0x2, 110*495ae853SAndroid Build Coastguard Worker IVD_SKIP_I = 0x3, 111*495ae853SAndroid Build Coastguard Worker IVD_SKIP_IP = 0x4, 112*495ae853SAndroid Build Coastguard Worker IVD_SKIP_IB = 0x5, 113*495ae853SAndroid Build Coastguard Worker IVD_SKIP_PB = 0x6, 114*495ae853SAndroid Build Coastguard Worker IVD_SKIP_IPB = 0x7, 115*495ae853SAndroid Build Coastguard Worker IVD_SKIP_IDR = 0x8, 116*495ae853SAndroid Build Coastguard Worker IVD_SKIP_DEFAULT = IVD_SKIP_NONE, 117*495ae853SAndroid Build Coastguard Worker }IVD_FRAME_SKIP_MODE_T; 118*495ae853SAndroid Build Coastguard Worker 119*495ae853SAndroid Build Coastguard Worker /* IVD_VIDEO_DECODE_MODE_T: Set decoder to decode either frame worth of data */ 120*495ae853SAndroid Build Coastguard Worker /* or only header worth of data */ 121*495ae853SAndroid Build Coastguard Worker 122*495ae853SAndroid Build Coastguard Worker typedef enum { 123*495ae853SAndroid Build Coastguard Worker IVD_DECODE_MODE_NA = 0x7FFFFFFF, 124*495ae853SAndroid Build Coastguard Worker 125*495ae853SAndroid Build Coastguard Worker /* This enables the codec to process all decodable units */ 126*495ae853SAndroid Build Coastguard Worker IVD_DECODE_FRAME = 0x0, 127*495ae853SAndroid Build Coastguard Worker 128*495ae853SAndroid Build Coastguard Worker /* This enables the codec to decode header only */ 129*495ae853SAndroid Build Coastguard Worker IVD_DECODE_HEADER = 0x1, 130*495ae853SAndroid Build Coastguard Worker 131*495ae853SAndroid Build Coastguard Worker 132*495ae853SAndroid Build Coastguard Worker 133*495ae853SAndroid Build Coastguard Worker }IVD_VIDEO_DECODE_MODE_T; 134*495ae853SAndroid Build Coastguard Worker 135*495ae853SAndroid Build Coastguard Worker 136*495ae853SAndroid Build Coastguard Worker /* IVD_DISPLAY_FRAME_OUT_MODE_T: Video Display Frame Output Mode */ 137*495ae853SAndroid Build Coastguard Worker 138*495ae853SAndroid Build Coastguard Worker typedef enum { 139*495ae853SAndroid Build Coastguard Worker 140*495ae853SAndroid Build Coastguard Worker IVD_DISPLAY_ORDER_NA = 0x7FFFFFFF, 141*495ae853SAndroid Build Coastguard Worker /* To set codec to fill output buffers in display order */ 142*495ae853SAndroid Build Coastguard Worker IVD_DISPLAY_FRAME_OUT = 0x0, 143*495ae853SAndroid Build Coastguard Worker 144*495ae853SAndroid Build Coastguard Worker /* To set codec to fill output buffers in decode order */ 145*495ae853SAndroid Build Coastguard Worker IVD_DECODE_FRAME_OUT = 0x1, 146*495ae853SAndroid Build Coastguard Worker }IVD_DISPLAY_FRAME_OUT_MODE_T; 147*495ae853SAndroid Build Coastguard Worker 148*495ae853SAndroid Build Coastguard Worker 149*495ae853SAndroid Build Coastguard Worker /* IVD_API_COMMAND_TYPE_T:API command type */ 150*495ae853SAndroid Build Coastguard Worker typedef enum { 151*495ae853SAndroid Build Coastguard Worker IVD_CMD_VIDEO_NA = 0x7FFFFFFF, 152*495ae853SAndroid Build Coastguard Worker IVD_CMD_CREATE = IV_CMD_DUMMY_ELEMENT + 1, 153*495ae853SAndroid Build Coastguard Worker IVD_CMD_DELETE, 154*495ae853SAndroid Build Coastguard Worker IVD_CMD_VIDEO_CTL, 155*495ae853SAndroid Build Coastguard Worker IVD_CMD_VIDEO_DECODE, 156*495ae853SAndroid Build Coastguard Worker IVD_CMD_GET_DISPLAY_FRAME, 157*495ae853SAndroid Build Coastguard Worker IVD_CMD_REL_DISPLAY_FRAME, 158*495ae853SAndroid Build Coastguard Worker IVD_CMD_SET_DISPLAY_FRAME 159*495ae853SAndroid Build Coastguard Worker }IVD_API_COMMAND_TYPE_T; 160*495ae853SAndroid Build Coastguard Worker 161*495ae853SAndroid Build Coastguard Worker /* IVD_CONTROL_API_COMMAND_TYPE_T: Video Control API command type */ 162*495ae853SAndroid Build Coastguard Worker 163*495ae853SAndroid Build Coastguard Worker typedef enum { 164*495ae853SAndroid Build Coastguard Worker IVD_CMD_NA = 0x7FFFFFFF, 165*495ae853SAndroid Build Coastguard Worker IVD_CMD_CTL_GETPARAMS = 0x0, 166*495ae853SAndroid Build Coastguard Worker IVD_CMD_CTL_SETPARAMS = 0x1, 167*495ae853SAndroid Build Coastguard Worker IVD_CMD_CTL_RESET = 0x2, 168*495ae853SAndroid Build Coastguard Worker IVD_CMD_CTL_SETDEFAULT = 0x3, 169*495ae853SAndroid Build Coastguard Worker IVD_CMD_CTL_FLUSH = 0x4, 170*495ae853SAndroid Build Coastguard Worker IVD_CMD_CTL_GETBUFINFO = 0x5, 171*495ae853SAndroid Build Coastguard Worker IVD_CMD_CTL_GETVERSION = 0x6, 172*495ae853SAndroid Build Coastguard Worker IVD_CMD_CTL_CODEC_SUBCMD_START = 0x7 173*495ae853SAndroid Build Coastguard Worker }IVD_CONTROL_API_COMMAND_TYPE_T; 174*495ae853SAndroid Build Coastguard Worker 175*495ae853SAndroid Build Coastguard Worker 176*495ae853SAndroid Build Coastguard Worker /* IVD_ERROR_BITS_T: A UWORD32 container will be used for reporting the error*/ 177*495ae853SAndroid Build Coastguard Worker /* code to the application. The first 8 bits starting from LSB have been */ 178*495ae853SAndroid Build Coastguard Worker /* reserved for the codec to report internal error details. The rest of the */ 179*495ae853SAndroid Build Coastguard Worker /* bits will be generic for all video decoders and each bit has an associated*/ 180*495ae853SAndroid Build Coastguard Worker /* meaning as mentioned below. The unused bit fields are reserved for future */ 181*495ae853SAndroid Build Coastguard Worker /* extenstions and will be zero in the current implementation */ 182*495ae853SAndroid Build Coastguard Worker 183*495ae853SAndroid Build Coastguard Worker typedef enum { 184*495ae853SAndroid Build Coastguard Worker /* Bit 8 - Applied concealment. */ 185*495ae853SAndroid Build Coastguard Worker IVD_APPLIEDCONCEALMENT = 0x8, 186*495ae853SAndroid Build Coastguard Worker /* Bit 9 - Insufficient input data. */ 187*495ae853SAndroid Build Coastguard Worker IVD_INSUFFICIENTDATA = 0x9, 188*495ae853SAndroid Build Coastguard Worker /* Bit 10 - Data problem/corruption. */ 189*495ae853SAndroid Build Coastguard Worker IVD_CORRUPTEDDATA = 0xa, 190*495ae853SAndroid Build Coastguard Worker /* Bit 11 - Header problem/corruption. */ 191*495ae853SAndroid Build Coastguard Worker IVD_CORRUPTEDHEADER = 0xb, 192*495ae853SAndroid Build Coastguard Worker /* Bit 12 - Unsupported feature/parameter in input. */ 193*495ae853SAndroid Build Coastguard Worker IVD_UNSUPPORTEDINPUT = 0xc, 194*495ae853SAndroid Build Coastguard Worker /* Bit 13 - Unsupported input parameter orconfiguration. */ 195*495ae853SAndroid Build Coastguard Worker IVD_UNSUPPORTEDPARAM = 0xd, 196*495ae853SAndroid Build Coastguard Worker /* Bit 14 - Fatal error (stop the codec).If there is an */ 197*495ae853SAndroid Build Coastguard Worker /* error and this bit is not set, the error is a recoverable one. */ 198*495ae853SAndroid Build Coastguard Worker IVD_FATALERROR = 0xe, 199*495ae853SAndroid Build Coastguard Worker /* Bit 15 - Invalid bitstream. Applies when Bitstream/YUV frame */ 200*495ae853SAndroid Build Coastguard Worker /* buffer for encode/decode call is made with non-valid or zero u4_size */ 201*495ae853SAndroid Build Coastguard Worker /* data */ 202*495ae853SAndroid Build Coastguard Worker IVD_INVALID_BITSTREAM = 0xf, 203*495ae853SAndroid Build Coastguard Worker /* Bit 16 */ 204*495ae853SAndroid Build Coastguard Worker IVD_INCOMPLETE_BITSTREAM = 0x10, 205*495ae853SAndroid Build Coastguard Worker IVD_ERROR_BITS_T_DUMMY_ELEMENT = 0x7FFFFFFF 206*495ae853SAndroid Build Coastguard Worker }IVD_ERROR_BITS_T; 207*495ae853SAndroid Build Coastguard Worker 208*495ae853SAndroid Build Coastguard Worker 209*495ae853SAndroid Build Coastguard Worker /* IVD_CONTROL_API_COMMAND_TYPE_T: Video Control API command type */ 210*495ae853SAndroid Build Coastguard Worker typedef enum { 211*495ae853SAndroid Build Coastguard Worker IVD_ERROR_NONE = 0x0, 212*495ae853SAndroid Build Coastguard Worker IVD_NUM_MEM_REC_FAILED = 0x1, 213*495ae853SAndroid Build Coastguard Worker IVD_NUM_REC_NOT_SUFFICIENT = 0x2, 214*495ae853SAndroid Build Coastguard Worker IVD_FILL_MEM_REC_FAILED = 0x3, 215*495ae853SAndroid Build Coastguard Worker IVD_REQUESTED_WIDTH_NOT_SUPPPORTED = 0x4, 216*495ae853SAndroid Build Coastguard Worker IVD_REQUESTED_HEIGHT_NOT_SUPPPORTED = 0x5, 217*495ae853SAndroid Build Coastguard Worker IVD_INIT_DEC_FAILED = 0x6, 218*495ae853SAndroid Build Coastguard Worker IVD_INIT_DEC_NOT_SUFFICIENT = 0x7, 219*495ae853SAndroid Build Coastguard Worker IVD_INIT_DEC_WIDTH_NOT_SUPPPORTED = 0x8, 220*495ae853SAndroid Build Coastguard Worker IVD_INIT_DEC_HEIGHT_NOT_SUPPPORTED = 0x9, 221*495ae853SAndroid Build Coastguard Worker IVD_INIT_DEC_MEM_NOT_ALIGNED = 0xa, 222*495ae853SAndroid Build Coastguard Worker IVD_INIT_DEC_COL_FMT_NOT_SUPPORTED = 0xb, 223*495ae853SAndroid Build Coastguard Worker IVD_INIT_DEC_MEM_REC_NOT_SUFFICIENT = 0xc, 224*495ae853SAndroid Build Coastguard Worker IVD_GET_VERSION_DATABUFFER_SZ_INSUFFICIENT = 0xd, 225*495ae853SAndroid Build Coastguard Worker IVD_BUFFER_SIZE_SET_TO_ZERO = 0xe, 226*495ae853SAndroid Build Coastguard Worker IVD_UNEXPECTED_END_OF_STREAM = 0xf, 227*495ae853SAndroid Build Coastguard Worker IVD_SEQUENCE_HEADER_NOT_DECODED = 0x10, 228*495ae853SAndroid Build Coastguard Worker IVD_STREAM_WIDTH_HEIGHT_NOT_SUPPORTED = 0x11, 229*495ae853SAndroid Build Coastguard Worker IVD_MAX_FRAME_LIMIT_REACHED = 0x12, 230*495ae853SAndroid Build Coastguard Worker IVD_IP_API_STRUCT_SIZE_INCORRECT = 0x13, 231*495ae853SAndroid Build Coastguard Worker IVD_OP_API_STRUCT_SIZE_INCORRECT = 0x14, 232*495ae853SAndroid Build Coastguard Worker IVD_HANDLE_NULL = 0x15, 233*495ae853SAndroid Build Coastguard Worker IVD_HANDLE_STRUCT_SIZE_INCORRECT = 0x16, 234*495ae853SAndroid Build Coastguard Worker IVD_INVALID_HANDLE_NULL = 0x17, 235*495ae853SAndroid Build Coastguard Worker IVD_INVALID_API_CMD = 0x18, 236*495ae853SAndroid Build Coastguard Worker IVD_UNSUPPORTED_API_CMD = 0x19, 237*495ae853SAndroid Build Coastguard Worker IVD_MEM_REC_STRUCT_SIZE_INCORRECT = 0x1a, 238*495ae853SAndroid Build Coastguard Worker IVD_DISP_FRM_ZERO_OP_BUFS = 0x1b, 239*495ae853SAndroid Build Coastguard Worker IVD_DISP_FRM_OP_BUF_NULL = 0x1c, 240*495ae853SAndroid Build Coastguard Worker IVD_DISP_FRM_ZERO_OP_BUF_SIZE = 0x1d, 241*495ae853SAndroid Build Coastguard Worker IVD_DEC_FRM_BS_BUF_NULL = 0x1e, 242*495ae853SAndroid Build Coastguard Worker IVD_SET_CONFG_INVALID_DEC_MODE = 0x1f, 243*495ae853SAndroid Build Coastguard Worker IVD_SET_CONFG_UNSUPPORTED_DISP_WIDTH = 0x20, 244*495ae853SAndroid Build Coastguard Worker IVD_RESET_FAILED = 0x21, 245*495ae853SAndroid Build Coastguard Worker IVD_INIT_DEC_MEM_REC_OVERLAP_ERR = 0x22, 246*495ae853SAndroid Build Coastguard Worker IVD_INIT_DEC_MEM_REC_BASE_NULL = 0x23, 247*495ae853SAndroid Build Coastguard Worker IVD_INIT_DEC_MEM_REC_ALIGNMENT_ERR = 0x24, 248*495ae853SAndroid Build Coastguard Worker IVD_INIT_DEC_MEM_REC_INSUFFICIENT_SIZE = 0x25, 249*495ae853SAndroid Build Coastguard Worker IVD_INIT_DEC_MEM_REC_INCORRECT_TYPE = 0x26, 250*495ae853SAndroid Build Coastguard Worker IVD_DEC_NUMBYTES_INV = 0x27, 251*495ae853SAndroid Build Coastguard Worker IVD_DEC_REF_BUF_NULL = 0x28, 252*495ae853SAndroid Build Coastguard Worker IVD_DEC_FRM_SKIPPED = 0x29, 253*495ae853SAndroid Build Coastguard Worker IVD_RES_CHANGED = 0x2a, 254*495ae853SAndroid Build Coastguard Worker IVD_MEM_ALLOC_FAILED = 0x2b, 255*495ae853SAndroid Build Coastguard Worker IVD_DUMMY_ELEMENT_FOR_CODEC_EXTENSIONS = 0xD0, 256*495ae853SAndroid Build Coastguard Worker }IVD_ERROR_CODES_T; 257*495ae853SAndroid Build Coastguard Worker 258*495ae853SAndroid Build Coastguard Worker 259*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 260*495ae853SAndroid Build Coastguard Worker /* Structure */ 261*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 262*495ae853SAndroid Build Coastguard Worker /* structure for passing output buffers to codec during get display buffer */ 263*495ae853SAndroid Build Coastguard Worker /* call */ 264*495ae853SAndroid Build Coastguard Worker typedef struct { 265*495ae853SAndroid Build Coastguard Worker 266*495ae853SAndroid Build Coastguard Worker /** 267*495ae853SAndroid Build Coastguard Worker * number of output buffers 268*495ae853SAndroid Build Coastguard Worker */ 269*495ae853SAndroid Build Coastguard Worker UWORD32 u4_num_bufs; 270*495ae853SAndroid Build Coastguard Worker 271*495ae853SAndroid Build Coastguard Worker /** 272*495ae853SAndroid Build Coastguard Worker *list of pointers to output buffers 273*495ae853SAndroid Build Coastguard Worker */ 274*495ae853SAndroid Build Coastguard Worker UWORD8 *pu1_bufs[IVD_VIDDEC_MAX_IO_BUFFERS]; 275*495ae853SAndroid Build Coastguard Worker 276*495ae853SAndroid Build Coastguard Worker /** 277*495ae853SAndroid Build Coastguard Worker * sizes of each output buffer 278*495ae853SAndroid Build Coastguard Worker */ 279*495ae853SAndroid Build Coastguard Worker UWORD32 u4_min_out_buf_size[IVD_VIDDEC_MAX_IO_BUFFERS]; 280*495ae853SAndroid Build Coastguard Worker 281*495ae853SAndroid Build Coastguard Worker }ivd_out_bufdesc_t; 282*495ae853SAndroid Build Coastguard Worker 283*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 284*495ae853SAndroid Build Coastguard Worker /* Create decoder */ 285*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 286*495ae853SAndroid Build Coastguard Worker 287*495ae853SAndroid Build Coastguard Worker /* IVD_API_COMMAND_TYPE_T::e_cmd = IVD_CMD_CREATE */ 288*495ae853SAndroid Build Coastguard Worker 289*495ae853SAndroid Build Coastguard Worker 290*495ae853SAndroid Build Coastguard Worker typedef struct { 291*495ae853SAndroid Build Coastguard Worker /** 292*495ae853SAndroid Build Coastguard Worker * u4_size of the structure 293*495ae853SAndroid Build Coastguard Worker */ 294*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 295*495ae853SAndroid Build Coastguard Worker 296*495ae853SAndroid Build Coastguard Worker /** 297*495ae853SAndroid Build Coastguard Worker * e_cmd 298*495ae853SAndroid Build Coastguard Worker */ 299*495ae853SAndroid Build Coastguard Worker IVD_API_COMMAND_TYPE_T e_cmd; 300*495ae853SAndroid Build Coastguard Worker 301*495ae853SAndroid Build Coastguard Worker /** 302*495ae853SAndroid Build Coastguard Worker * format in which codec has to give out frame data for display 303*495ae853SAndroid Build Coastguard Worker */ 304*495ae853SAndroid Build Coastguard Worker IV_COLOR_FORMAT_T e_output_format; 305*495ae853SAndroid Build Coastguard Worker 306*495ae853SAndroid Build Coastguard Worker /** 307*495ae853SAndroid Build Coastguard Worker * Flag to indicate shared display buffer mode 308*495ae853SAndroid Build Coastguard Worker */ 309*495ae853SAndroid Build Coastguard Worker UWORD32 u4_share_disp_buf; 310*495ae853SAndroid Build Coastguard Worker 311*495ae853SAndroid Build Coastguard Worker /** 312*495ae853SAndroid Build Coastguard Worker * Pointer to a function for aligned allocation. 313*495ae853SAndroid Build Coastguard Worker */ 314*495ae853SAndroid Build Coastguard Worker void *(*pf_aligned_alloc)(void *pv_mem_ctxt, WORD32 alignment, WORD32 size); 315*495ae853SAndroid Build Coastguard Worker 316*495ae853SAndroid Build Coastguard Worker /** 317*495ae853SAndroid Build Coastguard Worker * Pointer to a function for aligned free. 318*495ae853SAndroid Build Coastguard Worker */ 319*495ae853SAndroid Build Coastguard Worker void (*pf_aligned_free)(void *pv_mem_ctxt, void *pv_buf); 320*495ae853SAndroid Build Coastguard Worker 321*495ae853SAndroid Build Coastguard Worker /** 322*495ae853SAndroid Build Coastguard Worker * Pointer to memory context that is needed during alloc/free for custom 323*495ae853SAndroid Build Coastguard Worker * memory managers. This will be passed as first argument to pf_aligned_alloc and 324*495ae853SAndroid Build Coastguard Worker * pf_aligned_free. 325*495ae853SAndroid Build Coastguard Worker * If application is using standard memory functions like 326*495ae853SAndroid Build Coastguard Worker * malloc/aligned_malloc/memalign/free/aligned_free, 327*495ae853SAndroid Build Coastguard Worker * then this is not needed and can be set to NULL 328*495ae853SAndroid Build Coastguard Worker */ 329*495ae853SAndroid Build Coastguard Worker void *pv_mem_ctxt; 330*495ae853SAndroid Build Coastguard Worker 331*495ae853SAndroid Build Coastguard Worker }ivd_create_ip_t; 332*495ae853SAndroid Build Coastguard Worker 333*495ae853SAndroid Build Coastguard Worker 334*495ae853SAndroid Build Coastguard Worker typedef struct{ 335*495ae853SAndroid Build Coastguard Worker /** 336*495ae853SAndroid Build Coastguard Worker * u4_size of the structure 337*495ae853SAndroid Build Coastguard Worker */ 338*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 339*495ae853SAndroid Build Coastguard Worker 340*495ae853SAndroid Build Coastguard Worker /** 341*495ae853SAndroid Build Coastguard Worker * u4_error_code 342*495ae853SAndroid Build Coastguard Worker */ 343*495ae853SAndroid Build Coastguard Worker UWORD32 u4_error_code; 344*495ae853SAndroid Build Coastguard Worker 345*495ae853SAndroid Build Coastguard Worker /** 346*495ae853SAndroid Build Coastguard Worker * Codec Handle 347*495ae853SAndroid Build Coastguard Worker */ 348*495ae853SAndroid Build Coastguard Worker void *pv_handle; 349*495ae853SAndroid Build Coastguard Worker 350*495ae853SAndroid Build Coastguard Worker }ivd_create_op_t; 351*495ae853SAndroid Build Coastguard Worker 352*495ae853SAndroid Build Coastguard Worker 353*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 354*495ae853SAndroid Build Coastguard Worker /* Delete decoder */ 355*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 356*495ae853SAndroid Build Coastguard Worker 357*495ae853SAndroid Build Coastguard Worker /* IVD_API_COMMAND_TYPE_T::e_cmd = IVD_CMD_DELETE */ 358*495ae853SAndroid Build Coastguard Worker 359*495ae853SAndroid Build Coastguard Worker 360*495ae853SAndroid Build Coastguard Worker 361*495ae853SAndroid Build Coastguard Worker typedef struct { 362*495ae853SAndroid Build Coastguard Worker /** 363*495ae853SAndroid Build Coastguard Worker * u4_size of the structure 364*495ae853SAndroid Build Coastguard Worker */ 365*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 366*495ae853SAndroid Build Coastguard Worker 367*495ae853SAndroid Build Coastguard Worker /** 368*495ae853SAndroid Build Coastguard Worker * cmd 369*495ae853SAndroid Build Coastguard Worker */ 370*495ae853SAndroid Build Coastguard Worker IVD_API_COMMAND_TYPE_T e_cmd; 371*495ae853SAndroid Build Coastguard Worker 372*495ae853SAndroid Build Coastguard Worker }ivd_delete_ip_t; 373*495ae853SAndroid Build Coastguard Worker 374*495ae853SAndroid Build Coastguard Worker 375*495ae853SAndroid Build Coastguard Worker typedef struct{ 376*495ae853SAndroid Build Coastguard Worker /** 377*495ae853SAndroid Build Coastguard Worker * u4_size of the structure 378*495ae853SAndroid Build Coastguard Worker */ 379*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 380*495ae853SAndroid Build Coastguard Worker 381*495ae853SAndroid Build Coastguard Worker /** 382*495ae853SAndroid Build Coastguard Worker * error_code 383*495ae853SAndroid Build Coastguard Worker */ 384*495ae853SAndroid Build Coastguard Worker UWORD32 u4_error_code; 385*495ae853SAndroid Build Coastguard Worker 386*495ae853SAndroid Build Coastguard Worker }ivd_delete_op_t; 387*495ae853SAndroid Build Coastguard Worker 388*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 389*495ae853SAndroid Build Coastguard Worker /* Video Decode */ 390*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 391*495ae853SAndroid Build Coastguard Worker 392*495ae853SAndroid Build Coastguard Worker /* SEI params deocde */ 393*495ae853SAndroid Build Coastguard Worker typedef struct { 394*495ae853SAndroid Build Coastguard Worker UWORD8 u1_sei_mdcv_params_present_flag; 395*495ae853SAndroid Build Coastguard Worker 396*495ae853SAndroid Build Coastguard Worker UWORD8 u1_sei_cll_params_present_flag; 397*495ae853SAndroid Build Coastguard Worker 398*495ae853SAndroid Build Coastguard Worker UWORD8 u1_sei_ave_params_present_flag; 399*495ae853SAndroid Build Coastguard Worker 400*495ae853SAndroid Build Coastguard Worker UWORD8 u1_sei_ccv_params_present_flag; 401*495ae853SAndroid Build Coastguard Worker 402*495ae853SAndroid Build Coastguard Worker UWORD8 u1_sei_sii_params_present_flag; 403*495ae853SAndroid Build Coastguard Worker 404*495ae853SAndroid Build Coastguard Worker UWORD8 u1_sei_fgc_params_present_flag; 405*495ae853SAndroid Build Coastguard Worker 406*495ae853SAndroid Build Coastguard Worker }ivd_sei_decode_op_t; 407*495ae853SAndroid Build Coastguard Worker 408*495ae853SAndroid Build Coastguard Worker /* IVD_API_COMMAND_TYPE_T::e_cmd = IVD_CMD_VIDEO_DECODE */ 409*495ae853SAndroid Build Coastguard Worker 410*495ae853SAndroid Build Coastguard Worker 411*495ae853SAndroid Build Coastguard Worker typedef struct { 412*495ae853SAndroid Build Coastguard Worker /** 413*495ae853SAndroid Build Coastguard Worker * u4_size of the structure 414*495ae853SAndroid Build Coastguard Worker */ 415*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 416*495ae853SAndroid Build Coastguard Worker 417*495ae853SAndroid Build Coastguard Worker /** 418*495ae853SAndroid Build Coastguard Worker * e_cmd 419*495ae853SAndroid Build Coastguard Worker */ 420*495ae853SAndroid Build Coastguard Worker IVD_API_COMMAND_TYPE_T e_cmd; 421*495ae853SAndroid Build Coastguard Worker 422*495ae853SAndroid Build Coastguard Worker /** 423*495ae853SAndroid Build Coastguard Worker * u4_ts 424*495ae853SAndroid Build Coastguard Worker */ 425*495ae853SAndroid Build Coastguard Worker UWORD32 u4_ts; 426*495ae853SAndroid Build Coastguard Worker 427*495ae853SAndroid Build Coastguard Worker /** 428*495ae853SAndroid Build Coastguard Worker * u4_num_Bytes 429*495ae853SAndroid Build Coastguard Worker */ 430*495ae853SAndroid Build Coastguard Worker UWORD32 u4_num_Bytes; 431*495ae853SAndroid Build Coastguard Worker 432*495ae853SAndroid Build Coastguard Worker /** 433*495ae853SAndroid Build Coastguard Worker * pv_stream_buffer 434*495ae853SAndroid Build Coastguard Worker */ 435*495ae853SAndroid Build Coastguard Worker void *pv_stream_buffer; 436*495ae853SAndroid Build Coastguard Worker 437*495ae853SAndroid Build Coastguard Worker /** 438*495ae853SAndroid Build Coastguard Worker * output buffer desc 439*495ae853SAndroid Build Coastguard Worker */ 440*495ae853SAndroid Build Coastguard Worker ivd_out_bufdesc_t s_out_buffer; 441*495ae853SAndroid Build Coastguard Worker 442*495ae853SAndroid Build Coastguard Worker }ivd_video_decode_ip_t; 443*495ae853SAndroid Build Coastguard Worker 444*495ae853SAndroid Build Coastguard Worker 445*495ae853SAndroid Build Coastguard Worker typedef struct{ 446*495ae853SAndroid Build Coastguard Worker /** 447*495ae853SAndroid Build Coastguard Worker * u4_size of the structure 448*495ae853SAndroid Build Coastguard Worker */ 449*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 450*495ae853SAndroid Build Coastguard Worker 451*495ae853SAndroid Build Coastguard Worker /** 452*495ae853SAndroid Build Coastguard Worker * u4_error_code 453*495ae853SAndroid Build Coastguard Worker */ 454*495ae853SAndroid Build Coastguard Worker UWORD32 u4_error_code; 455*495ae853SAndroid Build Coastguard Worker 456*495ae853SAndroid Build Coastguard Worker /** 457*495ae853SAndroid Build Coastguard Worker * num_bytes_consumed 458*495ae853SAndroid Build Coastguard Worker */ 459*495ae853SAndroid Build Coastguard Worker UWORD32 u4_num_bytes_consumed; 460*495ae853SAndroid Build Coastguard Worker 461*495ae853SAndroid Build Coastguard Worker /** 462*495ae853SAndroid Build Coastguard Worker * pic_wd 463*495ae853SAndroid Build Coastguard Worker */ 464*495ae853SAndroid Build Coastguard Worker UWORD32 u4_pic_wd; 465*495ae853SAndroid Build Coastguard Worker 466*495ae853SAndroid Build Coastguard Worker /** 467*495ae853SAndroid Build Coastguard Worker * pic_ht 468*495ae853SAndroid Build Coastguard Worker */ 469*495ae853SAndroid Build Coastguard Worker UWORD32 u4_pic_ht; 470*495ae853SAndroid Build Coastguard Worker 471*495ae853SAndroid Build Coastguard Worker /** 472*495ae853SAndroid Build Coastguard Worker * pic_type 473*495ae853SAndroid Build Coastguard Worker */ 474*495ae853SAndroid Build Coastguard Worker IV_PICTURE_CODING_TYPE_T e_pic_type; 475*495ae853SAndroid Build Coastguard Worker 476*495ae853SAndroid Build Coastguard Worker /** 477*495ae853SAndroid Build Coastguard Worker * frame_decoded_flag 478*495ae853SAndroid Build Coastguard Worker */ 479*495ae853SAndroid Build Coastguard Worker UWORD32 u4_frame_decoded_flag; 480*495ae853SAndroid Build Coastguard Worker 481*495ae853SAndroid Build Coastguard Worker /** 482*495ae853SAndroid Build Coastguard Worker * new_seq 483*495ae853SAndroid Build Coastguard Worker */ 484*495ae853SAndroid Build Coastguard Worker UWORD32 u4_new_seq; 485*495ae853SAndroid Build Coastguard Worker 486*495ae853SAndroid Build Coastguard Worker /** 487*495ae853SAndroid Build Coastguard Worker * output_present 488*495ae853SAndroid Build Coastguard Worker */ 489*495ae853SAndroid Build Coastguard Worker UWORD32 u4_output_present; 490*495ae853SAndroid Build Coastguard Worker 491*495ae853SAndroid Build Coastguard Worker /** 492*495ae853SAndroid Build Coastguard Worker * progressive_frame_flag 493*495ae853SAndroid Build Coastguard Worker */ 494*495ae853SAndroid Build Coastguard Worker UWORD32 u4_progressive_frame_flag; 495*495ae853SAndroid Build Coastguard Worker 496*495ae853SAndroid Build Coastguard Worker /** 497*495ae853SAndroid Build Coastguard Worker * is_ref_flag 498*495ae853SAndroid Build Coastguard Worker */ 499*495ae853SAndroid Build Coastguard Worker UWORD32 u4_is_ref_flag; 500*495ae853SAndroid Build Coastguard Worker 501*495ae853SAndroid Build Coastguard Worker /** 502*495ae853SAndroid Build Coastguard Worker * output_format 503*495ae853SAndroid Build Coastguard Worker */ 504*495ae853SAndroid Build Coastguard Worker IV_COLOR_FORMAT_T e_output_format; 505*495ae853SAndroid Build Coastguard Worker 506*495ae853SAndroid Build Coastguard Worker /** 507*495ae853SAndroid Build Coastguard Worker * disp_frm_buf 508*495ae853SAndroid Build Coastguard Worker */ 509*495ae853SAndroid Build Coastguard Worker iv_yuv_buf_t s_disp_frm_buf; 510*495ae853SAndroid Build Coastguard Worker 511*495ae853SAndroid Build Coastguard Worker /** 512*495ae853SAndroid Build Coastguard Worker * sei params o/p struct 513*495ae853SAndroid Build Coastguard Worker */ 514*495ae853SAndroid Build Coastguard Worker ivd_sei_decode_op_t s_sei_decode_op; 515*495ae853SAndroid Build Coastguard Worker 516*495ae853SAndroid Build Coastguard Worker /** 517*495ae853SAndroid Build Coastguard Worker * fld_type 518*495ae853SAndroid Build Coastguard Worker */ 519*495ae853SAndroid Build Coastguard Worker IV_FLD_TYPE_T e4_fld_type; 520*495ae853SAndroid Build Coastguard Worker 521*495ae853SAndroid Build Coastguard Worker /** 522*495ae853SAndroid Build Coastguard Worker * ts 523*495ae853SAndroid Build Coastguard Worker */ 524*495ae853SAndroid Build Coastguard Worker UWORD32 u4_ts; 525*495ae853SAndroid Build Coastguard Worker 526*495ae853SAndroid Build Coastguard Worker /** 527*495ae853SAndroid Build Coastguard Worker * disp_buf_id 528*495ae853SAndroid Build Coastguard Worker */ 529*495ae853SAndroid Build Coastguard Worker UWORD32 u4_disp_buf_id; 530*495ae853SAndroid Build Coastguard Worker 531*495ae853SAndroid Build Coastguard Worker /** 532*495ae853SAndroid Build Coastguard Worker * reorder_depth 533*495ae853SAndroid Build Coastguard Worker */ 534*495ae853SAndroid Build Coastguard Worker WORD32 i4_reorder_depth; 535*495ae853SAndroid Build Coastguard Worker 536*495ae853SAndroid Build Coastguard Worker /** 537*495ae853SAndroid Build Coastguard Worker * disp_buf_id 538*495ae853SAndroid Build Coastguard Worker */ 539*495ae853SAndroid Build Coastguard Worker WORD32 i4_display_index; 540*495ae853SAndroid Build Coastguard Worker 541*495ae853SAndroid Build Coastguard Worker }ivd_video_decode_op_t; 542*495ae853SAndroid Build Coastguard Worker 543*495ae853SAndroid Build Coastguard Worker 544*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 545*495ae853SAndroid Build Coastguard Worker /* Get Display Frame */ 546*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 547*495ae853SAndroid Build Coastguard Worker 548*495ae853SAndroid Build Coastguard Worker 549*495ae853SAndroid Build Coastguard Worker /* IVD_API_COMMAND_TYPE_T::e_cmd = IVD_CMD_GET_DISPLAY_FRAME */ 550*495ae853SAndroid Build Coastguard Worker 551*495ae853SAndroid Build Coastguard Worker typedef struct 552*495ae853SAndroid Build Coastguard Worker { 553*495ae853SAndroid Build Coastguard Worker /** 554*495ae853SAndroid Build Coastguard Worker * u4_size of the structure 555*495ae853SAndroid Build Coastguard Worker */ 556*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 557*495ae853SAndroid Build Coastguard Worker 558*495ae853SAndroid Build Coastguard Worker /** 559*495ae853SAndroid Build Coastguard Worker * e_cmd 560*495ae853SAndroid Build Coastguard Worker */ 561*495ae853SAndroid Build Coastguard Worker IVD_API_COMMAND_TYPE_T e_cmd; 562*495ae853SAndroid Build Coastguard Worker 563*495ae853SAndroid Build Coastguard Worker /** 564*495ae853SAndroid Build Coastguard Worker * output buffer desc 565*495ae853SAndroid Build Coastguard Worker */ 566*495ae853SAndroid Build Coastguard Worker ivd_out_bufdesc_t s_out_buffer; 567*495ae853SAndroid Build Coastguard Worker 568*495ae853SAndroid Build Coastguard Worker }ivd_get_display_frame_ip_t; 569*495ae853SAndroid Build Coastguard Worker 570*495ae853SAndroid Build Coastguard Worker 571*495ae853SAndroid Build Coastguard Worker typedef struct 572*495ae853SAndroid Build Coastguard Worker { 573*495ae853SAndroid Build Coastguard Worker /** 574*495ae853SAndroid Build Coastguard Worker * u4_size of the structure 575*495ae853SAndroid Build Coastguard Worker */ 576*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 577*495ae853SAndroid Build Coastguard Worker 578*495ae853SAndroid Build Coastguard Worker /** 579*495ae853SAndroid Build Coastguard Worker * error_code 580*495ae853SAndroid Build Coastguard Worker */ 581*495ae853SAndroid Build Coastguard Worker UWORD32 u4_error_code; 582*495ae853SAndroid Build Coastguard Worker 583*495ae853SAndroid Build Coastguard Worker /** 584*495ae853SAndroid Build Coastguard Worker * progressive_frame_flag 585*495ae853SAndroid Build Coastguard Worker */ 586*495ae853SAndroid Build Coastguard Worker UWORD32 u4_progressive_frame_flag; 587*495ae853SAndroid Build Coastguard Worker 588*495ae853SAndroid Build Coastguard Worker /** 589*495ae853SAndroid Build Coastguard Worker * pic_type 590*495ae853SAndroid Build Coastguard Worker */ 591*495ae853SAndroid Build Coastguard Worker IV_PICTURE_CODING_TYPE_T e_pic_type; 592*495ae853SAndroid Build Coastguard Worker 593*495ae853SAndroid Build Coastguard Worker /** 594*495ae853SAndroid Build Coastguard Worker * is_ref_flag 595*495ae853SAndroid Build Coastguard Worker */ 596*495ae853SAndroid Build Coastguard Worker UWORD32 u4_is_ref_flag; 597*495ae853SAndroid Build Coastguard Worker 598*495ae853SAndroid Build Coastguard Worker /** 599*495ae853SAndroid Build Coastguard Worker * output_format 600*495ae853SAndroid Build Coastguard Worker */ 601*495ae853SAndroid Build Coastguard Worker IV_COLOR_FORMAT_T e_output_format; 602*495ae853SAndroid Build Coastguard Worker 603*495ae853SAndroid Build Coastguard Worker /** 604*495ae853SAndroid Build Coastguard Worker * disp_frm_buf 605*495ae853SAndroid Build Coastguard Worker */ 606*495ae853SAndroid Build Coastguard Worker iv_yuv_buf_t s_disp_frm_buf; 607*495ae853SAndroid Build Coastguard Worker 608*495ae853SAndroid Build Coastguard Worker /** 609*495ae853SAndroid Build Coastguard Worker * fld_type 610*495ae853SAndroid Build Coastguard Worker */ 611*495ae853SAndroid Build Coastguard Worker IV_FLD_TYPE_T e4_fld_type; 612*495ae853SAndroid Build Coastguard Worker 613*495ae853SAndroid Build Coastguard Worker /** 614*495ae853SAndroid Build Coastguard Worker * ts 615*495ae853SAndroid Build Coastguard Worker */ 616*495ae853SAndroid Build Coastguard Worker UWORD32 u4_ts; 617*495ae853SAndroid Build Coastguard Worker 618*495ae853SAndroid Build Coastguard Worker /** 619*495ae853SAndroid Build Coastguard Worker * disp_buf_id 620*495ae853SAndroid Build Coastguard Worker */ 621*495ae853SAndroid Build Coastguard Worker UWORD32 u4_disp_buf_id; 622*495ae853SAndroid Build Coastguard Worker }ivd_get_display_frame_op_t; 623*495ae853SAndroid Build Coastguard Worker 624*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 625*495ae853SAndroid Build Coastguard Worker /* Set Display Frame */ 626*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 627*495ae853SAndroid Build Coastguard Worker 628*495ae853SAndroid Build Coastguard Worker 629*495ae853SAndroid Build Coastguard Worker /* IVD_API_COMMAND_TYPE_T::e_cmd = IVD_CMD_SET_DISPLAY_FRAME */ 630*495ae853SAndroid Build Coastguard Worker 631*495ae853SAndroid Build Coastguard Worker typedef struct 632*495ae853SAndroid Build Coastguard Worker { 633*495ae853SAndroid Build Coastguard Worker /** 634*495ae853SAndroid Build Coastguard Worker * u4_size of the structure 635*495ae853SAndroid Build Coastguard Worker */ 636*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 637*495ae853SAndroid Build Coastguard Worker 638*495ae853SAndroid Build Coastguard Worker /** 639*495ae853SAndroid Build Coastguard Worker * cmd 640*495ae853SAndroid Build Coastguard Worker */ 641*495ae853SAndroid Build Coastguard Worker IVD_API_COMMAND_TYPE_T e_cmd; 642*495ae853SAndroid Build Coastguard Worker 643*495ae853SAndroid Build Coastguard Worker /** 644*495ae853SAndroid Build Coastguard Worker * num_disp_bufs 645*495ae853SAndroid Build Coastguard Worker */ 646*495ae853SAndroid Build Coastguard Worker UWORD32 num_disp_bufs; 647*495ae853SAndroid Build Coastguard Worker 648*495ae853SAndroid Build Coastguard Worker /** 649*495ae853SAndroid Build Coastguard Worker * output buffer desc 650*495ae853SAndroid Build Coastguard Worker */ 651*495ae853SAndroid Build Coastguard Worker ivd_out_bufdesc_t s_disp_buffer[IVD_VIDDEC_MAX_IO_BUFFERS]; 652*495ae853SAndroid Build Coastguard Worker 653*495ae853SAndroid Build Coastguard Worker }ivd_set_display_frame_ip_t; 654*495ae853SAndroid Build Coastguard Worker 655*495ae853SAndroid Build Coastguard Worker 656*495ae853SAndroid Build Coastguard Worker typedef struct 657*495ae853SAndroid Build Coastguard Worker { 658*495ae853SAndroid Build Coastguard Worker /** 659*495ae853SAndroid Build Coastguard Worker * u4_size of the structure 660*495ae853SAndroid Build Coastguard Worker */ 661*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 662*495ae853SAndroid Build Coastguard Worker 663*495ae853SAndroid Build Coastguard Worker /** 664*495ae853SAndroid Build Coastguard Worker * error code 665*495ae853SAndroid Build Coastguard Worker */ 666*495ae853SAndroid Build Coastguard Worker UWORD32 u4_error_code; 667*495ae853SAndroid Build Coastguard Worker }ivd_set_display_frame_op_t; 668*495ae853SAndroid Build Coastguard Worker 669*495ae853SAndroid Build Coastguard Worker 670*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 671*495ae853SAndroid Build Coastguard Worker /* Release Display Frame */ 672*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 673*495ae853SAndroid Build Coastguard Worker 674*495ae853SAndroid Build Coastguard Worker 675*495ae853SAndroid Build Coastguard Worker /* IVD_API_COMMAND_TYPE_T::e_cmd = IVD_CMD_SET_DISPLAY_FRAME */ 676*495ae853SAndroid Build Coastguard Worker 677*495ae853SAndroid Build Coastguard Worker typedef struct 678*495ae853SAndroid Build Coastguard Worker { 679*495ae853SAndroid Build Coastguard Worker /** 680*495ae853SAndroid Build Coastguard Worker * u4_size of the structure 681*495ae853SAndroid Build Coastguard Worker */ 682*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 683*495ae853SAndroid Build Coastguard Worker 684*495ae853SAndroid Build Coastguard Worker /** 685*495ae853SAndroid Build Coastguard Worker * e_cmd 686*495ae853SAndroid Build Coastguard Worker */ 687*495ae853SAndroid Build Coastguard Worker IVD_API_COMMAND_TYPE_T e_cmd; 688*495ae853SAndroid Build Coastguard Worker 689*495ae853SAndroid Build Coastguard Worker /** 690*495ae853SAndroid Build Coastguard Worker * disp_buf_id 691*495ae853SAndroid Build Coastguard Worker */ 692*495ae853SAndroid Build Coastguard Worker UWORD32 u4_disp_buf_id; 693*495ae853SAndroid Build Coastguard Worker }ivd_rel_display_frame_ip_t; 694*495ae853SAndroid Build Coastguard Worker 695*495ae853SAndroid Build Coastguard Worker 696*495ae853SAndroid Build Coastguard Worker typedef struct 697*495ae853SAndroid Build Coastguard Worker { 698*495ae853SAndroid Build Coastguard Worker /** 699*495ae853SAndroid Build Coastguard Worker * u4_size of the structure 700*495ae853SAndroid Build Coastguard Worker */ 701*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 702*495ae853SAndroid Build Coastguard Worker 703*495ae853SAndroid Build Coastguard Worker /** 704*495ae853SAndroid Build Coastguard Worker * error code 705*495ae853SAndroid Build Coastguard Worker */ 706*495ae853SAndroid Build Coastguard Worker UWORD32 u4_error_code; 707*495ae853SAndroid Build Coastguard Worker }ivd_rel_display_frame_op_t; 708*495ae853SAndroid Build Coastguard Worker 709*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 710*495ae853SAndroid Build Coastguard Worker /* Video control Flush */ 711*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 712*495ae853SAndroid Build Coastguard Worker /* IVD_API_COMMAND_TYPE_T::e_cmd = IVD_CMD_VIDEO_CTL */ 713*495ae853SAndroid Build Coastguard Worker /* IVD_CONTROL_API_COMMAND_TYPE_T::e_sub_cmd = IVD_CMD_ctl_FLUSH */ 714*495ae853SAndroid Build Coastguard Worker 715*495ae853SAndroid Build Coastguard Worker 716*495ae853SAndroid Build Coastguard Worker 717*495ae853SAndroid Build Coastguard Worker typedef struct{ 718*495ae853SAndroid Build Coastguard Worker /** 719*495ae853SAndroid Build Coastguard Worker * u4_size of the structure 720*495ae853SAndroid Build Coastguard Worker */ 721*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 722*495ae853SAndroid Build Coastguard Worker 723*495ae853SAndroid Build Coastguard Worker /** 724*495ae853SAndroid Build Coastguard Worker * cmd 725*495ae853SAndroid Build Coastguard Worker */ 726*495ae853SAndroid Build Coastguard Worker IVD_API_COMMAND_TYPE_T e_cmd; 727*495ae853SAndroid Build Coastguard Worker 728*495ae853SAndroid Build Coastguard Worker /** 729*495ae853SAndroid Build Coastguard Worker * sub_cmd 730*495ae853SAndroid Build Coastguard Worker */ 731*495ae853SAndroid Build Coastguard Worker IVD_CONTROL_API_COMMAND_TYPE_T e_sub_cmd; 732*495ae853SAndroid Build Coastguard Worker }ivd_ctl_flush_ip_t; 733*495ae853SAndroid Build Coastguard Worker 734*495ae853SAndroid Build Coastguard Worker 735*495ae853SAndroid Build Coastguard Worker typedef struct{ 736*495ae853SAndroid Build Coastguard Worker /** 737*495ae853SAndroid Build Coastguard Worker * u4_size of the structure 738*495ae853SAndroid Build Coastguard Worker */ 739*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 740*495ae853SAndroid Build Coastguard Worker 741*495ae853SAndroid Build Coastguard Worker /** 742*495ae853SAndroid Build Coastguard Worker * error code 743*495ae853SAndroid Build Coastguard Worker */ 744*495ae853SAndroid Build Coastguard Worker UWORD32 u4_error_code; 745*495ae853SAndroid Build Coastguard Worker }ivd_ctl_flush_op_t; 746*495ae853SAndroid Build Coastguard Worker 747*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 748*495ae853SAndroid Build Coastguard Worker /* Video control reset */ 749*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 750*495ae853SAndroid Build Coastguard Worker /* IVD_API_COMMAND_TYPE_T::e_cmd = IVD_CMD_VIDEO_CTL */ 751*495ae853SAndroid Build Coastguard Worker /* IVD_CONTROL_API_COMMAND_TYPE_T::e_sub_cmd = IVD_CMD_ctl_RESET */ 752*495ae853SAndroid Build Coastguard Worker 753*495ae853SAndroid Build Coastguard Worker 754*495ae853SAndroid Build Coastguard Worker typedef struct{ 755*495ae853SAndroid Build Coastguard Worker /** 756*495ae853SAndroid Build Coastguard Worker * u4_size of the structure 757*495ae853SAndroid Build Coastguard Worker */ 758*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 759*495ae853SAndroid Build Coastguard Worker 760*495ae853SAndroid Build Coastguard Worker /** 761*495ae853SAndroid Build Coastguard Worker * cmd 762*495ae853SAndroid Build Coastguard Worker */ 763*495ae853SAndroid Build Coastguard Worker IVD_API_COMMAND_TYPE_T e_cmd; 764*495ae853SAndroid Build Coastguard Worker 765*495ae853SAndroid Build Coastguard Worker /** 766*495ae853SAndroid Build Coastguard Worker * sub_cmd 767*495ae853SAndroid Build Coastguard Worker */ 768*495ae853SAndroid Build Coastguard Worker 769*495ae853SAndroid Build Coastguard Worker IVD_CONTROL_API_COMMAND_TYPE_T e_sub_cmd; 770*495ae853SAndroid Build Coastguard Worker }ivd_ctl_reset_ip_t; 771*495ae853SAndroid Build Coastguard Worker 772*495ae853SAndroid Build Coastguard Worker 773*495ae853SAndroid Build Coastguard Worker typedef struct{ 774*495ae853SAndroid Build Coastguard Worker /** 775*495ae853SAndroid Build Coastguard Worker * u4_size of the structure 776*495ae853SAndroid Build Coastguard Worker */ 777*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 778*495ae853SAndroid Build Coastguard Worker 779*495ae853SAndroid Build Coastguard Worker /** 780*495ae853SAndroid Build Coastguard Worker * error code 781*495ae853SAndroid Build Coastguard Worker */ 782*495ae853SAndroid Build Coastguard Worker UWORD32 u4_error_code; 783*495ae853SAndroid Build Coastguard Worker }ivd_ctl_reset_op_t; 784*495ae853SAndroid Build Coastguard Worker 785*495ae853SAndroid Build Coastguard Worker 786*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 787*495ae853SAndroid Build Coastguard Worker /* Video control Set Params */ 788*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 789*495ae853SAndroid Build Coastguard Worker /* IVD_API_COMMAND_TYPE_T::e_cmd = IVD_CMD_VIDEO_CTL */ 790*495ae853SAndroid Build Coastguard Worker /* IVD_CONTROL_API_COMMAND_TYPE_T::e_sub_cmd=IVD_CMD_ctl_SETPARAMS */ 791*495ae853SAndroid Build Coastguard Worker /* IVD_CONTROL_API_COMMAND_TYPE_T::e_sub_cmd=IVD_CMD_ctl_SETDEFAULT */ 792*495ae853SAndroid Build Coastguard Worker 793*495ae853SAndroid Build Coastguard Worker 794*495ae853SAndroid Build Coastguard Worker 795*495ae853SAndroid Build Coastguard Worker typedef struct { 796*495ae853SAndroid Build Coastguard Worker /** 797*495ae853SAndroid Build Coastguard Worker * u4_size of the structure 798*495ae853SAndroid Build Coastguard Worker */ 799*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 800*495ae853SAndroid Build Coastguard Worker 801*495ae853SAndroid Build Coastguard Worker /** 802*495ae853SAndroid Build Coastguard Worker * cmd 803*495ae853SAndroid Build Coastguard Worker */ 804*495ae853SAndroid Build Coastguard Worker IVD_API_COMMAND_TYPE_T e_cmd; 805*495ae853SAndroid Build Coastguard Worker 806*495ae853SAndroid Build Coastguard Worker /** 807*495ae853SAndroid Build Coastguard Worker * sub_cmd 808*495ae853SAndroid Build Coastguard Worker */ 809*495ae853SAndroid Build Coastguard Worker IVD_CONTROL_API_COMMAND_TYPE_T e_sub_cmd; 810*495ae853SAndroid Build Coastguard Worker 811*495ae853SAndroid Build Coastguard Worker /** 812*495ae853SAndroid Build Coastguard Worker * vid_dec_mode 813*495ae853SAndroid Build Coastguard Worker */ 814*495ae853SAndroid Build Coastguard Worker IVD_VIDEO_DECODE_MODE_T e_vid_dec_mode; 815*495ae853SAndroid Build Coastguard Worker 816*495ae853SAndroid Build Coastguard Worker /** 817*495ae853SAndroid Build Coastguard Worker * disp_wd 818*495ae853SAndroid Build Coastguard Worker */ 819*495ae853SAndroid Build Coastguard Worker UWORD32 u4_disp_wd; 820*495ae853SAndroid Build Coastguard Worker 821*495ae853SAndroid Build Coastguard Worker /** 822*495ae853SAndroid Build Coastguard Worker * frm_skip_mode 823*495ae853SAndroid Build Coastguard Worker */ 824*495ae853SAndroid Build Coastguard Worker IVD_FRAME_SKIP_MODE_T e_frm_skip_mode; 825*495ae853SAndroid Build Coastguard Worker 826*495ae853SAndroid Build Coastguard Worker /** 827*495ae853SAndroid Build Coastguard Worker * frm_out_mode 828*495ae853SAndroid Build Coastguard Worker */ 829*495ae853SAndroid Build Coastguard Worker IVD_DISPLAY_FRAME_OUT_MODE_T e_frm_out_mode; 830*495ae853SAndroid Build Coastguard Worker }ivd_ctl_set_config_ip_t; 831*495ae853SAndroid Build Coastguard Worker 832*495ae853SAndroid Build Coastguard Worker 833*495ae853SAndroid Build Coastguard Worker typedef struct{ 834*495ae853SAndroid Build Coastguard Worker /** 835*495ae853SAndroid Build Coastguard Worker * u4_size of the structure 836*495ae853SAndroid Build Coastguard Worker */ 837*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 838*495ae853SAndroid Build Coastguard Worker 839*495ae853SAndroid Build Coastguard Worker /** 840*495ae853SAndroid Build Coastguard Worker * u4_error_code 841*495ae853SAndroid Build Coastguard Worker */ 842*495ae853SAndroid Build Coastguard Worker UWORD32 u4_error_code; 843*495ae853SAndroid Build Coastguard Worker }ivd_ctl_set_config_op_t; 844*495ae853SAndroid Build Coastguard Worker 845*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 846*495ae853SAndroid Build Coastguard Worker /* Video control:Get Buf Info */ 847*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 848*495ae853SAndroid Build Coastguard Worker 849*495ae853SAndroid Build Coastguard Worker /* IVD_API_COMMAND_TYPE_T::e_cmd = IVD_CMD_VIDEO_CTL */ 850*495ae853SAndroid Build Coastguard Worker /* IVD_CONTROL_API_COMMAND_TYPE_T::e_sub_cmd=IVD_CMD_ctl_GETBUFINFO */ 851*495ae853SAndroid Build Coastguard Worker 852*495ae853SAndroid Build Coastguard Worker 853*495ae853SAndroid Build Coastguard Worker typedef struct{ 854*495ae853SAndroid Build Coastguard Worker /** 855*495ae853SAndroid Build Coastguard Worker * u4_size of the structure 856*495ae853SAndroid Build Coastguard Worker */ 857*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 858*495ae853SAndroid Build Coastguard Worker 859*495ae853SAndroid Build Coastguard Worker /** 860*495ae853SAndroid Build Coastguard Worker * e_cmd 861*495ae853SAndroid Build Coastguard Worker */ 862*495ae853SAndroid Build Coastguard Worker IVD_API_COMMAND_TYPE_T e_cmd; 863*495ae853SAndroid Build Coastguard Worker 864*495ae853SAndroid Build Coastguard Worker /** 865*495ae853SAndroid Build Coastguard Worker * sub_cmd 866*495ae853SAndroid Build Coastguard Worker */ 867*495ae853SAndroid Build Coastguard Worker IVD_CONTROL_API_COMMAND_TYPE_T e_sub_cmd; 868*495ae853SAndroid Build Coastguard Worker }ivd_ctl_getbufinfo_ip_t; 869*495ae853SAndroid Build Coastguard Worker 870*495ae853SAndroid Build Coastguard Worker 871*495ae853SAndroid Build Coastguard Worker typedef struct{ 872*495ae853SAndroid Build Coastguard Worker /** 873*495ae853SAndroid Build Coastguard Worker * u4_size of the structure 874*495ae853SAndroid Build Coastguard Worker */ 875*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 876*495ae853SAndroid Build Coastguard Worker 877*495ae853SAndroid Build Coastguard Worker /** 878*495ae853SAndroid Build Coastguard Worker * error code 879*495ae853SAndroid Build Coastguard Worker */ 880*495ae853SAndroid Build Coastguard Worker UWORD32 u4_error_code; 881*495ae853SAndroid Build Coastguard Worker 882*495ae853SAndroid Build Coastguard Worker /** 883*495ae853SAndroid Build Coastguard Worker * no of display buffer sets required by codec 884*495ae853SAndroid Build Coastguard Worker */ 885*495ae853SAndroid Build Coastguard Worker UWORD32 u4_num_disp_bufs; 886*495ae853SAndroid Build Coastguard Worker 887*495ae853SAndroid Build Coastguard Worker /** 888*495ae853SAndroid Build Coastguard Worker * no of input buffers required for codec 889*495ae853SAndroid Build Coastguard Worker */ 890*495ae853SAndroid Build Coastguard Worker UWORD32 u4_min_num_in_bufs; 891*495ae853SAndroid Build Coastguard Worker 892*495ae853SAndroid Build Coastguard Worker /** 893*495ae853SAndroid Build Coastguard Worker * no of output buffers required for codec 894*495ae853SAndroid Build Coastguard Worker */ 895*495ae853SAndroid Build Coastguard Worker UWORD32 u4_min_num_out_bufs; 896*495ae853SAndroid Build Coastguard Worker 897*495ae853SAndroid Build Coastguard Worker /** 898*495ae853SAndroid Build Coastguard Worker * sizes of each input buffer required 899*495ae853SAndroid Build Coastguard Worker */ 900*495ae853SAndroid Build Coastguard Worker UWORD32 u4_min_in_buf_size[IVD_VIDDEC_MAX_IO_BUFFERS]; 901*495ae853SAndroid Build Coastguard Worker 902*495ae853SAndroid Build Coastguard Worker /** 903*495ae853SAndroid Build Coastguard Worker * sizes of each output buffer required 904*495ae853SAndroid Build Coastguard Worker */ 905*495ae853SAndroid Build Coastguard Worker UWORD32 u4_min_out_buf_size[IVD_VIDDEC_MAX_IO_BUFFERS]; 906*495ae853SAndroid Build Coastguard Worker }ivd_ctl_getbufinfo_op_t; 907*495ae853SAndroid Build Coastguard Worker 908*495ae853SAndroid Build Coastguard Worker 909*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 910*495ae853SAndroid Build Coastguard Worker /* Video control:Getstatus Call */ 911*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 912*495ae853SAndroid Build Coastguard Worker 913*495ae853SAndroid Build Coastguard Worker 914*495ae853SAndroid Build Coastguard Worker /* IVD_API_COMMAND_TYPE_T::e_cmd = IVD_CMD_VIDEO_CTL */ 915*495ae853SAndroid Build Coastguard Worker /* IVD_CONTROL_API_COMMAND_TYPE_T::e_sub_cmd=IVD_CMD_ctl_GETPARAMS */ 916*495ae853SAndroid Build Coastguard Worker 917*495ae853SAndroid Build Coastguard Worker 918*495ae853SAndroid Build Coastguard Worker typedef struct{ 919*495ae853SAndroid Build Coastguard Worker /** 920*495ae853SAndroid Build Coastguard Worker * u4_size of the structure 921*495ae853SAndroid Build Coastguard Worker */ 922*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 923*495ae853SAndroid Build Coastguard Worker 924*495ae853SAndroid Build Coastguard Worker /** 925*495ae853SAndroid Build Coastguard Worker * cmd 926*495ae853SAndroid Build Coastguard Worker */ 927*495ae853SAndroid Build Coastguard Worker IVD_API_COMMAND_TYPE_T e_cmd; 928*495ae853SAndroid Build Coastguard Worker 929*495ae853SAndroid Build Coastguard Worker /** 930*495ae853SAndroid Build Coastguard Worker * sub_cmd 931*495ae853SAndroid Build Coastguard Worker */ 932*495ae853SAndroid Build Coastguard Worker IVD_CONTROL_API_COMMAND_TYPE_T e_sub_cmd; 933*495ae853SAndroid Build Coastguard Worker }ivd_ctl_getstatus_ip_t; 934*495ae853SAndroid Build Coastguard Worker 935*495ae853SAndroid Build Coastguard Worker 936*495ae853SAndroid Build Coastguard Worker typedef struct{ 937*495ae853SAndroid Build Coastguard Worker 938*495ae853SAndroid Build Coastguard Worker /** 939*495ae853SAndroid Build Coastguard Worker * u4_size of the structure 940*495ae853SAndroid Build Coastguard Worker */ 941*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 942*495ae853SAndroid Build Coastguard Worker 943*495ae853SAndroid Build Coastguard Worker /** 944*495ae853SAndroid Build Coastguard Worker * error code 945*495ae853SAndroid Build Coastguard Worker */ 946*495ae853SAndroid Build Coastguard Worker UWORD32 u4_error_code; 947*495ae853SAndroid Build Coastguard Worker 948*495ae853SAndroid Build Coastguard Worker /** 949*495ae853SAndroid Build Coastguard Worker * no of display buffer sets required by codec 950*495ae853SAndroid Build Coastguard Worker */ 951*495ae853SAndroid Build Coastguard Worker UWORD32 u4_num_disp_bufs; 952*495ae853SAndroid Build Coastguard Worker 953*495ae853SAndroid Build Coastguard Worker /** 954*495ae853SAndroid Build Coastguard Worker * u4_pic_ht 955*495ae853SAndroid Build Coastguard Worker */ 956*495ae853SAndroid Build Coastguard Worker UWORD32 u4_pic_ht; 957*495ae853SAndroid Build Coastguard Worker 958*495ae853SAndroid Build Coastguard Worker /** 959*495ae853SAndroid Build Coastguard Worker * u4_pic_wd 960*495ae853SAndroid Build Coastguard Worker */ 961*495ae853SAndroid Build Coastguard Worker UWORD32 u4_pic_wd; 962*495ae853SAndroid Build Coastguard Worker 963*495ae853SAndroid Build Coastguard Worker /** 964*495ae853SAndroid Build Coastguard Worker * frame_rate 965*495ae853SAndroid Build Coastguard Worker */ 966*495ae853SAndroid Build Coastguard Worker UWORD32 u4_frame_rate; 967*495ae853SAndroid Build Coastguard Worker 968*495ae853SAndroid Build Coastguard Worker /** 969*495ae853SAndroid Build Coastguard Worker * u4_bit_rate 970*495ae853SAndroid Build Coastguard Worker */ 971*495ae853SAndroid Build Coastguard Worker UWORD32 u4_bit_rate; 972*495ae853SAndroid Build Coastguard Worker 973*495ae853SAndroid Build Coastguard Worker /** 974*495ae853SAndroid Build Coastguard Worker * content_type 975*495ae853SAndroid Build Coastguard Worker */ 976*495ae853SAndroid Build Coastguard Worker IV_CONTENT_TYPE_T e_content_type; 977*495ae853SAndroid Build Coastguard Worker 978*495ae853SAndroid Build Coastguard Worker /** 979*495ae853SAndroid Build Coastguard Worker * output_chroma_format 980*495ae853SAndroid Build Coastguard Worker */ 981*495ae853SAndroid Build Coastguard Worker IV_COLOR_FORMAT_T e_output_chroma_format; 982*495ae853SAndroid Build Coastguard Worker 983*495ae853SAndroid Build Coastguard Worker /** 984*495ae853SAndroid Build Coastguard Worker * no of input buffers required for codec 985*495ae853SAndroid Build Coastguard Worker */ 986*495ae853SAndroid Build Coastguard Worker UWORD32 u4_min_num_in_bufs; 987*495ae853SAndroid Build Coastguard Worker 988*495ae853SAndroid Build Coastguard Worker /** 989*495ae853SAndroid Build Coastguard Worker * no of output buffers required for codec 990*495ae853SAndroid Build Coastguard Worker */ 991*495ae853SAndroid Build Coastguard Worker UWORD32 u4_min_num_out_bufs; 992*495ae853SAndroid Build Coastguard Worker 993*495ae853SAndroid Build Coastguard Worker /** 994*495ae853SAndroid Build Coastguard Worker * sizes of each input buffer required 995*495ae853SAndroid Build Coastguard Worker */ 996*495ae853SAndroid Build Coastguard Worker UWORD32 u4_min_in_buf_size[IVD_VIDDEC_MAX_IO_BUFFERS]; 997*495ae853SAndroid Build Coastguard Worker 998*495ae853SAndroid Build Coastguard Worker /** 999*495ae853SAndroid Build Coastguard Worker * sizes of each output buffer required 1000*495ae853SAndroid Build Coastguard Worker */ 1001*495ae853SAndroid Build Coastguard Worker UWORD32 u4_min_out_buf_size[IVD_VIDDEC_MAX_IO_BUFFERS]; 1002*495ae853SAndroid Build Coastguard Worker }ivd_ctl_getstatus_op_t; 1003*495ae853SAndroid Build Coastguard Worker 1004*495ae853SAndroid Build Coastguard Worker 1005*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 1006*495ae853SAndroid Build Coastguard Worker /* Video control:Get Version Info */ 1007*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/ 1008*495ae853SAndroid Build Coastguard Worker 1009*495ae853SAndroid Build Coastguard Worker /* IVD_API_COMMAND_TYPE_T::e_cmd = IVD_CMD_VIDEO_CTL */ 1010*495ae853SAndroid Build Coastguard Worker /* IVD_CONTROL_API_COMMAND_TYPE_T::e_sub_cmd=IVD_CMD_ctl_GETVERSION */ 1011*495ae853SAndroid Build Coastguard Worker 1012*495ae853SAndroid Build Coastguard Worker 1013*495ae853SAndroid Build Coastguard Worker typedef struct{ 1014*495ae853SAndroid Build Coastguard Worker /** 1015*495ae853SAndroid Build Coastguard Worker * u4_size of the structure 1016*495ae853SAndroid Build Coastguard Worker */ 1017*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 1018*495ae853SAndroid Build Coastguard Worker 1019*495ae853SAndroid Build Coastguard Worker /** 1020*495ae853SAndroid Build Coastguard Worker * cmd 1021*495ae853SAndroid Build Coastguard Worker */ 1022*495ae853SAndroid Build Coastguard Worker IVD_API_COMMAND_TYPE_T e_cmd; 1023*495ae853SAndroid Build Coastguard Worker 1024*495ae853SAndroid Build Coastguard Worker /** 1025*495ae853SAndroid Build Coastguard Worker * sub_cmd 1026*495ae853SAndroid Build Coastguard Worker */ 1027*495ae853SAndroid Build Coastguard Worker IVD_CONTROL_API_COMMAND_TYPE_T e_sub_cmd; 1028*495ae853SAndroid Build Coastguard Worker 1029*495ae853SAndroid Build Coastguard Worker /** 1030*495ae853SAndroid Build Coastguard Worker * pv_version_buffer 1031*495ae853SAndroid Build Coastguard Worker */ 1032*495ae853SAndroid Build Coastguard Worker void *pv_version_buffer; 1033*495ae853SAndroid Build Coastguard Worker 1034*495ae853SAndroid Build Coastguard Worker /** 1035*495ae853SAndroid Build Coastguard Worker * version_buffer_size 1036*495ae853SAndroid Build Coastguard Worker */ 1037*495ae853SAndroid Build Coastguard Worker UWORD32 u4_version_buffer_size; 1038*495ae853SAndroid Build Coastguard Worker }ivd_ctl_getversioninfo_ip_t; 1039*495ae853SAndroid Build Coastguard Worker 1040*495ae853SAndroid Build Coastguard Worker 1041*495ae853SAndroid Build Coastguard Worker typedef struct{ 1042*495ae853SAndroid Build Coastguard Worker /** 1043*495ae853SAndroid Build Coastguard Worker * u4_size of the structure 1044*495ae853SAndroid Build Coastguard Worker */ 1045*495ae853SAndroid Build Coastguard Worker UWORD32 u4_size; 1046*495ae853SAndroid Build Coastguard Worker 1047*495ae853SAndroid Build Coastguard Worker /** 1048*495ae853SAndroid Build Coastguard Worker * error code 1049*495ae853SAndroid Build Coastguard Worker */ 1050*495ae853SAndroid Build Coastguard Worker UWORD32 u4_error_code; 1051*495ae853SAndroid Build Coastguard Worker }ivd_ctl_getversioninfo_op_t; 1052*495ae853SAndroid Build Coastguard Worker 1053*495ae853SAndroid Build Coastguard Worker #endif /* __IVD_H__ */ 1054*495ae853SAndroid Build Coastguard Worker 1055