VDPAU
|
00001 /* 00002 * This source file is documented using Doxygen markup. 00003 * See http://www.stack.nl/~dimitri/doxygen/ 00004 */ 00005 00006 /* 00007 * This copyright notice applies to this header file: 00008 * 00009 * Copyright (c) 2008-2010 NVIDIA Corporation 00010 * 00011 * Permission is hereby granted, free of charge, to any person 00012 * obtaining a copy of this software and associated documentation 00013 * files (the "Software"), to deal in the Software without 00014 * restriction, including without limitation the rights to use, 00015 * copy, modify, merge, publish, distribute, sublicense, and/or sell 00016 * copies of the Software, and to permit persons to whom the 00017 * Software is furnished to do so, subject to the following 00018 * conditions: 00019 * 00020 * The above copyright notice and this permission notice shall be 00021 * included in all copies or substantial portions of the Software. 00022 * 00023 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 00024 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 00025 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 00026 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 00027 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 00028 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 00029 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 00030 * OTHER DEALINGS IN THE SOFTWARE. 00031 */ 00032 00744 #ifndef _VDPAU_H 00745 #define _VDPAU_H 00746 00747 #include <stdint.h> 00748 00749 #ifdef __cplusplus 00750 extern "C" { 00751 #endif 00752 00771 #define VDP_TRUE 1 00772 00773 #define VDP_FALSE 0 00774 00778 typedef int VdpBool; 00779 00798 #define VDP_INVALID_HANDLE 0xffffffffU 00799 00804 typedef uint32_t VdpChromaType; 00805 00807 #define VDP_CHROMA_TYPE_420 (VdpChromaType)0 00808 00809 #define VDP_CHROMA_TYPE_422 (VdpChromaType)1 00810 00811 #define VDP_CHROMA_TYPE_444 (VdpChromaType)2 00812 00816 typedef uint32_t VdpYCbCrFormat; 00817 00831 #define VDP_YCBCR_FORMAT_NV12 (VdpYCbCrFormat)0 00832 00843 #define VDP_YCBCR_FORMAT_YV12 (VdpYCbCrFormat)1 00844 00857 #define VDP_YCBCR_FORMAT_UYVY (VdpYCbCrFormat)2 00858 00871 #define VDP_YCBCR_FORMAT_YUYV (VdpYCbCrFormat)3 00872 00884 #define VDP_YCBCR_FORMAT_Y8U8V8A8 (VdpYCbCrFormat)4 00885 00897 #define VDP_YCBCR_FORMAT_V8U8Y8A8 (VdpYCbCrFormat)5 00898 00902 typedef uint32_t VdpRGBAFormat; 00903 00916 #define VDP_RGBA_FORMAT_B8G8R8A8 (VdpRGBAFormat)0 00917 00929 #define VDP_RGBA_FORMAT_R8G8B8A8 (VdpRGBAFormat)1 00930 00942 #define VDP_RGBA_FORMAT_R10G10B10A2 (VdpRGBAFormat)2 00943 00955 #define VDP_RGBA_FORMAT_B10G10R10A2 (VdpRGBAFormat)3 00956 00966 #define VDP_RGBA_FORMAT_A8 (VdpRGBAFormat)4 00967 00971 typedef uint32_t VdpIndexedFormat; 00972 00984 #define VDP_INDEXED_FORMAT_A4I4 (VdpIndexedFormat)0 00985 00996 #define VDP_INDEXED_FORMAT_I4A4 (VdpIndexedFormat)1 00997 01008 #define VDP_INDEXED_FORMAT_A8I8 (VdpIndexedFormat)2 01009 01020 #define VDP_INDEXED_FORMAT_I8A8 (VdpIndexedFormat)3 01021 01029 typedef struct { 01031 uint32_t x; 01033 uint32_t y; 01034 } VdpPoint; 01035 01046 typedef struct { 01048 uint32_t x0; 01050 uint32_t y0; 01052 uint32_t x1; 01054 uint32_t y1; 01055 } VdpRect; 01056 01065 typedef struct { 01066 float red; 01067 float green; 01068 float blue; 01069 float alpha; 01070 } VdpColor; 01071 01084 typedef enum { 01086 VDP_STATUS_OK = 0, 01090 VDP_STATUS_NO_IMPLEMENTATION, 01096 VDP_STATUS_DISPLAY_PREEMPTED, 01103 VDP_STATUS_INVALID_HANDLE, 01110 VDP_STATUS_INVALID_POINTER, 01114 VDP_STATUS_INVALID_CHROMA_TYPE, 01118 VDP_STATUS_INVALID_Y_CB_CR_FORMAT, 01122 VDP_STATUS_INVALID_RGBA_FORMAT, 01126 VDP_STATUS_INVALID_INDEXED_FORMAT, 01130 VDP_STATUS_INVALID_COLOR_STANDARD, 01134 VDP_STATUS_INVALID_COLOR_TABLE_FORMAT, 01139 VDP_STATUS_INVALID_BLEND_FACTOR, 01144 VDP_STATUS_INVALID_BLEND_EQUATION, 01148 VDP_STATUS_INVALID_FLAG, 01152 VDP_STATUS_INVALID_DECODER_PROFILE, 01156 VDP_STATUS_INVALID_VIDEO_MIXER_FEATURE, 01160 VDP_STATUS_INVALID_VIDEO_MIXER_PARAMETER, 01164 VDP_STATUS_INVALID_VIDEO_MIXER_ATTRIBUTE, 01169 VDP_STATUS_INVALID_VIDEO_MIXER_PICTURE_STRUCTURE, 01173 VDP_STATUS_INVALID_FUNC_ID, 01183 VDP_STATUS_INVALID_SIZE, 01190 VDP_STATUS_INVALID_VALUE, 01196 VDP_STATUS_INVALID_STRUCT_VERSION, 01201 VDP_STATUS_RESOURCES, 01211 VDP_STATUS_HANDLE_DEVICE_MISMATCH, 01215 VDP_STATUS_ERROR, 01216 } VdpStatus; 01217 01227 typedef char const * VdpGetErrorString( 01228 VdpStatus status 01229 ); 01230 01255 #define VDPAU_INTERFACE_VERSION 1 01256 01268 #define VDPAU_VERSION 1 01269 01275 typedef VdpStatus VdpGetApiVersion( 01276 /* output parameters follow */ 01277 uint32_t * api_version 01278 ); 01279 01297 typedef VdpStatus VdpGetInformationString( 01298 /* output parameters follow */ 01299 char const * * information_string 01300 ); 01301 01321 typedef uint32_t VdpDevice; 01322 01328 typedef VdpStatus VdpDeviceDestroy( 01329 VdpDevice device 01330 ); 01331 01370 typedef float VdpCSCMatrix[3][4]; 01371 01372 #define VDP_PROCAMP_VERSION 0 01373 01382 typedef struct { 01386 uint32_t struct_version; 01391 float brightness; 01396 float contrast; 01401 float saturation; 01406 float hue; 01407 } VdpProcamp; 01408 01415 typedef uint32_t VdpColorStandard; 01416 01418 #define VDP_COLOR_STANDARD_ITUR_BT_601 (VdpColorStandard)0 01419 01420 #define VDP_COLOR_STANDARD_ITUR_BT_709 (VdpColorStandard)1 01421 01422 #define VDP_COLOR_STANDARD_SMPTE_240M (VdpColorStandard)2 01423 01432 typedef VdpStatus VdpGenerateCSCMatrix( 01433 VdpProcamp * procamp, 01434 VdpColorStandard standard, 01435 /* output parameters follow */ 01436 VdpCSCMatrix * csc_matrix 01437 ); 01438 01483 typedef VdpStatus VdpVideoSurfaceQueryCapabilities( 01484 VdpDevice device, 01485 VdpChromaType surface_chroma_type, 01486 /* output parameters follow */ 01487 VdpBool * is_supported, 01488 uint32_t * max_width, 01489 uint32_t * max_height 01490 ); 01491 01503 typedef VdpStatus VdpVideoSurfaceQueryGetPutBitsYCbCrCapabilities( 01504 VdpDevice device, 01505 VdpChromaType surface_chroma_type, 01506 VdpYCbCrFormat bits_ycbcr_format, 01507 /* output parameters follow */ 01508 VdpBool * is_supported 01509 ); 01510 01515 typedef uint32_t VdpVideoSurface; 01516 01562 typedef VdpStatus VdpVideoSurfaceCreate( 01563 VdpDevice device, 01564 VdpChromaType chroma_type, 01565 uint32_t width, 01566 uint32_t height, 01567 /* output parameters follow */ 01568 VdpVideoSurface * surface 01569 ); 01570 01576 typedef VdpStatus VdpVideoSurfaceDestroy( 01577 VdpVideoSurface surface 01578 ); 01579 01589 typedef VdpStatus VdpVideoSurfaceGetParameters( 01590 VdpVideoSurface surface, 01591 /* output parameters follow */ 01592 VdpChromaType * chroma_type, 01593 uint32_t * width, 01594 uint32_t * height 01595 ); 01596 01615 typedef VdpStatus VdpVideoSurfaceGetBitsYCbCr( 01616 VdpVideoSurface surface, 01617 VdpYCbCrFormat destination_ycbcr_format, 01618 void * const * destination_data, 01619 uint32_t const * destination_pitches 01620 ); 01621 01640 typedef VdpStatus VdpVideoSurfacePutBitsYCbCr( 01641 VdpVideoSurface surface, 01642 VdpYCbCrFormat source_ycbcr_format, 01643 void const * const * source_data, 01644 uint32_t const * source_pitches 01645 ); 01646 01682 typedef uint32_t VdpColorTableFormat; 01683 01695 #define VDP_COLOR_TABLE_FORMAT_B8G8R8X8 (VdpColorTableFormat)0 01696 01710 typedef VdpStatus VdpOutputSurfaceQueryCapabilities( 01711 VdpDevice device, 01712 VdpRGBAFormat surface_rgba_format, 01713 /* output parameters follow */ 01714 VdpBool * is_supported, 01715 uint32_t * max_width, 01716 uint32_t * max_height 01717 ); 01718 01729 typedef VdpStatus VdpOutputSurfaceQueryGetPutBitsNativeCapabilities( 01730 VdpDevice device, 01731 VdpRGBAFormat surface_rgba_format, 01732 /* output parameters follow */ 01733 VdpBool * is_supported 01734 ); 01735 01750 typedef VdpStatus VdpOutputSurfaceQueryPutBitsIndexedCapabilities( 01751 VdpDevice device, 01752 VdpRGBAFormat surface_rgba_format, 01753 VdpIndexedFormat bits_indexed_format, 01754 VdpColorTableFormat color_table_format, 01755 /* output parameters follow */ 01756 VdpBool * is_supported 01757 ); 01758 01771 typedef VdpStatus VdpOutputSurfaceQueryPutBitsYCbCrCapabilities( 01772 VdpDevice device, 01773 VdpRGBAFormat surface_rgba_format, 01774 VdpYCbCrFormat bits_ycbcr_format, 01775 /* output parameters follow */ 01776 VdpBool * is_supported 01777 ); 01778 01783 typedef uint32_t VdpOutputSurface; 01784 01797 typedef VdpStatus VdpOutputSurfaceCreate( 01798 VdpDevice device, 01799 VdpRGBAFormat rgba_format, 01800 uint32_t width, 01801 uint32_t height, 01802 /* output parameters follow */ 01803 VdpOutputSurface * surface 01804 ); 01805 01811 typedef VdpStatus VdpOutputSurfaceDestroy( 01812 VdpOutputSurface surface 01813 ); 01814 01824 typedef VdpStatus VdpOutputSurfaceGetParameters( 01825 VdpOutputSurface surface, 01826 /* output parameters follow */ 01827 VdpRGBAFormat * rgba_format, 01828 uint32_t * width, 01829 uint32_t * height 01830 ); 01831 01851 typedef VdpStatus VdpOutputSurfaceGetBitsNative( 01852 VdpOutputSurface surface, 01853 VdpRect const * source_rect, 01854 void * const * destination_data, 01855 uint32_t const * destination_pitches 01856 ); 01857 01877 typedef VdpStatus VdpOutputSurfacePutBitsNative( 01878 VdpOutputSurface surface, 01879 void const * const * source_data, 01880 uint32_t const * source_pitches, 01881 VdpRect const * destination_rect 01882 ); 01883 01909 typedef VdpStatus VdpOutputSurfacePutBitsIndexed( 01910 VdpOutputSurface surface, 01911 VdpIndexedFormat source_indexed_format, 01912 void const * const * source_data, 01913 uint32_t const * source_pitch, 01914 VdpRect const * destination_rect, 01915 VdpColorTableFormat color_table_format, 01916 void const * color_table 01917 ); 01918 01944 typedef VdpStatus VdpOutputSurfacePutBitsYCbCr( 01945 VdpOutputSurface surface, 01946 VdpYCbCrFormat source_ycbcr_format, 01947 void const * const * source_data, 01948 uint32_t const * source_pitches, 01949 VdpRect const * destination_rect, 01950 VdpCSCMatrix const * csc_matrix 01951 ); 01952 02004 typedef VdpStatus VdpBitmapSurfaceQueryCapabilities( 02005 VdpDevice device, 02006 VdpRGBAFormat surface_rgba_format, 02007 /* output parameters follow */ 02008 VdpBool * is_supported, 02009 uint32_t * max_width, 02010 uint32_t * max_height 02011 ); 02012 02017 typedef uint32_t VdpBitmapSurface; 02018 02036 typedef VdpStatus VdpBitmapSurfaceCreate( 02037 VdpDevice device, 02038 VdpRGBAFormat rgba_format, 02039 uint32_t width, 02040 uint32_t height, 02041 VdpBool frequently_accessed, 02042 /* output parameters follow */ 02043 VdpBitmapSurface * surface 02044 ); 02045 02051 typedef VdpStatus VdpBitmapSurfaceDestroy( 02052 VdpBitmapSurface surface 02053 ); 02054 02066 typedef VdpStatus VdpBitmapSurfaceGetParameters( 02067 VdpBitmapSurface surface, 02068 /* output parameters follow */ 02069 VdpRGBAFormat * rgba_format, 02070 uint32_t * width, 02071 uint32_t * height, 02072 VdpBool * frequently_accessed 02073 ); 02074 02094 typedef VdpStatus VdpBitmapSurfacePutBitsNative( 02095 VdpBitmapSurface surface, 02096 void const * const * source_data, 02097 uint32_t const * source_pitches, 02098 VdpRect const * destination_rect 02099 ); 02100 02118 typedef enum { 02119 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ZERO = 0, 02120 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE = 1, 02121 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_SRC_COLOR = 2, 02122 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3, 02123 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_SRC_ALPHA = 4, 02124 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 5, 02125 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_DST_ALPHA = 6, 02126 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 7, 02127 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_DST_COLOR = 8, 02128 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 9, 02129 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_SRC_ALPHA_SATURATE = 10, 02130 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_CONSTANT_COLOR = 11, 02131 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 12, 02132 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_CONSTANT_ALPHA = 13, 02133 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 14, 02134 } VdpOutputSurfaceRenderBlendFactor; 02135 02140 typedef enum { 02141 VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_SUBTRACT = 0, 02142 VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_REVERSE_SUBTRACT = 1, 02143 VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_ADD = 2, 02144 VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_MIN = 3, 02145 VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_MAX = 4, 02146 } VdpOutputSurfaceRenderBlendEquation; 02147 02148 #define VDP_OUTPUT_SURFACE_RENDER_BLEND_STATE_VERSION 0 02149 02169 typedef struct { 02173 uint32_t struct_version; 02174 VdpOutputSurfaceRenderBlendFactor blend_factor_source_color; 02175 VdpOutputSurfaceRenderBlendFactor blend_factor_destination_color; 02176 VdpOutputSurfaceRenderBlendFactor blend_factor_source_alpha; 02177 VdpOutputSurfaceRenderBlendFactor blend_factor_destination_alpha; 02178 VdpOutputSurfaceRenderBlendEquation blend_equation_color; 02179 VdpOutputSurfaceRenderBlendEquation blend_equation_alpha; 02180 VdpColor blend_constant; 02181 } VdpOutputSurfaceRenderBlendState; 02182 02187 #define VDP_OUTPUT_SURFACE_RENDER_ROTATE_0 0 02188 02194 #define VDP_OUTPUT_SURFACE_RENDER_ROTATE_90 1 02195 02201 #define VDP_OUTPUT_SURFACE_RENDER_ROTATE_180 2 02202 02208 #define VDP_OUTPUT_SURFACE_RENDER_ROTATE_270 3 02209 02217 #define VDP_OUTPUT_SURFACE_RENDER_COLOR_PER_VERTEX (1 << 2) 02218 02289 typedef VdpStatus VdpOutputSurfaceRenderOutputSurface( 02290 VdpOutputSurface destination_surface, 02291 VdpRect const * destination_rect, 02292 VdpOutputSurface source_surface, 02293 VdpRect const * source_rect, 02294 VdpColor const * colors, 02295 VdpOutputSurfaceRenderBlendState const * blend_state, 02296 uint32_t flags 02297 ); 02298 02369 typedef VdpStatus VdpOutputSurfaceRenderBitmapSurface( 02370 VdpOutputSurface destination_surface, 02371 VdpRect const * destination_rect, 02372 VdpBitmapSurface source_surface, 02373 VdpRect const * source_rect, 02374 VdpColor const * colors, 02375 VdpOutputSurfaceRenderBlendState const * blend_state, 02376 uint32_t flags 02377 ); 02378 02399 typedef uint32_t VdpDecoderProfile; 02400 02402 #define VDP_DECODER_PROFILE_MPEG1 (VdpDecoderProfile)0 02403 02404 #define VDP_DECODER_PROFILE_MPEG2_SIMPLE (VdpDecoderProfile)1 02405 02406 #define VDP_DECODER_PROFILE_MPEG2_MAIN (VdpDecoderProfile)2 02407 02409 #define VDP_DECODER_PROFILE_H264_BASELINE (VdpDecoderProfile)6 02410 02411 #define VDP_DECODER_PROFILE_H264_MAIN (VdpDecoderProfile)7 02412 02413 #define VDP_DECODER_PROFILE_H264_HIGH (VdpDecoderProfile)8 02414 02415 #define VDP_DECODER_PROFILE_VC1_SIMPLE (VdpDecoderProfile)9 02416 02417 #define VDP_DECODER_PROFILE_VC1_MAIN (VdpDecoderProfile)10 02418 02419 #define VDP_DECODER_PROFILE_VC1_ADVANCED (VdpDecoderProfile)11 02420 02421 #define VDP_DECODER_PROFILE_MPEG4_PART2_SP (VdpDecoderProfile)12 02422 02423 #define VDP_DECODER_PROFILE_MPEG4_PART2_ASP (VdpDecoderProfile)13 02424 02425 #define VDP_DECODER_PROFILE_DIVX4_QMOBILE (VdpDecoderProfile)14 02426 02427 #define VDP_DECODER_PROFILE_DIVX4_MOBILE (VdpDecoderProfile)15 02428 02429 #define VDP_DECODER_PROFILE_DIVX4_HOME_THEATER (VdpDecoderProfile)16 02430 02431 #define VDP_DECODER_PROFILE_DIVX4_HD_1080P (VdpDecoderProfile)17 02432 02433 #define VDP_DECODER_PROFILE_DIVX5_QMOBILE (VdpDecoderProfile)18 02434 02435 #define VDP_DECODER_PROFILE_DIVX5_MOBILE (VdpDecoderProfile)19 02436 02437 #define VDP_DECODER_PROFILE_DIVX5_HOME_THEATER (VdpDecoderProfile)20 02438 02439 #define VDP_DECODER_PROFILE_DIVX5_HD_1080P (VdpDecoderProfile)21 02440 02442 #define VDP_DECODER_LEVEL_MPEG1_NA 0 02443 02445 #define VDP_DECODER_LEVEL_MPEG2_LL 0 02446 02447 #define VDP_DECODER_LEVEL_MPEG2_ML 1 02448 02449 #define VDP_DECODER_LEVEL_MPEG2_HL14 2 02450 02451 #define VDP_DECODER_LEVEL_MPEG2_HL 3 02452 02454 #define VDP_DECODER_LEVEL_H264_1 10 02455 02456 #define VDP_DECODER_LEVEL_H264_1b 9 02457 02458 #define VDP_DECODER_LEVEL_H264_1_1 11 02459 02460 #define VDP_DECODER_LEVEL_H264_1_2 12 02461 02462 #define VDP_DECODER_LEVEL_H264_1_3 13 02463 02464 #define VDP_DECODER_LEVEL_H264_2 20 02465 02466 #define VDP_DECODER_LEVEL_H264_2_1 21 02467 02468 #define VDP_DECODER_LEVEL_H264_2_2 22 02469 02470 #define VDP_DECODER_LEVEL_H264_3 30 02471 02472 #define VDP_DECODER_LEVEL_H264_3_1 31 02473 02474 #define VDP_DECODER_LEVEL_H264_3_2 32 02475 02476 #define VDP_DECODER_LEVEL_H264_4 40 02477 02478 #define VDP_DECODER_LEVEL_H264_4_1 41 02479 02480 #define VDP_DECODER_LEVEL_H264_4_2 42 02481 02482 #define VDP_DECODER_LEVEL_H264_5 50 02483 02484 #define VDP_DECODER_LEVEL_H264_5_1 51 02485 02487 #define VDP_DECODER_LEVEL_VC1_SIMPLE_LOW 0 02488 02489 #define VDP_DECODER_LEVEL_VC1_SIMPLE_MEDIUM 1 02490 02492 #define VDP_DECODER_LEVEL_VC1_MAIN_LOW 0 02493 02494 #define VDP_DECODER_LEVEL_VC1_MAIN_MEDIUM 1 02495 02496 #define VDP_DECODER_LEVEL_VC1_MAIN_HIGH 2 02497 02499 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L0 0 02500 02501 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L1 1 02502 02503 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L2 2 02504 02505 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L3 3 02506 02507 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L4 4 02508 02510 #define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L0 0 02511 02512 #define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L1 1 02513 02514 #define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L2 2 02515 02516 #define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L3 3 02517 02519 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L0 0 02520 02521 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L1 1 02522 02523 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L2 2 02524 02525 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L3 3 02526 02527 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L4 4 02528 02529 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L5 5 02530 02532 #define VDP_DECODER_LEVEL_DIVX_NA 0 02533 02552 typedef VdpStatus VdpDecoderQueryCapabilities( 02553 VdpDevice device, 02554 VdpDecoderProfile profile, 02555 /* output parameters follow */ 02556 VdpBool * is_supported, 02557 uint32_t * max_level, 02558 uint32_t * max_macroblocks, 02559 uint32_t * max_width, 02560 uint32_t * max_height 02561 ); 02562 02566 typedef uint32_t VdpDecoder; 02567 02584 typedef VdpStatus VdpDecoderCreate( 02585 VdpDevice device, 02586 VdpDecoderProfile profile, 02587 uint32_t width, 02588 uint32_t height, 02589 uint32_t max_references, 02590 /* output parameters follow */ 02591 VdpDecoder * decoder 02592 ); 02593 02599 typedef VdpStatus VdpDecoderDestroy( 02600 VdpDecoder decoder 02601 ); 02602 02615 typedef VdpStatus VdpDecoderGetParameters( 02616 VdpDecoder decoder, 02617 /* output parameters follow */ 02618 VdpDecoderProfile * profile, 02619 uint32_t * width, 02620 uint32_t * height 02621 ); 02622 02623 #define VDP_BITSTREAM_BUFFER_VERSION 0 02624 02629 typedef struct { 02633 uint32_t struct_version; 02635 void const * bitstream; 02637 uint32_t bitstream_bytes; 02638 } VdpBitstreamBuffer; 02639 02650 typedef void * VdpPictureInfo; 02651 02660 typedef struct { 02665 VdpVideoSurface forward_reference; 02670 VdpVideoSurface backward_reference; 02672 uint32_t slice_count; 02673 02675 uint8_t picture_structure; 02677 uint8_t picture_coding_type; 02679 uint8_t intra_dc_precision; 02681 uint8_t frame_pred_frame_dct; 02683 uint8_t concealment_motion_vectors; 02685 uint8_t intra_vlc_format; 02687 uint8_t alternate_scan; 02689 uint8_t q_scale_type; 02691 uint8_t top_field_first; 02693 uint8_t full_pel_forward_vector; 02695 uint8_t full_pel_backward_vector; 02700 uint8_t f_code[2][2]; 02702 uint8_t intra_quantizer_matrix[64]; 02704 uint8_t non_intra_quantizer_matrix[64]; 02705 } VdpPictureInfoMPEG1Or2; 02706 02714 typedef struct { 02719 VdpVideoSurface surface; 02721 VdpBool is_long_term; 02726 VdpBool top_is_reference; 02731 VdpBool bottom_is_reference; 02733 int32_t field_order_cnt[2]; 02739 uint16_t frame_idx; 02740 } VdpReferenceFrameH264; 02741 02760 typedef struct { 02762 uint32_t slice_count; 02764 int32_t field_order_cnt[2]; 02766 VdpBool is_reference; 02767 02769 uint16_t frame_num; 02771 uint8_t field_pic_flag; 02773 uint8_t bottom_field_flag; 02775 uint8_t num_ref_frames; 02777 uint8_t mb_adaptive_frame_field_flag; 02779 uint8_t constrained_intra_pred_flag; 02781 uint8_t weighted_pred_flag; 02783 uint8_t weighted_bipred_idc; 02785 uint8_t frame_mbs_only_flag; 02787 uint8_t transform_8x8_mode_flag; 02789 int8_t chroma_qp_index_offset; 02791 int8_t second_chroma_qp_index_offset; 02793 int8_t pic_init_qp_minus26; 02795 uint8_t num_ref_idx_l0_active_minus1; 02797 uint8_t num_ref_idx_l1_active_minus1; 02799 uint8_t log2_max_frame_num_minus4; 02801 uint8_t pic_order_cnt_type; 02803 uint8_t log2_max_pic_order_cnt_lsb_minus4; 02805 uint8_t delta_pic_order_always_zero_flag; 02807 uint8_t direct_8x8_inference_flag; 02809 uint8_t entropy_coding_mode_flag; 02811 uint8_t pic_order_present_flag; 02813 uint8_t deblocking_filter_control_present_flag; 02815 uint8_t redundant_pic_cnt_present_flag; 02816 02818 uint8_t scaling_lists_4x4[6][16]; 02820 uint8_t scaling_lists_8x8[2][64]; 02821 02823 VdpReferenceFrameH264 referenceFrames[16]; 02824 } VdpPictureInfoH264; 02825 02833 typedef struct { 02838 VdpVideoSurface forward_reference; 02843 VdpVideoSurface backward_reference; 02844 02846 uint32_t slice_count; 02848 uint8_t picture_type; 02850 uint8_t frame_coding_mode; 02851 02853 uint8_t postprocflag; 02855 uint8_t pulldown; 02857 uint8_t interlace; 02859 uint8_t tfcntrflag; 02861 uint8_t finterpflag; 02863 uint8_t psf; 02865 uint8_t dquant; 02867 uint8_t panscan_flag; 02869 uint8_t refdist_flag; 02871 uint8_t quantizer; 02873 uint8_t extended_mv; 02875 uint8_t extended_dmv; 02877 uint8_t overlap; 02879 uint8_t vstransform; 02881 uint8_t loopfilter; 02883 uint8_t fastuvmc; 02885 uint8_t range_mapy_flag; 02887 uint8_t range_mapy; 02889 uint8_t range_mapuv_flag; 02891 uint8_t range_mapuv; 02892 02897 uint8_t multires; 02902 uint8_t syncmarker; 02909 uint8_t rangered; 02914 uint8_t maxbframes; 02915 02921 uint8_t deblockEnable; 02927 uint8_t pquant; 02928 } VdpPictureInfoVC1; 02929 02937 typedef struct { 02942 VdpVideoSurface forward_reference; 02947 VdpVideoSurface backward_reference; 02948 02950 int32_t trd[2]; 02952 int32_t trb[2]; 02954 uint16_t vop_time_increment_resolution; 02956 uint8_t vop_coding_type; 02958 uint8_t vop_fcode_forward; 02960 uint8_t vop_fcode_backward; 02962 uint8_t resync_marker_disable; 02964 uint8_t interlaced; 02966 uint8_t quant_type; 02968 uint8_t quarter_sample; 02970 uint8_t short_video_header; 02972 uint8_t rounding_control; 02974 uint8_t alternate_vertical_scan_flag; 02976 uint8_t top_field_first; 02978 uint8_t intra_quantizer_matrix[64]; 02980 uint8_t non_intra_quantizer_matrix[64]; 02981 } VdpPictureInfoMPEG4Part2; 02982 02989 typedef VdpPictureInfoMPEG4Part2 VdpPictureInfoDivX4; 02990 02997 typedef VdpPictureInfoMPEG4Part2 VdpPictureInfoDivX5; 02998 03017 typedef VdpStatus VdpDecoderRender( 03018 VdpDecoder decoder, 03019 VdpVideoSurface target, 03020 VdpPictureInfo const * picture_info, 03021 uint32_t bitstream_buffer_count, 03022 VdpBitstreamBuffer const * bitstream_buffers 03023 ); 03024 03104 typedef uint32_t VdpVideoMixerFeature; 03105 03117 #define VDP_VIDEO_MIXER_FEATURE_DEINTERLACE_TEMPORAL (VdpVideoMixerFeature)0 03118 03130 #define VDP_VIDEO_MIXER_FEATURE_DEINTERLACE_TEMPORAL_SPATIAL (VdpVideoMixerFeature)1 03131 03139 #define VDP_VIDEO_MIXER_FEATURE_INVERSE_TELECINE (VdpVideoMixerFeature)2 03140 03147 #define VDP_VIDEO_MIXER_FEATURE_NOISE_REDUCTION (VdpVideoMixerFeature)3 03148 03155 #define VDP_VIDEO_MIXER_FEATURE_SHARPNESS (VdpVideoMixerFeature)4 03156 03168 #define VDP_VIDEO_MIXER_FEATURE_LUMA_KEY (VdpVideoMixerFeature)5 03169 03190 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1 (VdpVideoMixerFeature)11 03191 03197 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L2 (VdpVideoMixerFeature)12 03198 03204 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L3 (VdpVideoMixerFeature)13 03205 03211 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L4 (VdpVideoMixerFeature)14 03212 03218 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L5 (VdpVideoMixerFeature)15 03219 03225 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L6 (VdpVideoMixerFeature)16 03226 03232 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L7 (VdpVideoMixerFeature)17 03233 03239 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L8 (VdpVideoMixerFeature)18 03240 03246 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L9 (VdpVideoMixerFeature)19 03247 03260 typedef uint32_t VdpVideoMixerParameter; 03261 03274 #define VDP_VIDEO_MIXER_PARAMETER_VIDEO_SURFACE_WIDTH (VdpVideoMixerParameter)0 03275 03287 #define VDP_VIDEO_MIXER_PARAMETER_VIDEO_SURFACE_HEIGHT (VdpVideoMixerParameter)1 03288 03301 #define VDP_VIDEO_MIXER_PARAMETER_CHROMA_TYPE (VdpVideoMixerParameter)2 03302 03320 #define VDP_VIDEO_MIXER_PARAMETER_LAYERS (VdpVideoMixerParameter)3 03321 03334 typedef uint32_t VdpVideoMixerAttribute; 03335 03349 #define VDP_VIDEO_MIXER_ATTRIBUTE_BACKGROUND_COLOR (VdpVideoMixerAttribute)0 03350 03377 #define VDP_VIDEO_MIXER_ATTRIBUTE_CSC_MATRIX (VdpVideoMixerAttribute)1 03378 03390 #define VDP_VIDEO_MIXER_ATTRIBUTE_NOISE_REDUCTION_LEVEL (VdpVideoMixerAttribute)2 03391 03406 #define VDP_VIDEO_MIXER_ATTRIBUTE_SHARPNESS_LEVEL (VdpVideoMixerAttribute)3 03407 03418 #define VDP_VIDEO_MIXER_ATTRIBUTE_LUMA_KEY_MIN_LUMA (VdpVideoMixerAttribute)4 03419 03430 #define VDP_VIDEO_MIXER_ATTRIBUTE_LUMA_KEY_MAX_LUMA (VdpVideoMixerAttribute)5 03431 03445 #define VDP_VIDEO_MIXER_ATTRIBUTE_SKIP_CHROMA_DEINTERLACE (VdpVideoMixerAttribute)6 03446 03456 typedef VdpStatus VdpVideoMixerQueryFeatureSupport( 03457 VdpDevice device, 03458 VdpVideoMixerFeature feature, 03459 /* output parameters follow */ 03460 VdpBool * is_supported 03461 ); 03462 03473 typedef VdpStatus VdpVideoMixerQueryParameterSupport( 03474 VdpDevice device, 03475 VdpVideoMixerParameter parameter, 03476 /* output parameters follow */ 03477 VdpBool * is_supported 03478 ); 03479 03489 typedef VdpStatus VdpVideoMixerQueryAttributeSupport( 03490 VdpDevice device, 03491 VdpVideoMixerAttribute attribute, 03492 /* output parameters follow */ 03493 VdpBool * is_supported 03494 ); 03495 03506 typedef VdpStatus VdpVideoMixerQueryParameterValueRange( 03507 VdpDevice device, 03508 VdpVideoMixerParameter parameter, 03509 /* output parameters follow */ 03510 void * min_value, 03511 void * max_value 03512 ); 03513 03524 typedef VdpStatus VdpVideoMixerQueryAttributeValueRange( 03525 VdpDevice device, 03526 VdpVideoMixerAttribute attribute, 03527 /* output parameters follow */ 03528 void * min_value, 03529 void * max_value 03530 ); 03531 03535 typedef uint32_t VdpVideoMixer; 03536 03557 typedef VdpStatus VdpVideoMixerCreate( 03558 VdpDevice device, 03559 // The set of features to request 03560 uint32_t feature_count, 03561 VdpVideoMixerFeature const * features, 03562 // The parameters used during creation 03563 uint32_t parameter_count, 03564 VdpVideoMixerParameter const * parameters, 03565 void const * const * parameter_values, 03566 /* output parameters follow */ 03567 VdpVideoMixer * mixer 03568 ); 03569 03580 typedef VdpStatus VdpVideoMixerSetFeatureEnables( 03581 VdpVideoMixer mixer, 03582 uint32_t feature_count, 03583 VdpVideoMixerFeature const * features, 03584 VdpBool const * feature_enables 03585 ); 03586 03599 typedef VdpStatus VdpVideoMixerSetAttributeValues( 03600 VdpVideoMixer mixer, 03601 uint32_t attribute_count, 03602 VdpVideoMixerAttribute const * attributes, 03603 void const * const * attribute_values 03604 ); 03605 03617 typedef VdpStatus VdpVideoMixerGetFeatureSupport( 03618 VdpVideoMixer mixer, 03619 uint32_t feature_count, 03620 VdpVideoMixerFeature const * features, 03621 /* output parameters follow */ 03622 VdpBool * feature_supports 03623 ); 03624 03634 typedef VdpStatus VdpVideoMixerGetFeatureEnables( 03635 VdpVideoMixer mixer, 03636 uint32_t feature_count, 03637 VdpVideoMixerFeature const * features, 03638 /* output parameters follow */ 03639 VdpBool * feature_enables 03640 ); 03641 03654 typedef VdpStatus VdpVideoMixerGetParameterValues( 03655 VdpVideoMixer mixer, 03656 uint32_t parameter_count, 03657 VdpVideoMixerParameter const * parameters, 03658 /* output parameters follow */ 03659 void * const * parameter_values 03660 ); 03661 03674 typedef VdpStatus VdpVideoMixerGetAttributeValues( 03675 VdpVideoMixer mixer, 03676 uint32_t attribute_count, 03677 VdpVideoMixerAttribute const * attributes, 03678 /* output parameters follow */ 03679 void * const * attribute_values 03680 ); 03681 03687 typedef VdpStatus VdpVideoMixerDestroy( 03688 VdpVideoMixer mixer 03689 ); 03690 03696 typedef enum { 03700 VDP_VIDEO_MIXER_PICTURE_STRUCTURE_TOP_FIELD, 03705 VDP_VIDEO_MIXER_PICTURE_STRUCTURE_BOTTOM_FIELD, 03709 VDP_VIDEO_MIXER_PICTURE_STRUCTURE_FRAME, 03710 } VdpVideoMixerPictureStructure; 03711 03712 #define VDP_LAYER_VERSION 0 03713 03718 typedef struct { 03722 uint32_t struct_version; 03726 VdpOutputSurface source_surface; 03731 VdpRect const * source_rect; 03740 VdpRect const * destination_rect; 03741 } VdpLayer; 03742 03809 typedef VdpStatus VdpVideoMixerRender( 03810 VdpVideoMixer mixer, 03811 VdpOutputSurface background_surface, 03812 VdpRect const * background_source_rect, 03813 VdpVideoMixerPictureStructure current_picture_structure, 03814 uint32_t video_surface_past_count, 03815 VdpVideoSurface const * video_surface_past, 03816 VdpVideoSurface video_surface_current, 03817 uint32_t video_surface_future_count, 03818 VdpVideoSurface const * video_surface_future, 03819 VdpRect const * video_source_rect, 03820 VdpOutputSurface destination_surface, 03821 VdpRect const * destination_rect, 03822 VdpRect const * destination_video_rect, 03823 uint32_t layer_count, 03824 VdpLayer const * layers 03825 ); 03826 03878 typedef uint64_t VdpTime; 03879 03888 typedef uint32_t VdpPresentationQueueTarget; 03889 03895 typedef VdpStatus VdpPresentationQueueTargetDestroy( 03896 VdpPresentationQueueTarget presentation_queue_target 03897 ); 03898 03903 typedef uint32_t VdpPresentationQueue; 03904 03916 typedef VdpStatus VdpPresentationQueueCreate( 03917 VdpDevice device, 03918 VdpPresentationQueueTarget presentation_queue_target, 03919 /* output parameters follow */ 03920 VdpPresentationQueue * presentation_queue 03921 ); 03922 03928 typedef VdpStatus VdpPresentationQueueDestroy( 03929 VdpPresentationQueue presentation_queue 03930 ); 03931 03941 typedef VdpStatus VdpPresentationQueueSetBackgroundColor( 03942 VdpPresentationQueue presentation_queue, 03943 VdpColor * const background_color 03944 ); 03945 03951 typedef VdpStatus VdpPresentationQueueGetBackgroundColor( 03952 VdpPresentationQueue presentation_queue, 03953 VdpColor * background_color 03954 ); 03955 03963 typedef VdpStatus VdpPresentationQueueGetTime( 03964 VdpPresentationQueue presentation_queue, 03965 /* output parameters follow */ 03966 VdpTime * current_time 03967 ); 03968 04009 typedef VdpStatus VdpPresentationQueueDisplay( 04010 VdpPresentationQueue presentation_queue, 04011 VdpOutputSurface surface, 04012 uint32_t clip_width, 04013 uint32_t clip_height, 04014 VdpTime earliest_presentation_time 04015 ); 04016 04032 typedef VdpStatus VdpPresentationQueueBlockUntilSurfaceIdle( 04033 VdpPresentationQueue presentation_queue, 04034 VdpOutputSurface surface, 04035 /* output parameters follow */ 04036 VdpTime * first_presentation_time 04037 ); 04038 04043 typedef enum { 04045 VDP_PRESENTATION_QUEUE_STATUS_IDLE, 04047 VDP_PRESENTATION_QUEUE_STATUS_QUEUED, 04049 VDP_PRESENTATION_QUEUE_STATUS_VISIBLE, 04050 } VdpPresentationQueueStatus; 04051 04063 typedef VdpStatus VdpPresentationQueueQuerySurfaceStatus( 04064 VdpPresentationQueue presentation_queue, 04065 VdpOutputSurface surface, 04066 /* output parameters follow */ 04067 VdpPresentationQueueStatus * status, 04068 VdpTime * first_presentation_time 04069 ); 04070 04125 typedef void VdpPreemptionCallback( 04126 VdpDevice device, 04127 void * context 04128 ); 04129 04140 typedef VdpStatus VdpPreemptionCallbackRegister( 04141 VdpDevice device, 04142 VdpPreemptionCallback callback, 04143 void * context 04144 ); 04145 04163 typedef uint32_t VdpFuncId; 04164 04166 #define VDP_FUNC_ID_GET_ERROR_STRING (VdpFuncId)0 04167 04168 #define VDP_FUNC_ID_GET_PROC_ADDRESS (VdpFuncId)1 04169 04170 #define VDP_FUNC_ID_GET_API_VERSION (VdpFuncId)2 04171 04172 #define VDP_FUNC_ID_GET_INFORMATION_STRING (VdpFuncId)4 04173 04174 #define VDP_FUNC_ID_DEVICE_DESTROY (VdpFuncId)5 04175 04176 #define VDP_FUNC_ID_GENERATE_CSC_MATRIX (VdpFuncId)6 04177 04178 #define VDP_FUNC_ID_VIDEO_SURFACE_QUERY_CAPABILITIES (VdpFuncId)7 04179 04180 #define VDP_FUNC_ID_VIDEO_SURFACE_QUERY_GET_PUT_BITS_Y_CB_CR_CAPABILITIES (VdpFuncId)8 04181 04182 #define VDP_FUNC_ID_VIDEO_SURFACE_CREATE (VdpFuncId)9 04183 04184 #define VDP_FUNC_ID_VIDEO_SURFACE_DESTROY (VdpFuncId)10 04185 04186 #define VDP_FUNC_ID_VIDEO_SURFACE_GET_PARAMETERS (VdpFuncId)11 04187 04188 #define VDP_FUNC_ID_VIDEO_SURFACE_GET_BITS_Y_CB_CR (VdpFuncId)12 04189 04190 #define VDP_FUNC_ID_VIDEO_SURFACE_PUT_BITS_Y_CB_CR (VdpFuncId)13 04191 04192 #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_CAPABILITIES (VdpFuncId)14 04193 04194 #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_GET_PUT_BITS_NATIVE_CAPABILITIES (VdpFuncId)15 04195 04196 #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_PUT_BITS_INDEXED_CAPABILITIES (VdpFuncId)16 04197 04198 #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_PUT_BITS_Y_CB_CR_CAPABILITIES (VdpFuncId)17 04199 04200 #define VDP_FUNC_ID_OUTPUT_SURFACE_CREATE (VdpFuncId)18 04201 04202 #define VDP_FUNC_ID_OUTPUT_SURFACE_DESTROY (VdpFuncId)19 04203 04204 #define VDP_FUNC_ID_OUTPUT_SURFACE_GET_PARAMETERS (VdpFuncId)20 04205 04206 #define VDP_FUNC_ID_OUTPUT_SURFACE_GET_BITS_NATIVE (VdpFuncId)21 04207 04208 #define VDP_FUNC_ID_OUTPUT_SURFACE_PUT_BITS_NATIVE (VdpFuncId)22 04209 04210 #define VDP_FUNC_ID_OUTPUT_SURFACE_PUT_BITS_INDEXED (VdpFuncId)23 04211 04212 #define VDP_FUNC_ID_OUTPUT_SURFACE_PUT_BITS_Y_CB_CR (VdpFuncId)24 04213 04214 #define VDP_FUNC_ID_BITMAP_SURFACE_QUERY_CAPABILITIES (VdpFuncId)25 04215 04216 #define VDP_FUNC_ID_BITMAP_SURFACE_CREATE (VdpFuncId)26 04217 04218 #define VDP_FUNC_ID_BITMAP_SURFACE_DESTROY (VdpFuncId)27 04219 04220 #define VDP_FUNC_ID_BITMAP_SURFACE_GET_PARAMETERS (VdpFuncId)28 04221 04222 #define VDP_FUNC_ID_BITMAP_SURFACE_PUT_BITS_NATIVE (VdpFuncId)29 04223 04224 #define VDP_FUNC_ID_OUTPUT_SURFACE_RENDER_OUTPUT_SURFACE (VdpFuncId)33 04225 04226 #define VDP_FUNC_ID_OUTPUT_SURFACE_RENDER_BITMAP_SURFACE (VdpFuncId)34 04227 04228 #define VDP_FUNC_ID_OUTPUT_SURFACE_RENDER_VIDEO_SURFACE_LUMA (VdpFuncId)35 04229 04230 #define VDP_FUNC_ID_DECODER_QUERY_CAPABILITIES (VdpFuncId)36 04231 04232 #define VDP_FUNC_ID_DECODER_CREATE (VdpFuncId)37 04233 04234 #define VDP_FUNC_ID_DECODER_DESTROY (VdpFuncId)38 04235 04236 #define VDP_FUNC_ID_DECODER_GET_PARAMETERS (VdpFuncId)39 04237 04238 #define VDP_FUNC_ID_DECODER_RENDER (VdpFuncId)40 04239 04240 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_FEATURE_SUPPORT (VdpFuncId)41 04241 04242 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_PARAMETER_SUPPORT (VdpFuncId)42 04243 04244 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_ATTRIBUTE_SUPPORT (VdpFuncId)43 04245 04246 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_PARAMETER_VALUE_RANGE (VdpFuncId)44 04247 04248 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_ATTRIBUTE_VALUE_RANGE (VdpFuncId)45 04249 04250 #define VDP_FUNC_ID_VIDEO_MIXER_CREATE (VdpFuncId)46 04251 04252 #define VDP_FUNC_ID_VIDEO_MIXER_SET_FEATURE_ENABLES (VdpFuncId)47 04253 04254 #define VDP_FUNC_ID_VIDEO_MIXER_SET_ATTRIBUTE_VALUES (VdpFuncId)48 04255 04256 #define VDP_FUNC_ID_VIDEO_MIXER_GET_FEATURE_SUPPORT (VdpFuncId)49 04257 04258 #define VDP_FUNC_ID_VIDEO_MIXER_GET_FEATURE_ENABLES (VdpFuncId)50 04259 04260 #define VDP_FUNC_ID_VIDEO_MIXER_GET_PARAMETER_VALUES (VdpFuncId)51 04261 04262 #define VDP_FUNC_ID_VIDEO_MIXER_GET_ATTRIBUTE_VALUES (VdpFuncId)52 04263 04264 #define VDP_FUNC_ID_VIDEO_MIXER_DESTROY (VdpFuncId)53 04265 04266 #define VDP_FUNC_ID_VIDEO_MIXER_RENDER (VdpFuncId)54 04267 04268 #define VDP_FUNC_ID_PRESENTATION_QUEUE_TARGET_DESTROY (VdpFuncId)55 04269 04270 #define VDP_FUNC_ID_PRESENTATION_QUEUE_CREATE (VdpFuncId)56 04271 04272 #define VDP_FUNC_ID_PRESENTATION_QUEUE_DESTROY (VdpFuncId)57 04273 04274 #define VDP_FUNC_ID_PRESENTATION_QUEUE_SET_BACKGROUND_COLOR (VdpFuncId)58 04275 04276 #define VDP_FUNC_ID_PRESENTATION_QUEUE_GET_BACKGROUND_COLOR (VdpFuncId)59 04277 04278 #define VDP_FUNC_ID_PRESENTATION_QUEUE_GET_TIME (VdpFuncId)62 04279 04280 #define VDP_FUNC_ID_PRESENTATION_QUEUE_DISPLAY (VdpFuncId)63 04281 04282 #define VDP_FUNC_ID_PRESENTATION_QUEUE_BLOCK_UNTIL_SURFACE_IDLE (VdpFuncId)64 04283 04284 #define VDP_FUNC_ID_PRESENTATION_QUEUE_QUERY_SURFACE_STATUS (VdpFuncId)65 04285 04286 #define VDP_FUNC_ID_PREEMPTION_CALLBACK_REGISTER (VdpFuncId)66 04287 04288 #define VDP_FUNC_ID_BASE_WINSYS 0x1000 04289 04299 typedef VdpStatus VdpGetProcAddress( 04300 VdpDevice device, 04301 VdpFuncId function_id, 04302 /* output parameters follow */ 04303 void * * function_pointer 04304 ); 04305 04308 04316 #ifdef __cplusplus 04317 } 04318 #endif 04319 04320 #endif 04321