1 /****************************************************************************** 2 * 3 * Copyright (C) 2015 The Android Open Source Project 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at: 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 * 17 ***************************************************************************** 18 * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore 19 */ 20 /*****************************************************************************/ 21 /* */ 22 /* File Name : ivd.h */ 23 /* */ 24 /* Description : This file contains all the necessary structure and */ 25 /* enumeration definitions needed for the Application */ 26 /* Program Interface(API) of the Ittiam Video Decoders */ 27 /* */ 28 /* List of Functions : None */ 29 /* */ 30 /* Issues / Problems : None */ 31 /* */ 32 /* Revision History : */ 33 /* */ 34 /* DD MM YYYY Author(s) Changes (Describe the changes made) */ 35 /* 26 08 2010 100239(RCY) Draft */ 36 /* */ 37 /*****************************************************************************/ 38 39 #ifndef _IVD_H 40 #define _IVD_H 41 42 /*****************************************************************************/ 43 /* Constant Macros */ 44 /*****************************************************************************/ 45 #define IVD_VIDDEC_MAX_IO_BUFFERS 64 46 /*****************************************************************************/ 47 /* Typedefs */ 48 /*****************************************************************************/ 49 50 /*****************************************************************************/ 51 /* Enums */ 52 /*****************************************************************************/ 53 54 /* IVD_ARCH_T: Architecture Enumeration */ 55 typedef enum 56 { 57 ARCH_NA = 0x7FFFFFFF, 58 ARCH_ARM_NONEON = 0x0, 59 ARCH_ARM_A9Q, 60 ARCH_ARM_A9A, 61 ARCH_ARM_A9, 62 ARCH_ARM_A7, 63 ARCH_ARM_A5, 64 ARCH_ARM_A15, 65 ARCH_ARM_NEONINTR, 66 ARCH_ARMV8_GENERIC, 67 ARCH_X86_GENERIC = 0x100, 68 ARCH_X86_SSSE3, 69 ARCH_X86_SSE42, 70 ARCH_X86_AVX2, 71 ARCH_MIPS_GENERIC = 0x200, 72 ARCH_MIPS_32 73 }IVD_ARCH_T; 74 75 /* IVD_SOC_T: SOC Enumeration */ 76 typedef enum 77 { 78 SOC_NA = 0x7FFFFFFF, 79 SOC_GENERIC = 0x0, 80 SOC_HISI_37X = 0x100, 81 }IVD_SOC_T; 82 83 /* IVD_FRAME_SKIP_MODE_T:Skip mode Enumeration */ 84 85 typedef enum { 86 IVD_SKIP_NONE = 0x7FFFFFFF, 87 IVD_SKIP_P = 0x1, 88 IVD_SKIP_B = 0x2, 89 IVD_SKIP_I = 0x3, 90 IVD_SKIP_IP = 0x4, 91 IVD_SKIP_IB = 0x5, 92 IVD_SKIP_PB = 0x6, 93 IVD_SKIP_IPB = 0x7, 94 IVD_SKIP_IDR = 0x8, 95 IVD_SKIP_DEFAULT = IVD_SKIP_NONE, 96 }IVD_FRAME_SKIP_MODE_T; 97 98 /* IVD_VIDEO_DECODE_MODE_T: Set decoder to decode either frame worth of data */ 99 /* or only header worth of data */ 100 101 typedef enum { 102 IVD_DECODE_MODE_NA = 0x7FFFFFFF, 103 104 /* This enables the codec to process all decodable units */ 105 IVD_DECODE_FRAME = 0x0, 106 107 /* This enables the codec to decode header only */ 108 IVD_DECODE_HEADER = 0x1, 109 110 111 112 }IVD_VIDEO_DECODE_MODE_T; 113 114 115 /* IVD_DISPLAY_FRAME_OUT_MODE_T: Video Display Frame Output Mode */ 116 117 typedef enum { 118 119 IVD_DISPLAY_ORDER_NA = 0x7FFFFFFF, 120 /* To set codec to fill output buffers in display order */ 121 IVD_DISPLAY_FRAME_OUT = 0x0, 122 123 /* To set codec to fill output buffers in decode order */ 124 IVD_DECODE_FRAME_OUT = 0x1, 125 }IVD_DISPLAY_FRAME_OUT_MODE_T; 126 127 128 /* IVD_API_COMMAND_TYPE_T:API command type */ 129 typedef enum { 130 IVD_CMD_VIDEO_NA = 0x7FFFFFFF, 131 IVD_CMD_VIDEO_CTL = IV_CMD_DUMMY_ELEMENT + 1, 132 IVD_CMD_VIDEO_DECODE, 133 IVD_CMD_GET_DISPLAY_FRAME, 134 IVD_CMD_REL_DISPLAY_FRAME, 135 IVD_CMD_SET_DISPLAY_FRAME 136 }IVD_API_COMMAND_TYPE_T; 137 138 /* IVD_CONTROL_API_COMMAND_TYPE_T: Video Control API command type */ 139 140 typedef enum { 141 IVD_CMD_NA = 0x7FFFFFFF, 142 IVD_CMD_CTL_GETPARAMS = 0x0, 143 IVD_CMD_CTL_SETPARAMS = 0x1, 144 IVD_CMD_CTL_RESET = 0x2, 145 IVD_CMD_CTL_SETDEFAULT = 0x3, 146 IVD_CMD_CTL_FLUSH = 0x4, 147 IVD_CMD_CTL_GETBUFINFO = 0x5, 148 IVD_CMD_CTL_GETVERSION = 0x6, 149 IVD_CMD_CTL_CODEC_SUBCMD_START = 0x7 150 }IVD_CONTROL_API_COMMAND_TYPE_T; 151 152 153 /* IVD_ERROR_BITS_T: A UWORD32 container will be used for reporting the error*/ 154 /* code to the application. The first 8 bits starting from LSB have been */ 155 /* reserved for the codec to report internal error details. The rest of the */ 156 /* bits will be generic for all video decoders and each bit has an associated*/ 157 /* meaning as mentioned below. The unused bit fields are reserved for future */ 158 /* extenstions and will be zero in the current implementation */ 159 160 typedef enum { 161 /* Bit 8 - Applied concealment. */ 162 IVD_APPLIEDCONCEALMENT = 0x8, 163 /* Bit 9 - Insufficient input data. */ 164 IVD_INSUFFICIENTDATA = 0x9, 165 /* Bit 10 - Data problem/corruption. */ 166 IVD_CORRUPTEDDATA = 0xa, 167 /* Bit 11 - Header problem/corruption. */ 168 IVD_CORRUPTEDHEADER = 0xb, 169 /* Bit 12 - Unsupported feature/parameter in input. */ 170 IVD_UNSUPPORTEDINPUT = 0xc, 171 /* Bit 13 - Unsupported input parameter orconfiguration. */ 172 IVD_UNSUPPORTEDPARAM = 0xd, 173 /* Bit 14 - Fatal error (stop the codec).If there is an */ 174 /* error and this bit is not set, the error is a recoverable one. */ 175 IVD_FATALERROR = 0xe, 176 /* Bit 15 - Invalid bitstream. Applies when Bitstream/YUV frame */ 177 /* buffer for encode/decode call is made with non-valid or zero u4_size */ 178 /* data */ 179 IVD_INVALID_BITSTREAM = 0xf, 180 /* Bit 16 */ 181 IVD_INCOMPLETE_BITSTREAM = 0x10, 182 IVD_ERROR_BITS_T_DUMMY_ELEMENT = 0x7FFFFFFF 183 }IVD_ERROR_BITS_T; 184 185 186 /* IVD_CONTROL_API_COMMAND_TYPE_T: Video Control API command type */ 187 typedef enum { 188 IVD_ERROR_NONE = 0x0, 189 IVD_NUM_MEM_REC_FAILED = 0x1, 190 IVD_NUM_REC_NOT_SUFFICIENT = 0x2, 191 IVD_FILL_MEM_REC_FAILED = 0x3, 192 IVD_REQUESTED_WIDTH_NOT_SUPPPORTED = 0x4, 193 IVD_REQUESTED_HEIGHT_NOT_SUPPPORTED = 0x5, 194 IVD_INIT_DEC_FAILED = 0x6, 195 IVD_INIT_DEC_NOT_SUFFICIENT = 0x7, 196 IVD_INIT_DEC_WIDTH_NOT_SUPPPORTED = 0x8, 197 IVD_INIT_DEC_HEIGHT_NOT_SUPPPORTED = 0x9, 198 IVD_INIT_DEC_MEM_NOT_ALIGNED = 0xa, 199 IVD_INIT_DEC_COL_FMT_NOT_SUPPORTED = 0xb, 200 IVD_INIT_DEC_MEM_REC_NOT_SUFFICIENT = 0xc, 201 IVD_GET_VERSION_DATABUFFER_SZ_INSUFFICIENT = 0xd, 202 IVD_BUFFER_SIZE_SET_TO_ZERO = 0xe, 203 IVD_UNEXPECTED_END_OF_STREAM = 0xf, 204 IVD_SEQUENCE_HEADER_NOT_DECODED = 0x10, 205 IVD_STREAM_WIDTH_HEIGHT_NOT_SUPPORTED = 0x11, 206 IVD_MAX_FRAME_LIMIT_REACHED = 0x12, 207 IVD_IP_API_STRUCT_SIZE_INCORRECT = 0x13, 208 IVD_OP_API_STRUCT_SIZE_INCORRECT = 0x14, 209 IVD_HANDLE_NULL = 0x15, 210 IVD_HANDLE_STRUCT_SIZE_INCORRECT = 0x16, 211 IVD_INVALID_HANDLE_NULL = 0x17, 212 IVD_INVALID_API_CMD = 0x18, 213 IVD_UNSUPPORTED_API_CMD = 0x19, 214 IVD_MEM_REC_STRUCT_SIZE_INCORRECT = 0x1a, 215 IVD_DISP_FRM_ZERO_OP_BUFS = 0x1b, 216 IVD_DISP_FRM_OP_BUF_NULL = 0x1c, 217 IVD_DISP_FRM_ZERO_OP_BUF_SIZE = 0x1d, 218 IVD_DEC_FRM_BS_BUF_NULL = 0x1e, 219 IVD_SET_CONFG_INVALID_DEC_MODE = 0x1f, 220 IVD_SET_CONFG_UNSUPPORTED_DISP_WIDTH = 0x20, 221 IVD_RESET_FAILED = 0x21, 222 IVD_INIT_DEC_MEM_REC_OVERLAP_ERR = 0x22, 223 IVD_INIT_DEC_MEM_REC_BASE_NULL = 0x23, 224 IVD_INIT_DEC_MEM_REC_ALIGNMENT_ERR = 0x24, 225 IVD_INIT_DEC_MEM_REC_INSUFFICIENT_SIZE = 0x25, 226 IVD_INIT_DEC_MEM_REC_INCORRECT_TYPE = 0x26, 227 IVD_DEC_NUMBYTES_INV = 0x27, 228 IVD_DEC_REF_BUF_NULL = 0x28, 229 IVD_DEC_FRM_SKIPPED = 0x29, 230 IVD_RES_CHANGED = 0x2a, 231 IVD_DUMMY_ELEMENT_FOR_CODEC_EXTENSIONS = 0xD0, 232 }IVD_ERROR_CODES_T; 233 234 235 /*****************************************************************************/ 236 /* Structure */ 237 /*****************************************************************************/ 238 /* structure for passing output buffers to codec during get display buffer */ 239 /* call */ 240 typedef struct { 241 242 /* number of output buffers */ 243 UWORD32 u4_num_bufs; 244 245 /* list of pointers to output buffers */ 246 UWORD8 *pu1_bufs[IVD_VIDDEC_MAX_IO_BUFFERS]; 247 248 /* sizes of each output buffer */ 249 UWORD32 u4_min_out_buf_size[IVD_VIDDEC_MAX_IO_BUFFERS]; 250 251 }ivd_out_bufdesc_t; 252 253 /*****************************************************************************/ 254 /* Initialize decoder */ 255 /*****************************************************************************/ 256 257 /* IVD_API_COMMAND_TYPE_T::e_cmd = IVD_CMD_INIT */ 258 259 260 typedef struct { 261 /* u4_size of the structure */ 262 UWORD32 u4_size; 263 IVD_API_COMMAND_TYPE_T e_cmd; 264 /* no memrecords which are allocated on request of codec through 265 fill mem records */ 266 UWORD32 u4_num_mem_rec; 267 /* maximum height for which codec should be initialized */ 268 UWORD32 u4_frm_max_wd; 269 /* maximum width for which codec should be initialized */ 270 UWORD32 u4_frm_max_ht; 271 /* format in which codec has to give out frame data for display */ 272 IV_COLOR_FORMAT_T e_output_format; 273 /* pointer to memrecord array, which contains allocated resources */ 274 iv_mem_rec_t *pv_mem_rec_location; 275 }ivd_init_ip_t; 276 277 278 typedef struct{ 279 /* u4_size of the structure */ 280 UWORD32 u4_size; 281 UWORD32 u4_error_code; 282 }ivd_init_op_t; 283 284 285 /*****************************************************************************/ 286 /* Video Decode */ 287 /*****************************************************************************/ 288 289 290 /* IVD_API_COMMAND_TYPE_T::e_cmd = IVD_CMD_VIDEO_DECODE */ 291 292 293 typedef struct { 294 /* u4_size of the structure */ 295 UWORD32 u4_size; 296 IVD_API_COMMAND_TYPE_T e_cmd; 297 UWORD32 u4_ts; 298 UWORD32 u4_num_Bytes; 299 void *pv_stream_buffer; 300 301 /* output buffer desc */ 302 ivd_out_bufdesc_t s_out_buffer; 303 304 }ivd_video_decode_ip_t; 305 306 307 typedef struct{ 308 /* u4_size of the structure */ 309 UWORD32 u4_size; 310 UWORD32 u4_error_code; 311 UWORD32 u4_num_bytes_consumed; 312 UWORD32 u4_pic_wd; 313 UWORD32 u4_pic_ht; 314 IV_PICTURE_CODING_TYPE_T e_pic_type; 315 UWORD32 u4_frame_decoded_flag; 316 UWORD32 u4_new_seq; 317 318 UWORD32 u4_output_present; 319 UWORD32 u4_progressive_frame_flag; 320 UWORD32 u4_is_ref_flag; 321 IV_COLOR_FORMAT_T e_output_format; 322 iv_yuv_buf_t s_disp_frm_buf; 323 IV_FLD_TYPE_T e4_fld_type; 324 UWORD32 u4_ts; 325 UWORD32 u4_disp_buf_id; 326 }ivd_video_decode_op_t; 327 328 329 /*****************************************************************************/ 330 /* Get Display Frame */ 331 /*****************************************************************************/ 332 333 334 /* IVD_API_COMMAND_TYPE_T::e_cmd = IVD_CMD_GET_DISPLAY_FRAME */ 335 336 typedef struct 337 { 338 /* u4_size of the structure */ 339 UWORD32 u4_size; 340 341 IVD_API_COMMAND_TYPE_T e_cmd; 342 343 /* output buffer desc */ 344 ivd_out_bufdesc_t s_out_buffer; 345 346 }ivd_get_display_frame_ip_t; 347 348 349 typedef struct 350 { 351 /* u4_size of the structure */ 352 UWORD32 u4_size; 353 UWORD32 u4_error_code; 354 UWORD32 u4_progressive_frame_flag; 355 IV_PICTURE_CODING_TYPE_T e_pic_type; 356 UWORD32 u4_is_ref_flag; 357 IV_COLOR_FORMAT_T e_output_format; 358 iv_yuv_buf_t s_disp_frm_buf; 359 IV_FLD_TYPE_T e4_fld_type; 360 UWORD32 u4_ts; 361 UWORD32 u4_disp_buf_id; 362 }ivd_get_display_frame_op_t; 363 364 /*****************************************************************************/ 365 /* Set Display Frame */ 366 /*****************************************************************************/ 367 368 369 /* IVD_API_COMMAND_TYPE_T::e_cmd = IVD_CMD_SET_DISPLAY_FRAME */ 370 371 typedef struct 372 { 373 /* u4_size of the structure */ 374 UWORD32 u4_size; 375 376 IVD_API_COMMAND_TYPE_T e_cmd; 377 378 UWORD32 num_disp_bufs; 379 380 /* output buffer desc */ 381 ivd_out_bufdesc_t s_disp_buffer[IVD_VIDDEC_MAX_IO_BUFFERS]; 382 383 }ivd_set_display_frame_ip_t; 384 385 386 typedef struct 387 { 388 /* u4_size of the structure */ 389 UWORD32 u4_size; 390 UWORD32 u4_error_code; 391 }ivd_set_display_frame_op_t; 392 393 394 /*****************************************************************************/ 395 /* Release Display Frame */ 396 /*****************************************************************************/ 397 398 399 /* IVD_API_COMMAND_TYPE_T::e_cmd = IVD_CMD_SET_DISPLAY_FRAME */ 400 401 typedef struct 402 { 403 /* u4_size of the structure */ 404 UWORD32 u4_size; 405 IVD_API_COMMAND_TYPE_T e_cmd; 406 UWORD32 u4_disp_buf_id; 407 }ivd_rel_display_frame_ip_t; 408 409 410 typedef struct 411 { 412 /* u4_size of the structure */ 413 UWORD32 u4_size; 414 UWORD32 u4_error_code; 415 }ivd_rel_display_frame_op_t; 416 417 /*****************************************************************************/ 418 /* Video control Flush */ 419 /*****************************************************************************/ 420 /* IVD_API_COMMAND_TYPE_T::e_cmd = IVD_CMD_VIDEO_CTL */ 421 /* IVD_CONTROL_API_COMMAND_TYPE_T::e_sub_cmd = IVD_CMD_ctl_FLUSH */ 422 423 424 425 typedef struct{ 426 /* u4_size of the structure */ 427 UWORD32 u4_size; 428 IVD_API_COMMAND_TYPE_T e_cmd; 429 IVD_CONTROL_API_COMMAND_TYPE_T e_sub_cmd; 430 }ivd_ctl_flush_ip_t; 431 432 433 typedef struct{ 434 /* u4_size of the structure */ 435 UWORD32 u4_size; 436 UWORD32 u4_error_code; 437 }ivd_ctl_flush_op_t; 438 439 /*****************************************************************************/ 440 /* Video control reset */ 441 /*****************************************************************************/ 442 /* IVD_API_COMMAND_TYPE_T::e_cmd = IVD_CMD_VIDEO_CTL */ 443 /* IVD_CONTROL_API_COMMAND_TYPE_T::e_sub_cmd = IVD_CMD_ctl_RESET */ 444 445 446 typedef struct{ 447 /* u4_size of the structure */ 448 UWORD32 u4_size; 449 IVD_API_COMMAND_TYPE_T e_cmd; 450 IVD_CONTROL_API_COMMAND_TYPE_T e_sub_cmd; 451 }ivd_ctl_reset_ip_t; 452 453 454 typedef struct{ 455 /* u4_size of the structure */ 456 UWORD32 u4_size; 457 UWORD32 u4_error_code; 458 }ivd_ctl_reset_op_t; 459 460 461 /*****************************************************************************/ 462 /* Video control Set Params */ 463 /*****************************************************************************/ 464 /* IVD_API_COMMAND_TYPE_T::e_cmd = IVD_CMD_VIDEO_CTL */ 465 /* IVD_CONTROL_API_COMMAND_TYPE_T::e_sub_cmd=IVD_CMD_ctl_SETPARAMS */ 466 /* IVD_CONTROL_API_COMMAND_TYPE_T::e_sub_cmd=IVD_CMD_ctl_SETDEFAULT */ 467 468 469 470 typedef struct { 471 /* u4_size of the structure */ 472 UWORD32 u4_size; 473 IVD_API_COMMAND_TYPE_T e_cmd; 474 IVD_CONTROL_API_COMMAND_TYPE_T e_sub_cmd; 475 IVD_VIDEO_DECODE_MODE_T e_vid_dec_mode; 476 UWORD32 u4_disp_wd; 477 IVD_FRAME_SKIP_MODE_T e_frm_skip_mode; 478 IVD_DISPLAY_FRAME_OUT_MODE_T e_frm_out_mode; 479 }ivd_ctl_set_config_ip_t; 480 481 482 typedef struct{ 483 /* u4_size of the structure */ 484 UWORD32 u4_size; 485 UWORD32 u4_error_code; 486 }ivd_ctl_set_config_op_t; 487 488 /*****************************************************************************/ 489 /* Video control:Get Buf Info */ 490 /*****************************************************************************/ 491 492 /* IVD_API_COMMAND_TYPE_T::e_cmd = IVD_CMD_VIDEO_CTL */ 493 /* IVD_CONTROL_API_COMMAND_TYPE_T::e_sub_cmd=IVD_CMD_ctl_GETBUFINFO */ 494 495 496 typedef struct{ 497 /* u4_size of the structure */ 498 UWORD32 u4_size; 499 IVD_API_COMMAND_TYPE_T e_cmd; 500 IVD_CONTROL_API_COMMAND_TYPE_T e_sub_cmd; 501 }ivd_ctl_getbufinfo_ip_t; 502 503 504 typedef struct{ 505 /* u4_size of the structure */ 506 UWORD32 u4_size; 507 UWORD32 u4_error_code; 508 /* no of display buffer sets required by codec */ 509 UWORD32 u4_num_disp_bufs; 510 /* no of input buffers required for codec */ 511 UWORD32 u4_min_num_in_bufs; 512 /* no of output buffers required for codec */ 513 UWORD32 u4_min_num_out_bufs; 514 /* sizes of each input buffer required */ 515 UWORD32 u4_min_in_buf_size[IVD_VIDDEC_MAX_IO_BUFFERS]; 516 /* sizes of each output buffer required */ 517 UWORD32 u4_min_out_buf_size[IVD_VIDDEC_MAX_IO_BUFFERS]; 518 }ivd_ctl_getbufinfo_op_t; 519 520 521 /*****************************************************************************/ 522 /* Video control:Getstatus Call */ 523 /*****************************************************************************/ 524 525 526 /* IVD_API_COMMAND_TYPE_T::e_cmd = IVD_CMD_VIDEO_CTL */ 527 /* IVD_CONTROL_API_COMMAND_TYPE_T::e_sub_cmd=IVD_CMD_ctl_GETPARAMS */ 528 529 530 typedef struct{ 531 /* u4_size of the structure */ 532 UWORD32 u4_size; 533 IVD_API_COMMAND_TYPE_T e_cmd; 534 IVD_CONTROL_API_COMMAND_TYPE_T e_sub_cmd; 535 }ivd_ctl_getstatus_ip_t; 536 537 538 typedef struct{ 539 UWORD32 u4_size; 540 UWORD32 u4_error_code; 541 /* no of display buffer sets required by codec */ 542 UWORD32 u4_num_disp_bufs; 543 UWORD32 u4_pic_ht; 544 UWORD32 u4_pic_wd; 545 UWORD32 u4_frame_rate; 546 UWORD32 u4_bit_rate; 547 IV_CONTENT_TYPE_T e_content_type; 548 IV_COLOR_FORMAT_T e_output_chroma_format; 549 /* no of input buffers required for codec */ 550 UWORD32 u4_min_num_in_bufs; 551 /* no of output buffers required for codec */ 552 UWORD32 u4_min_num_out_bufs; 553 /* sizes of each input buffer required */ 554 UWORD32 u4_min_in_buf_size[IVD_VIDDEC_MAX_IO_BUFFERS]; 555 /* sizes of each output buffer required */ 556 UWORD32 u4_min_out_buf_size[IVD_VIDDEC_MAX_IO_BUFFERS]; 557 }ivd_ctl_getstatus_op_t; 558 559 560 /*****************************************************************************/ 561 /* Video control:Get Version Info */ 562 /*****************************************************************************/ 563 564 /* IVD_API_COMMAND_TYPE_T::e_cmd = IVD_CMD_VIDEO_CTL */ 565 /* IVD_CONTROL_API_COMMAND_TYPE_T::e_sub_cmd=IVD_CMD_ctl_GETVERSION */ 566 567 568 typedef struct{ 569 /* u4_size of the structure */ 570 UWORD32 u4_size; 571 IVD_API_COMMAND_TYPE_T e_cmd; 572 IVD_CONTROL_API_COMMAND_TYPE_T e_sub_cmd; 573 void *pv_version_buffer; 574 UWORD32 u4_version_buffer_size; 575 }ivd_ctl_getversioninfo_ip_t; 576 577 578 typedef struct{ 579 /* u4_size of the structure */ 580 UWORD32 u4_size; 581 UWORD32 u4_error_code; 582 }ivd_ctl_getversioninfo_op_t; 583 584 #endif /* __IVD_H__ */ 585 586