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-2009 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 00739 #ifndef _VDPAU_H 00740 #define _VDPAU_H 00741 00742 #include <stdint.h> 00743 00744 #ifdef __cplusplus 00745 extern "C" { 00746 #endif 00747 00766 #define VDP_TRUE 1 00767 00768 #define VDP_FALSE 0 00769 00773 typedef int VdpBool; 00774 00793 #define VDP_INVALID_HANDLE 0xffffffffU 00794 00799 typedef uint32_t VdpChromaType; 00800 00802 #define VDP_CHROMA_TYPE_420 (VdpChromaType)0 00803 00804 #define VDP_CHROMA_TYPE_422 (VdpChromaType)1 00805 00806 #define VDP_CHROMA_TYPE_444 (VdpChromaType)2 00807 00811 typedef uint32_t VdpYCbCrFormat; 00812 00826 #define VDP_YCBCR_FORMAT_NV12 (VdpYCbCrFormat)0 00827 00838 #define VDP_YCBCR_FORMAT_YV12 (VdpYCbCrFormat)1 00839 00852 #define VDP_YCBCR_FORMAT_UYVY (VdpYCbCrFormat)2 00853 00866 #define VDP_YCBCR_FORMAT_YUYV (VdpYCbCrFormat)3 00867 00879 #define VDP_YCBCR_FORMAT_Y8U8V8A8 (VdpYCbCrFormat)4 00880 00892 #define VDP_YCBCR_FORMAT_V8U8Y8A8 (VdpYCbCrFormat)5 00893 00897 typedef uint32_t VdpRGBAFormat; 00898 00911 #define VDP_RGBA_FORMAT_B8G8R8A8 (VdpRGBAFormat)0 00912 00924 #define VDP_RGBA_FORMAT_R8G8B8A8 (VdpRGBAFormat)1 00925 00937 #define VDP_RGBA_FORMAT_R10G10B10A2 (VdpRGBAFormat)2 00938 00950 #define VDP_RGBA_FORMAT_B10G10R10A2 (VdpRGBAFormat)3 00951 00961 #define VDP_RGBA_FORMAT_A8 (VdpRGBAFormat)4 00962 00966 typedef uint32_t VdpIndexedFormat; 00967 00979 #define VDP_INDEXED_FORMAT_A4I4 (VdpIndexedFormat)0 00980 00991 #define VDP_INDEXED_FORMAT_I4A4 (VdpIndexedFormat)1 00992 01003 #define VDP_INDEXED_FORMAT_A8I8 (VdpIndexedFormat)2 01004 01015 #define VDP_INDEXED_FORMAT_I8A8 (VdpIndexedFormat)3 01016 01024 typedef struct { 01026 uint32_t x; 01028 uint32_t y; 01029 } VdpPoint; 01030 01041 typedef struct { 01043 uint32_t x0; 01045 uint32_t y0; 01047 uint32_t x1; 01049 uint32_t y1; 01050 } VdpRect; 01051 01060 typedef struct { 01061 float red; 01062 float green; 01063 float blue; 01064 float alpha; 01065 } VdpColor; 01066 01079 typedef enum { 01081 VDP_STATUS_OK = 0, 01085 VDP_STATUS_NO_IMPLEMENTATION, 01091 VDP_STATUS_DISPLAY_PREEMPTED, 01098 VDP_STATUS_INVALID_HANDLE, 01105 VDP_STATUS_INVALID_POINTER, 01109 VDP_STATUS_INVALID_CHROMA_TYPE, 01113 VDP_STATUS_INVALID_Y_CB_CR_FORMAT, 01117 VDP_STATUS_INVALID_RGBA_FORMAT, 01121 VDP_STATUS_INVALID_INDEXED_FORMAT, 01125 VDP_STATUS_INVALID_COLOR_STANDARD, 01129 VDP_STATUS_INVALID_COLOR_TABLE_FORMAT, 01134 VDP_STATUS_INVALID_BLEND_FACTOR, 01139 VDP_STATUS_INVALID_BLEND_EQUATION, 01143 VDP_STATUS_INVALID_FLAG, 01147 VDP_STATUS_INVALID_DECODER_PROFILE, 01151 VDP_STATUS_INVALID_VIDEO_MIXER_FEATURE, 01155 VDP_STATUS_INVALID_VIDEO_MIXER_PARAMETER, 01159 VDP_STATUS_INVALID_VIDEO_MIXER_ATTRIBUTE, 01164 VDP_STATUS_INVALID_VIDEO_MIXER_PICTURE_STRUCTURE, 01168 VDP_STATUS_INVALID_FUNC_ID, 01178 VDP_STATUS_INVALID_SIZE, 01185 VDP_STATUS_INVALID_VALUE, 01191 VDP_STATUS_INVALID_STRUCT_VERSION, 01196 VDP_STATUS_RESOURCES, 01206 VDP_STATUS_HANDLE_DEVICE_MISMATCH, 01210 VDP_STATUS_ERROR, 01211 } VdpStatus; 01212 01222 typedef char const * VdpGetErrorString( 01223 VdpStatus status 01224 ); 01225 01250 #define VDPAU_INTERFACE_VERSION 1 01251 01263 #define VDPAU_VERSION 1 01264 01270 typedef VdpStatus VdpGetApiVersion( 01271 /* output parameters follow */ 01272 uint32_t * api_version 01273 ); 01274 01292 typedef VdpStatus VdpGetInformationString( 01293 /* output parameters follow */ 01294 char const * * information_string 01295 ); 01296 01316 typedef uint32_t VdpDevice; 01317 01323 typedef VdpStatus VdpDeviceDestroy( 01324 VdpDevice device 01325 ); 01326 01365 typedef float VdpCSCMatrix[3][4]; 01366 01367 #define VDP_PROCAMP_VERSION 0 01368 01377 typedef struct { 01381 uint32_t struct_version; 01386 float brightness; 01391 float contrast; 01396 float saturation; 01401 float hue; 01402 } VdpProcamp; 01403 01410 typedef uint32_t VdpColorStandard; 01411 01413 #define VDP_COLOR_STANDARD_ITUR_BT_601 (VdpColorStandard)0 01414 01415 #define VDP_COLOR_STANDARD_ITUR_BT_709 (VdpColorStandard)1 01416 01417 #define VDP_COLOR_STANDARD_SMPTE_240M (VdpColorStandard)2 01418 01427 typedef VdpStatus VdpGenerateCSCMatrix( 01428 VdpProcamp * procamp, 01429 VdpColorStandard standard, 01430 /* output parameters follow */ 01431 VdpCSCMatrix * csc_matrix 01432 ); 01433 01478 typedef VdpStatus VdpVideoSurfaceQueryCapabilities( 01479 VdpDevice device, 01480 VdpChromaType surface_chroma_type, 01481 /* output parameters follow */ 01482 VdpBool * is_supported, 01483 uint32_t * max_width, 01484 uint32_t * max_height 01485 ); 01486 01498 typedef VdpStatus VdpVideoSurfaceQueryGetPutBitsYCbCrCapabilities( 01499 VdpDevice device, 01500 VdpChromaType surface_chroma_type, 01501 VdpYCbCrFormat bits_ycbcr_format, 01502 /* output parameters follow */ 01503 VdpBool * is_supported 01504 ); 01505 01510 typedef uint32_t VdpVideoSurface; 01511 01557 typedef VdpStatus VdpVideoSurfaceCreate( 01558 VdpDevice device, 01559 VdpChromaType chroma_type, 01560 uint32_t width, 01561 uint32_t height, 01562 /* output parameters follow */ 01563 VdpVideoSurface * surface 01564 ); 01565 01571 typedef VdpStatus VdpVideoSurfaceDestroy( 01572 VdpVideoSurface surface 01573 ); 01574 01584 typedef VdpStatus VdpVideoSurfaceGetParameters( 01585 VdpVideoSurface surface, 01586 /* output parameters follow */ 01587 VdpChromaType * chroma_type, 01588 uint32_t * width, 01589 uint32_t * height 01590 ); 01591 01610 typedef VdpStatus VdpVideoSurfaceGetBitsYCbCr( 01611 VdpVideoSurface surface, 01612 VdpYCbCrFormat destination_ycbcr_format, 01613 void * const * destination_data, 01614 uint32_t const * destination_pitches 01615 ); 01616 01635 typedef VdpStatus VdpVideoSurfacePutBitsYCbCr( 01636 VdpVideoSurface surface, 01637 VdpYCbCrFormat source_ycbcr_format, 01638 void const * const * source_data, 01639 uint32_t const * source_pitches 01640 ); 01641 01677 typedef uint32_t VdpColorTableFormat; 01678 01690 #define VDP_COLOR_TABLE_FORMAT_B8G8R8X8 (VdpColorTableFormat)0 01691 01705 typedef VdpStatus VdpOutputSurfaceQueryCapabilities( 01706 VdpDevice device, 01707 VdpRGBAFormat surface_rgba_format, 01708 /* output parameters follow */ 01709 VdpBool * is_supported, 01710 uint32_t * max_width, 01711 uint32_t * max_height 01712 ); 01713 01724 typedef VdpStatus VdpOutputSurfaceQueryGetPutBitsNativeCapabilities( 01725 VdpDevice device, 01726 VdpRGBAFormat surface_rgba_format, 01727 /* output parameters follow */ 01728 VdpBool * is_supported 01729 ); 01730 01745 typedef VdpStatus VdpOutputSurfaceQueryPutBitsIndexedCapabilities( 01746 VdpDevice device, 01747 VdpRGBAFormat surface_rgba_format, 01748 VdpIndexedFormat bits_indexed_format, 01749 VdpColorTableFormat color_table_format, 01750 /* output parameters follow */ 01751 VdpBool * is_supported 01752 ); 01753 01766 typedef VdpStatus VdpOutputSurfaceQueryPutBitsYCbCrCapabilities( 01767 VdpDevice device, 01768 VdpRGBAFormat surface_rgba_format, 01769 VdpYCbCrFormat bits_ycbcr_format, 01770 /* output parameters follow */ 01771 VdpBool * is_supported 01772 ); 01773 01778 typedef uint32_t VdpOutputSurface; 01779 01792 typedef VdpStatus VdpOutputSurfaceCreate( 01793 VdpDevice device, 01794 VdpRGBAFormat rgba_format, 01795 uint32_t width, 01796 uint32_t height, 01797 /* output parameters follow */ 01798 VdpOutputSurface * surface 01799 ); 01800 01806 typedef VdpStatus VdpOutputSurfaceDestroy( 01807 VdpOutputSurface surface 01808 ); 01809 01819 typedef VdpStatus VdpOutputSurfaceGetParameters( 01820 VdpOutputSurface surface, 01821 /* output parameters follow */ 01822 VdpRGBAFormat * rgba_format, 01823 uint32_t * width, 01824 uint32_t * height 01825 ); 01826 01846 typedef VdpStatus VdpOutputSurfaceGetBitsNative( 01847 VdpOutputSurface surface, 01848 VdpRect const * source_rect, 01849 void * const * destination_data, 01850 uint32_t const * destination_pitches 01851 ); 01852 01872 typedef VdpStatus VdpOutputSurfacePutBitsNative( 01873 VdpOutputSurface surface, 01874 void const * const * source_data, 01875 uint32_t const * source_pitches, 01876 VdpRect const * destination_rect 01877 ); 01878 01904 typedef VdpStatus VdpOutputSurfacePutBitsIndexed( 01905 VdpOutputSurface surface, 01906 VdpIndexedFormat source_indexed_format, 01907 void const * const * source_data, 01908 uint32_t const * source_pitch, 01909 VdpRect const * destination_rect, 01910 VdpColorTableFormat color_table_format, 01911 void const * color_table 01912 ); 01913 01939 typedef VdpStatus VdpOutputSurfacePutBitsYCbCr( 01940 VdpOutputSurface surface, 01941 VdpYCbCrFormat source_ycbcr_format, 01942 void const * const * source_data, 01943 uint32_t const * source_pitches, 01944 VdpRect const * destination_rect, 01945 VdpCSCMatrix const * csc_matrix 01946 ); 01947 01999 typedef VdpStatus VdpBitmapSurfaceQueryCapabilities( 02000 VdpDevice device, 02001 VdpRGBAFormat surface_rgba_format, 02002 /* output parameters follow */ 02003 VdpBool * is_supported, 02004 uint32_t * max_width, 02005 uint32_t * max_height 02006 ); 02007 02012 typedef uint32_t VdpBitmapSurface; 02013 02031 typedef VdpStatus VdpBitmapSurfaceCreate( 02032 VdpDevice device, 02033 VdpRGBAFormat rgba_format, 02034 uint32_t width, 02035 uint32_t height, 02036 VdpBool frequently_accessed, 02037 /* output parameters follow */ 02038 VdpBitmapSurface * surface 02039 ); 02040 02046 typedef VdpStatus VdpBitmapSurfaceDestroy( 02047 VdpBitmapSurface surface 02048 ); 02049 02061 typedef VdpStatus VdpBitmapSurfaceGetParameters( 02062 VdpBitmapSurface surface, 02063 /* output parameters follow */ 02064 VdpRGBAFormat * rgba_format, 02065 uint32_t * width, 02066 uint32_t * height, 02067 VdpBool * frequently_accessed 02068 ); 02069 02089 typedef VdpStatus VdpBitmapSurfacePutBitsNative( 02090 VdpBitmapSurface surface, 02091 void const * const * source_data, 02092 uint32_t const * source_pitches, 02093 VdpRect const * destination_rect 02094 ); 02095 02113 typedef enum { 02114 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ZERO = 0, 02115 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE = 1, 02116 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_SRC_COLOR = 2, 02117 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3, 02118 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_SRC_ALPHA = 4, 02119 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 5, 02120 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_DST_ALPHA = 6, 02121 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 7, 02122 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_DST_COLOR = 8, 02123 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 9, 02124 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_SRC_ALPHA_SATURATE = 10, 02125 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_CONSTANT_COLOR = 11, 02126 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 12, 02127 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_CONSTANT_ALPHA = 13, 02128 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 14, 02129 } VdpOutputSurfaceRenderBlendFactor; 02130 02135 typedef enum { 02136 VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_SUBTRACT = 0, 02137 VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_REVERSE_SUBTRACT = 1, 02138 VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_ADD = 2, 02139 VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_MIN = 3, 02140 VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_MAX = 4, 02141 } VdpOutputSurfaceRenderBlendEquation; 02142 02143 #define VDP_OUTPUT_SURFACE_RENDER_BLEND_STATE_VERSION 0 02144 02164 typedef struct { 02168 uint32_t struct_version; 02169 VdpOutputSurfaceRenderBlendFactor blend_factor_source_color; 02170 VdpOutputSurfaceRenderBlendFactor blend_factor_destination_color; 02171 VdpOutputSurfaceRenderBlendFactor blend_factor_source_alpha; 02172 VdpOutputSurfaceRenderBlendFactor blend_factor_destination_alpha; 02173 VdpOutputSurfaceRenderBlendEquation blend_equation_color; 02174 VdpOutputSurfaceRenderBlendEquation blend_equation_alpha; 02175 VdpColor blend_constant; 02176 } VdpOutputSurfaceRenderBlendState; 02177 02182 #define VDP_OUTPUT_SURFACE_RENDER_ROTATE_0 0 02183 02189 #define VDP_OUTPUT_SURFACE_RENDER_ROTATE_90 1 02190 02196 #define VDP_OUTPUT_SURFACE_RENDER_ROTATE_180 2 02197 02203 #define VDP_OUTPUT_SURFACE_RENDER_ROTATE_270 3 02204 02212 #define VDP_OUTPUT_SURFACE_RENDER_COLOR_PER_VERTEX (1 << 2) 02213 02284 typedef VdpStatus VdpOutputSurfaceRenderOutputSurface( 02285 VdpOutputSurface destination_surface, 02286 VdpRect const * destination_rect, 02287 VdpOutputSurface source_surface, 02288 VdpRect const * source_rect, 02289 VdpColor const * colors, 02290 VdpOutputSurfaceRenderBlendState const * blend_state, 02291 uint32_t flags 02292 ); 02293 02364 typedef VdpStatus VdpOutputSurfaceRenderBitmapSurface( 02365 VdpOutputSurface destination_surface, 02366 VdpRect const * destination_rect, 02367 VdpBitmapSurface source_surface, 02368 VdpRect const * source_rect, 02369 VdpColor const * colors, 02370 VdpOutputSurfaceRenderBlendState const * blend_state, 02371 uint32_t flags 02372 ); 02373 02394 typedef uint32_t VdpDecoderProfile; 02395 02397 #define VDP_DECODER_PROFILE_MPEG1 (VdpDecoderProfile)0 02398 02399 #define VDP_DECODER_PROFILE_MPEG2_SIMPLE (VdpDecoderProfile)1 02400 02401 #define VDP_DECODER_PROFILE_MPEG2_MAIN (VdpDecoderProfile)2 02402 02404 #define VDP_DECODER_PROFILE_H264_BASELINE (VdpDecoderProfile)6 02405 02406 #define VDP_DECODER_PROFILE_H264_MAIN (VdpDecoderProfile)7 02407 02408 #define VDP_DECODER_PROFILE_H264_HIGH (VdpDecoderProfile)8 02409 02410 #define VDP_DECODER_PROFILE_VC1_SIMPLE (VdpDecoderProfile)9 02411 02412 #define VDP_DECODER_PROFILE_VC1_MAIN (VdpDecoderProfile)10 02413 02414 #define VDP_DECODER_PROFILE_VC1_ADVANCED (VdpDecoderProfile)11 02415 02416 #define VDP_DECODER_PROFILE_MPEG4_PART2_SP (VdpDecoderProfile)12 02417 02418 #define VDP_DECODER_PROFILE_MPEG4_PART2_ASP (VdpDecoderProfile)13 02419 02420 #define VDP_DECODER_PROFILE_DIVX4_QMOBILE (VdpDecoderProfile)14 02421 02422 #define VDP_DECODER_PROFILE_DIVX4_MOBILE (VdpDecoderProfile)15 02423 02424 #define VDP_DECODER_PROFILE_DIVX4_HOME_THEATER (VdpDecoderProfile)16 02425 02426 #define VDP_DECODER_PROFILE_DIVX4_HD_1080P (VdpDecoderProfile)17 02427 02428 #define VDP_DECODER_PROFILE_DIVX5_QMOBILE (VdpDecoderProfile)18 02429 02430 #define VDP_DECODER_PROFILE_DIVX5_MOBILE (VdpDecoderProfile)19 02431 02432 #define VDP_DECODER_PROFILE_DIVX5_HOME_THEATER (VdpDecoderProfile)20 02433 02434 #define VDP_DECODER_PROFILE_DIVX5_HD_1080P (VdpDecoderProfile)21 02435 02437 #define VDP_DECODER_LEVEL_MPEG1_NA 0 02438 02440 #define VDP_DECODER_LEVEL_MPEG2_LL 0 02441 02442 #define VDP_DECODER_LEVEL_MPEG2_ML 1 02443 02444 #define VDP_DECODER_LEVEL_MPEG2_HL14 2 02445 02446 #define VDP_DECODER_LEVEL_MPEG2_HL 3 02447 02449 #define VDP_DECODER_LEVEL_H264_1 10 02450 02451 #define VDP_DECODER_LEVEL_H264_1b 9 02452 02453 #define VDP_DECODER_LEVEL_H264_1_1 11 02454 02455 #define VDP_DECODER_LEVEL_H264_1_2 12 02456 02457 #define VDP_DECODER_LEVEL_H264_1_3 13 02458 02459 #define VDP_DECODER_LEVEL_H264_2 20 02460 02461 #define VDP_DECODER_LEVEL_H264_2_1 21 02462 02463 #define VDP_DECODER_LEVEL_H264_2_2 22 02464 02465 #define VDP_DECODER_LEVEL_H264_3 30 02466 02467 #define VDP_DECODER_LEVEL_H264_3_1 31 02468 02469 #define VDP_DECODER_LEVEL_H264_3_2 32 02470 02471 #define VDP_DECODER_LEVEL_H264_4 40 02472 02473 #define VDP_DECODER_LEVEL_H264_4_1 41 02474 02475 #define VDP_DECODER_LEVEL_H264_4_2 42 02476 02477 #define VDP_DECODER_LEVEL_H264_5 50 02478 02479 #define VDP_DECODER_LEVEL_H264_5_1 51 02480 02482 #define VDP_DECODER_LEVEL_VC1_SIMPLE_LOW 0 02483 02484 #define VDP_DECODER_LEVEL_VC1_SIMPLE_MEDIUM 1 02485 02487 #define VDP_DECODER_LEVEL_VC1_MAIN_LOW 0 02488 02489 #define VDP_DECODER_LEVEL_VC1_MAIN_MEDIUM 1 02490 02491 #define VDP_DECODER_LEVEL_VC1_MAIN_HIGH 2 02492 02494 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L0 0 02495 02496 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L1 1 02497 02498 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L2 2 02499 02500 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L3 3 02501 02502 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L4 4 02503 02505 #define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L0 0 02506 02507 #define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L1 1 02508 02509 #define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L2 2 02510 02511 #define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L3 3 02512 02514 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L0 0 02515 02516 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L1 1 02517 02518 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L2 2 02519 02520 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L3 3 02521 02522 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L4 4 02523 02524 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L5 5 02525 02527 #define VDP_DECODER_LEVEL_DIVX_NA 0 02528 02547 typedef VdpStatus VdpDecoderQueryCapabilities( 02548 VdpDevice device, 02549 VdpDecoderProfile profile, 02550 /* output parameters follow */ 02551 VdpBool * is_supported, 02552 uint32_t * max_level, 02553 uint32_t * max_macroblocks, 02554 uint32_t * max_width, 02555 uint32_t * max_height 02556 ); 02557 02561 typedef uint32_t VdpDecoder; 02562 02579 typedef VdpStatus VdpDecoderCreate( 02580 VdpDevice device, 02581 VdpDecoderProfile profile, 02582 uint32_t width, 02583 uint32_t height, 02584 uint32_t max_references, 02585 /* output parameters follow */ 02586 VdpDecoder * decoder 02587 ); 02588 02594 typedef VdpStatus VdpDecoderDestroy( 02595 VdpDecoder decoder 02596 ); 02597 02610 typedef VdpStatus VdpDecoderGetParameters( 02611 VdpDecoder decoder, 02612 /* output parameters follow */ 02613 VdpDecoderProfile * profile, 02614 uint32_t * width, 02615 uint32_t * height 02616 ); 02617 02618 #define VDP_BITSTREAM_BUFFER_VERSION 0 02619 02624 typedef struct { 02628 uint32_t struct_version; 02630 void const * bitstream; 02632 uint32_t bitstream_bytes; 02633 } VdpBitstreamBuffer; 02634 02645 typedef void * VdpPictureInfo; 02646 02655 typedef struct { 02660 VdpVideoSurface forward_reference; 02665 VdpVideoSurface backward_reference; 02667 uint32_t slice_count; 02668 02670 uint8_t picture_structure; 02672 uint8_t picture_coding_type; 02674 uint8_t intra_dc_precision; 02676 uint8_t frame_pred_frame_dct; 02678 uint8_t concealment_motion_vectors; 02680 uint8_t intra_vlc_format; 02682 uint8_t alternate_scan; 02684 uint8_t q_scale_type; 02686 uint8_t top_field_first; 02688 uint8_t full_pel_forward_vector; 02690 uint8_t full_pel_backward_vector; 02695 uint8_t f_code[2][2]; 02697 uint8_t intra_quantizer_matrix[64]; 02699 uint8_t non_intra_quantizer_matrix[64]; 02700 } VdpPictureInfoMPEG1Or2; 02701 02709 typedef struct { 02714 VdpVideoSurface surface; 02716 VdpBool is_long_term; 02721 VdpBool top_is_reference; 02726 VdpBool bottom_is_reference; 02728 int32_t field_order_cnt[2]; 02734 uint16_t frame_idx; 02735 } VdpReferenceFrameH264; 02736 02755 typedef struct { 02757 uint32_t slice_count; 02759 int32_t field_order_cnt[2]; 02761 VdpBool is_reference; 02762 02764 uint16_t frame_num; 02766 uint8_t field_pic_flag; 02768 uint8_t bottom_field_flag; 02770 uint8_t num_ref_frames; 02772 uint8_t mb_adaptive_frame_field_flag; 02774 uint8_t constrained_intra_pred_flag; 02776 uint8_t weighted_pred_flag; 02778 uint8_t weighted_bipred_idc; 02780 uint8_t frame_mbs_only_flag; 02782 uint8_t transform_8x8_mode_flag; 02784 int8_t chroma_qp_index_offset; 02786 int8_t second_chroma_qp_index_offset; 02788 int8_t pic_init_qp_minus26; 02790 uint8_t num_ref_idx_l0_active_minus1; 02792 uint8_t num_ref_idx_l1_active_minus1; 02794 uint8_t log2_max_frame_num_minus4; 02796 uint8_t pic_order_cnt_type; 02798 uint8_t log2_max_pic_order_cnt_lsb_minus4; 02800 uint8_t delta_pic_order_always_zero_flag; 02802 uint8_t direct_8x8_inference_flag; 02804 uint8_t entropy_coding_mode_flag; 02806 uint8_t pic_order_present_flag; 02808 uint8_t deblocking_filter_control_present_flag; 02810 uint8_t redundant_pic_cnt_present_flag; 02811 02813 uint8_t scaling_lists_4x4[6][16]; 02815 uint8_t scaling_lists_8x8[2][64]; 02816 02818 VdpReferenceFrameH264 referenceFrames[16]; 02819 } VdpPictureInfoH264; 02820 02828 typedef struct { 02833 VdpVideoSurface forward_reference; 02838 VdpVideoSurface backward_reference; 02839 02841 uint32_t slice_count; 02843 uint8_t picture_type; 02845 uint8_t frame_coding_mode; 02846 02848 uint8_t postprocflag; 02850 uint8_t pulldown; 02852 uint8_t interlace; 02854 uint8_t tfcntrflag; 02856 uint8_t finterpflag; 02858 uint8_t psf; 02860 uint8_t dquant; 02862 uint8_t panscan_flag; 02864 uint8_t refdist_flag; 02866 uint8_t quantizer; 02868 uint8_t extended_mv; 02870 uint8_t extended_dmv; 02872 uint8_t overlap; 02874 uint8_t vstransform; 02876 uint8_t loopfilter; 02878 uint8_t fastuvmc; 02880 uint8_t range_mapy_flag; 02882 uint8_t range_mapy; 02884 uint8_t range_mapuv_flag; 02886 uint8_t range_mapuv; 02887 02892 uint8_t multires; 02897 uint8_t syncmarker; 02904 uint8_t rangered; 02909 uint8_t maxbframes; 02910 02916 uint8_t deblockEnable; 02922 uint8_t pquant; 02923 } VdpPictureInfoVC1; 02924 02932 typedef struct { 02937 VdpVideoSurface forward_reference; 02942 VdpVideoSurface backward_reference; 02943 02945 int32_t trd[2]; 02947 int32_t trb[2]; 02949 uint16_t vop_time_increment_resolution; 02951 uint8_t vop_coding_type; 02953 uint8_t vop_fcode_forward; 02955 uint8_t vop_fcode_backward; 02957 uint8_t resync_marker_disable; 02959 uint8_t interlaced; 02961 uint8_t quant_type; 02963 uint8_t quarter_sample; 02965 uint8_t short_video_header; 02967 uint8_t rounding_control; 02969 uint8_t alternate_vertical_scan_flag; 02971 uint8_t top_field_first; 02973 uint8_t intra_quantizer_matrix[64]; 02975 uint8_t non_intra_quantizer_matrix[64]; 02976 } VdpPictureInfoMPEG4Part2; 02977 02984 typedef VdpPictureInfoMPEG4Part2 VdpPictureInfoDivX4; 02985 02992 typedef VdpPictureInfoMPEG4Part2 VdpPictureInfoDivX5; 02993 03012 typedef VdpStatus VdpDecoderRender( 03013 VdpDecoder decoder, 03014 VdpVideoSurface target, 03015 VdpPictureInfo const * picture_info, 03016 uint32_t bitstream_buffer_count, 03017 VdpBitstreamBuffer const * bitstream_buffers 03018 ); 03019 03099 typedef uint32_t VdpVideoMixerFeature; 03100 03112 #define VDP_VIDEO_MIXER_FEATURE_DEINTERLACE_TEMPORAL (VdpVideoMixerFeature)0 03113 03125 #define VDP_VIDEO_MIXER_FEATURE_DEINTERLACE_TEMPORAL_SPATIAL (VdpVideoMixerFeature)1 03126 03134 #define VDP_VIDEO_MIXER_FEATURE_INVERSE_TELECINE (VdpVideoMixerFeature)2 03135 03142 #define VDP_VIDEO_MIXER_FEATURE_NOISE_REDUCTION (VdpVideoMixerFeature)3 03143 03150 #define VDP_VIDEO_MIXER_FEATURE_SHARPNESS (VdpVideoMixerFeature)4 03151 03163 #define VDP_VIDEO_MIXER_FEATURE_LUMA_KEY (VdpVideoMixerFeature)5 03164 03185 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1 (VdpVideoMixerFeature)11 03186 03192 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L2 (VdpVideoMixerFeature)12 03193 03199 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L3 (VdpVideoMixerFeature)13 03200 03206 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L4 (VdpVideoMixerFeature)14 03207 03213 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L5 (VdpVideoMixerFeature)15 03214 03220 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L6 (VdpVideoMixerFeature)16 03221 03227 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L7 (VdpVideoMixerFeature)17 03228 03234 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L8 (VdpVideoMixerFeature)18 03235 03241 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L9 (VdpVideoMixerFeature)19 03242 03255 typedef uint32_t VdpVideoMixerParameter; 03256 03269 #define VDP_VIDEO_MIXER_PARAMETER_VIDEO_SURFACE_WIDTH (VdpVideoMixerParameter)0 03270 03282 #define VDP_VIDEO_MIXER_PARAMETER_VIDEO_SURFACE_HEIGHT (VdpVideoMixerParameter)1 03283 03296 #define VDP_VIDEO_MIXER_PARAMETER_CHROMA_TYPE (VdpVideoMixerParameter)2 03297 03315 #define VDP_VIDEO_MIXER_PARAMETER_LAYERS (VdpVideoMixerParameter)3 03316 03329 typedef uint32_t VdpVideoMixerAttribute; 03330 03344 #define VDP_VIDEO_MIXER_ATTRIBUTE_BACKGROUND_COLOR (VdpVideoMixerAttribute)0 03345 03372 #define VDP_VIDEO_MIXER_ATTRIBUTE_CSC_MATRIX (VdpVideoMixerAttribute)1 03373 03385 #define VDP_VIDEO_MIXER_ATTRIBUTE_NOISE_REDUCTION_LEVEL (VdpVideoMixerAttribute)2 03386 03401 #define VDP_VIDEO_MIXER_ATTRIBUTE_SHARPNESS_LEVEL (VdpVideoMixerAttribute)3 03402 03413 #define VDP_VIDEO_MIXER_ATTRIBUTE_LUMA_KEY_MIN_LUMA (VdpVideoMixerAttribute)4 03414 03425 #define VDP_VIDEO_MIXER_ATTRIBUTE_LUMA_KEY_MAX_LUMA (VdpVideoMixerAttribute)5 03426 03440 #define VDP_VIDEO_MIXER_ATTRIBUTE_SKIP_CHROMA_DEINTERLACE (VdpVideoMixerAttribute)6 03441 03451 typedef VdpStatus VdpVideoMixerQueryFeatureSupport( 03452 VdpDevice device, 03453 VdpVideoMixerFeature feature, 03454 /* output parameters follow */ 03455 VdpBool * is_supported 03456 ); 03457 03468 typedef VdpStatus VdpVideoMixerQueryParameterSupport( 03469 VdpDevice device, 03470 VdpVideoMixerParameter parameter, 03471 /* output parameters follow */ 03472 VdpBool * is_supported 03473 ); 03474 03484 typedef VdpStatus VdpVideoMixerQueryAttributeSupport( 03485 VdpDevice device, 03486 VdpVideoMixerAttribute attribute, 03487 /* output parameters follow */ 03488 VdpBool * is_supported 03489 ); 03490 03501 typedef VdpStatus VdpVideoMixerQueryParameterValueRange( 03502 VdpDevice device, 03503 VdpVideoMixerParameter parameter, 03504 /* output parameters follow */ 03505 void * min_value, 03506 void * max_value 03507 ); 03508 03519 typedef VdpStatus VdpVideoMixerQueryAttributeValueRange( 03520 VdpDevice device, 03521 VdpVideoMixerAttribute attribute, 03522 /* output parameters follow */ 03523 void * min_value, 03524 void * max_value 03525 ); 03526 03530 typedef uint32_t VdpVideoMixer; 03531 03552 typedef VdpStatus VdpVideoMixerCreate( 03553 VdpDevice device, 03554 // The set of features to request 03555 uint32_t feature_count, 03556 VdpVideoMixerFeature const * features, 03557 // The parameters used during creation 03558 uint32_t parameter_count, 03559 VdpVideoMixerParameter const * parameters, 03560 void const * const * parameter_values, 03561 /* output parameters follow */ 03562 VdpVideoMixer * mixer 03563 ); 03564 03575 typedef VdpStatus VdpVideoMixerSetFeatureEnables( 03576 VdpVideoMixer mixer, 03577 uint32_t feature_count, 03578 VdpVideoMixerFeature const * features, 03579 VdpBool const * feature_enables 03580 ); 03581 03594 typedef VdpStatus VdpVideoMixerSetAttributeValues( 03595 VdpVideoMixer mixer, 03596 uint32_t attribute_count, 03597 VdpVideoMixerAttribute const * attributes, 03598 void const * const * attribute_values 03599 ); 03600 03612 typedef VdpStatus VdpVideoMixerGetFeatureSupport( 03613 VdpVideoMixer mixer, 03614 uint32_t feature_count, 03615 VdpVideoMixerFeature const * features, 03616 /* output parameters follow */ 03617 VdpBool * feature_supports 03618 ); 03619 03629 typedef VdpStatus VdpVideoMixerGetFeatureEnables( 03630 VdpVideoMixer mixer, 03631 uint32_t feature_count, 03632 VdpVideoMixerFeature const * features, 03633 /* output parameters follow */ 03634 VdpBool * feature_enables 03635 ); 03636 03649 typedef VdpStatus VdpVideoMixerGetParameterValues( 03650 VdpVideoMixer mixer, 03651 uint32_t parameter_count, 03652 VdpVideoMixerParameter const * parameters, 03653 /* output parameters follow */ 03654 void * const * parameter_values 03655 ); 03656 03669 typedef VdpStatus VdpVideoMixerGetAttributeValues( 03670 VdpVideoMixer mixer, 03671 uint32_t attribute_count, 03672 VdpVideoMixerAttribute const * attributes, 03673 /* output parameters follow */ 03674 void * const * attribute_values 03675 ); 03676 03682 typedef VdpStatus VdpVideoMixerDestroy( 03683 VdpVideoMixer mixer 03684 ); 03685 03691 typedef enum { 03695 VDP_VIDEO_MIXER_PICTURE_STRUCTURE_TOP_FIELD, 03700 VDP_VIDEO_MIXER_PICTURE_STRUCTURE_BOTTOM_FIELD, 03704 VDP_VIDEO_MIXER_PICTURE_STRUCTURE_FRAME, 03705 } VdpVideoMixerPictureStructure; 03706 03707 #define VDP_LAYER_VERSION 0 03708 03713 typedef struct { 03717 uint32_t struct_version; 03721 VdpOutputSurface source_surface; 03726 VdpRect const * source_rect; 03735 VdpRect const * destination_rect; 03736 } VdpLayer; 03737 03804 typedef VdpStatus VdpVideoMixerRender( 03805 VdpVideoMixer mixer, 03806 VdpOutputSurface background_surface, 03807 VdpRect const * background_source_rect, 03808 VdpVideoMixerPictureStructure current_picture_structure, 03809 uint32_t video_surface_past_count, 03810 VdpVideoSurface const * video_surface_past, 03811 VdpVideoSurface video_surface_current, 03812 uint32_t video_surface_future_count, 03813 VdpVideoSurface const * video_surface_future, 03814 VdpRect const * video_source_rect, 03815 VdpOutputSurface destination_surface, 03816 VdpRect const * destination_rect, 03817 VdpRect const * destination_video_rect, 03818 uint32_t layer_count, 03819 VdpLayer const * layers 03820 ); 03821 03873 typedef uint64_t VdpTime; 03874 03883 typedef uint32_t VdpPresentationQueueTarget; 03884 03890 typedef VdpStatus VdpPresentationQueueTargetDestroy( 03891 VdpPresentationQueueTarget presentation_queue_target 03892 ); 03893 03898 typedef uint32_t VdpPresentationQueue; 03899 03911 typedef VdpStatus VdpPresentationQueueCreate( 03912 VdpDevice device, 03913 VdpPresentationQueueTarget presentation_queue_target, 03914 /* output parameters follow */ 03915 VdpPresentationQueue * presentation_queue 03916 ); 03917 03923 typedef VdpStatus VdpPresentationQueueDestroy( 03924 VdpPresentationQueue presentation_queue 03925 ); 03926 03936 typedef VdpStatus VdpPresentationQueueSetBackgroundColor( 03937 VdpPresentationQueue presentation_queue, 03938 VdpColor * const background_color 03939 ); 03940 03946 typedef VdpStatus VdpPresentationQueueGetBackgroundColor( 03947 VdpPresentationQueue presentation_queue, 03948 VdpColor * background_color 03949 ); 03950 03958 typedef VdpStatus VdpPresentationQueueGetTime( 03959 VdpPresentationQueue presentation_queue, 03960 /* output parameters follow */ 03961 VdpTime * current_time 03962 ); 03963 04004 typedef VdpStatus VdpPresentationQueueDisplay( 04005 VdpPresentationQueue presentation_queue, 04006 VdpOutputSurface surface, 04007 uint32_t clip_width, 04008 uint32_t clip_height, 04009 VdpTime earliest_presentation_time 04010 ); 04011 04027 typedef VdpStatus VdpPresentationQueueBlockUntilSurfaceIdle( 04028 VdpPresentationQueue presentation_queue, 04029 VdpOutputSurface surface, 04030 /* output parameters follow */ 04031 VdpTime * first_presentation_time 04032 ); 04033 04038 typedef enum { 04040 VDP_PRESENTATION_QUEUE_STATUS_IDLE, 04042 VDP_PRESENTATION_QUEUE_STATUS_QUEUED, 04044 VDP_PRESENTATION_QUEUE_STATUS_VISIBLE, 04045 } VdpPresentationQueueStatus; 04046 04058 typedef VdpStatus VdpPresentationQueueQuerySurfaceStatus( 04059 VdpPresentationQueue presentation_queue, 04060 VdpOutputSurface surface, 04061 /* output parameters follow */ 04062 VdpPresentationQueueStatus * status, 04063 VdpTime * first_presentation_time 04064 ); 04065 04120 typedef void VdpPreemptionCallback( 04121 VdpDevice device, 04122 void * context 04123 ); 04124 04135 typedef VdpStatus VdpPreemptionCallbackRegister( 04136 VdpDevice device, 04137 VdpPreemptionCallback callback, 04138 void * context 04139 ); 04140 04158 typedef uint32_t VdpFuncId; 04159 04161 #define VDP_FUNC_ID_GET_ERROR_STRING (VdpFuncId)0 04162 04163 #define VDP_FUNC_ID_GET_PROC_ADDRESS (VdpFuncId)1 04164 04165 #define VDP_FUNC_ID_GET_API_VERSION (VdpFuncId)2 04166 04167 #define VDP_FUNC_ID_GET_INFORMATION_STRING (VdpFuncId)4 04168 04169 #define VDP_FUNC_ID_DEVICE_DESTROY (VdpFuncId)5 04170 04171 #define VDP_FUNC_ID_GENERATE_CSC_MATRIX (VdpFuncId)6 04172 04173 #define VDP_FUNC_ID_VIDEO_SURFACE_QUERY_CAPABILITIES (VdpFuncId)7 04174 04175 #define VDP_FUNC_ID_VIDEO_SURFACE_QUERY_GET_PUT_BITS_Y_CB_CR_CAPABILITIES (VdpFuncId)8 04176 04177 #define VDP_FUNC_ID_VIDEO_SURFACE_CREATE (VdpFuncId)9 04178 04179 #define VDP_FUNC_ID_VIDEO_SURFACE_DESTROY (VdpFuncId)10 04180 04181 #define VDP_FUNC_ID_VIDEO_SURFACE_GET_PARAMETERS (VdpFuncId)11 04182 04183 #define VDP_FUNC_ID_VIDEO_SURFACE_GET_BITS_Y_CB_CR (VdpFuncId)12 04184 04185 #define VDP_FUNC_ID_VIDEO_SURFACE_PUT_BITS_Y_CB_CR (VdpFuncId)13 04186 04187 #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_CAPABILITIES (VdpFuncId)14 04188 04189 #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_GET_PUT_BITS_NATIVE_CAPABILITIES (VdpFuncId)15 04190 04191 #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_PUT_BITS_INDEXED_CAPABILITIES (VdpFuncId)16 04192 04193 #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_PUT_BITS_Y_CB_CR_CAPABILITIES (VdpFuncId)17 04194 04195 #define VDP_FUNC_ID_OUTPUT_SURFACE_CREATE (VdpFuncId)18 04196 04197 #define VDP_FUNC_ID_OUTPUT_SURFACE_DESTROY (VdpFuncId)19 04198 04199 #define VDP_FUNC_ID_OUTPUT_SURFACE_GET_PARAMETERS (VdpFuncId)20 04200 04201 #define VDP_FUNC_ID_OUTPUT_SURFACE_GET_BITS_NATIVE (VdpFuncId)21 04202 04203 #define VDP_FUNC_ID_OUTPUT_SURFACE_PUT_BITS_NATIVE (VdpFuncId)22 04204 04205 #define VDP_FUNC_ID_OUTPUT_SURFACE_PUT_BITS_INDEXED (VdpFuncId)23 04206 04207 #define VDP_FUNC_ID_OUTPUT_SURFACE_PUT_BITS_Y_CB_CR (VdpFuncId)24 04208 04209 #define VDP_FUNC_ID_BITMAP_SURFACE_QUERY_CAPABILITIES (VdpFuncId)25 04210 04211 #define VDP_FUNC_ID_BITMAP_SURFACE_CREATE (VdpFuncId)26 04212 04213 #define VDP_FUNC_ID_BITMAP_SURFACE_DESTROY (VdpFuncId)27 04214 04215 #define VDP_FUNC_ID_BITMAP_SURFACE_GET_PARAMETERS (VdpFuncId)28 04216 04217 #define VDP_FUNC_ID_BITMAP_SURFACE_PUT_BITS_NATIVE (VdpFuncId)29 04218 04219 #define VDP_FUNC_ID_OUTPUT_SURFACE_RENDER_OUTPUT_SURFACE (VdpFuncId)33 04220 04221 #define VDP_FUNC_ID_OUTPUT_SURFACE_RENDER_BITMAP_SURFACE (VdpFuncId)34 04222 04223 #define VDP_FUNC_ID_OUTPUT_SURFACE_RENDER_VIDEO_SURFACE_LUMA (VdpFuncId)35 04224 04225 #define VDP_FUNC_ID_DECODER_QUERY_CAPABILITIES (VdpFuncId)36 04226 04227 #define VDP_FUNC_ID_DECODER_CREATE (VdpFuncId)37 04228 04229 #define VDP_FUNC_ID_DECODER_DESTROY (VdpFuncId)38 04230 04231 #define VDP_FUNC_ID_DECODER_GET_PARAMETERS (VdpFuncId)39 04232 04233 #define VDP_FUNC_ID_DECODER_RENDER (VdpFuncId)40 04234 04235 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_FEATURE_SUPPORT (VdpFuncId)41 04236 04237 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_PARAMETER_SUPPORT (VdpFuncId)42 04238 04239 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_ATTRIBUTE_SUPPORT (VdpFuncId)43 04240 04241 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_PARAMETER_VALUE_RANGE (VdpFuncId)44 04242 04243 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_ATTRIBUTE_VALUE_RANGE (VdpFuncId)45 04244 04245 #define VDP_FUNC_ID_VIDEO_MIXER_CREATE (VdpFuncId)46 04246 04247 #define VDP_FUNC_ID_VIDEO_MIXER_SET_FEATURE_ENABLES (VdpFuncId)47 04248 04249 #define VDP_FUNC_ID_VIDEO_MIXER_SET_ATTRIBUTE_VALUES (VdpFuncId)48 04250 04251 #define VDP_FUNC_ID_VIDEO_MIXER_GET_FEATURE_SUPPORT (VdpFuncId)49 04252 04253 #define VDP_FUNC_ID_VIDEO_MIXER_GET_FEATURE_ENABLES (VdpFuncId)50 04254 04255 #define VDP_FUNC_ID_VIDEO_MIXER_GET_PARAMETER_VALUES (VdpFuncId)51 04256 04257 #define VDP_FUNC_ID_VIDEO_MIXER_GET_ATTRIBUTE_VALUES (VdpFuncId)52 04258 04259 #define VDP_FUNC_ID_VIDEO_MIXER_DESTROY (VdpFuncId)53 04260 04261 #define VDP_FUNC_ID_VIDEO_MIXER_RENDER (VdpFuncId)54 04262 04263 #define VDP_FUNC_ID_PRESENTATION_QUEUE_TARGET_DESTROY (VdpFuncId)55 04264 04265 #define VDP_FUNC_ID_PRESENTATION_QUEUE_CREATE (VdpFuncId)56 04266 04267 #define VDP_FUNC_ID_PRESENTATION_QUEUE_DESTROY (VdpFuncId)57 04268 04269 #define VDP_FUNC_ID_PRESENTATION_QUEUE_SET_BACKGROUND_COLOR (VdpFuncId)58 04270 04271 #define VDP_FUNC_ID_PRESENTATION_QUEUE_GET_BACKGROUND_COLOR (VdpFuncId)59 04272 04273 #define VDP_FUNC_ID_PRESENTATION_QUEUE_GET_TIME (VdpFuncId)62 04274 04275 #define VDP_FUNC_ID_PRESENTATION_QUEUE_DISPLAY (VdpFuncId)63 04276 04277 #define VDP_FUNC_ID_PRESENTATION_QUEUE_BLOCK_UNTIL_SURFACE_IDLE (VdpFuncId)64 04278 04279 #define VDP_FUNC_ID_PRESENTATION_QUEUE_QUERY_SURFACE_STATUS (VdpFuncId)65 04280 04281 #define VDP_FUNC_ID_PREEMPTION_CALLBACK_REGISTER (VdpFuncId)66 04282 04283 #define VDP_FUNC_ID_BASE_WINSYS 0x1000 04284 04294 typedef VdpStatus VdpGetProcAddress( 04295 VdpDevice device, 04296 VdpFuncId function_id, 04297 /* output parameters follow */ 04298 void * * function_pointer 04299 ); 04300 04303 04311 #ifdef __cplusplus 04312 } 04313 #endif 04314 04315 #endif 04316