00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
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
01272 uint32_t * api_version
01273 );
01274
01292 typedef VdpStatus VdpGetInformationString(
01293
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
01431 VdpCSCMatrix * csc_matrix
01432 );
01433
01478 typedef VdpStatus VdpVideoSurfaceQueryCapabilities(
01479 VdpDevice device,
01480 VdpChromaType surface_chroma_type,
01481
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
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
01563 VdpVideoSurface * surface
01564 );
01565
01571 typedef VdpStatus VdpVideoSurfaceDestroy(
01572 VdpVideoSurface surface
01573 );
01574
01584 typedef VdpStatus VdpVideoSurfaceGetParameters(
01585 VdpVideoSurface surface,
01586
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
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
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
01751 VdpBool * is_supported
01752 );
01753
01766 typedef VdpStatus VdpOutputSurfaceQueryPutBitsYCbCrCapabilities(
01767 VdpDevice device,
01768 VdpRGBAFormat surface_rgba_format,
01769 VdpYCbCrFormat bits_ycbcr_format,
01770
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
01798 VdpOutputSurface * surface
01799 );
01800
01806 typedef VdpStatus VdpOutputSurfaceDestroy(
01807 VdpOutputSurface surface
01808 );
01809
01819 typedef VdpStatus VdpOutputSurfaceGetParameters(
01820 VdpOutputSurface surface,
01821
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
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
02038 VdpBitmapSurface * surface
02039 );
02040
02046 typedef VdpStatus VdpBitmapSurfaceDestroy(
02047 VdpBitmapSurface surface
02048 );
02049
02061 typedef VdpStatus VdpBitmapSurfaceGetParameters(
02062 VdpBitmapSurface surface,
02063
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
02148 typedef struct {
02152 uint32_t struct_version;
02153 VdpOutputSurfaceRenderBlendFactor blend_factor_source_color;
02154 VdpOutputSurfaceRenderBlendFactor blend_factor_destination_color;
02155 VdpOutputSurfaceRenderBlendFactor blend_factor_source_alpha;
02156 VdpOutputSurfaceRenderBlendFactor blend_factor_destination_alpha;
02157 VdpOutputSurfaceRenderBlendEquation blend_equation_color;
02158 VdpOutputSurfaceRenderBlendEquation blend_equation_alpha;
02159 VdpColor blend_constant;
02160 } VdpOutputSurfaceRenderBlendState;
02161
02166 #define VDP_OUTPUT_SURFACE_RENDER_ROTATE_0 0
02167
02173 #define VDP_OUTPUT_SURFACE_RENDER_ROTATE_90 1
02174
02180 #define VDP_OUTPUT_SURFACE_RENDER_ROTATE_180 2
02181
02187 #define VDP_OUTPUT_SURFACE_RENDER_ROTATE_270 3
02188
02196 #define VDP_OUTPUT_SURFACE_RENDER_COLOR_PER_VERTEX (1 << 2)
02197
02275 typedef VdpStatus VdpOutputSurfaceRenderOutputSurface(
02276 VdpOutputSurface destination_surface,
02277 VdpRect const * destination_rect,
02278 VdpOutputSurface source_surface,
02279 VdpRect const * source_rect,
02280 VdpColor const * colors,
02281 VdpOutputSurfaceRenderBlendState const * blend_state,
02282 uint32_t flags
02283 );
02284
02362 typedef VdpStatus VdpOutputSurfaceRenderBitmapSurface(
02363 VdpOutputSurface destination_surface,
02364 VdpRect const * destination_rect,
02365 VdpBitmapSurface source_surface,
02366 VdpRect const * source_rect,
02367 VdpColor const * colors,
02368 VdpOutputSurfaceRenderBlendState const * blend_state,
02369 uint32_t flags
02370 );
02371
02392 typedef uint32_t VdpDecoderProfile;
02393
02395 #define VDP_DECODER_PROFILE_MPEG1 (VdpDecoderProfile)0
02396
02397 #define VDP_DECODER_PROFILE_MPEG2_SIMPLE (VdpDecoderProfile)1
02398
02399 #define VDP_DECODER_PROFILE_MPEG2_MAIN (VdpDecoderProfile)2
02400
02402 #define VDP_DECODER_PROFILE_H264_BASELINE (VdpDecoderProfile)6
02403
02404 #define VDP_DECODER_PROFILE_H264_MAIN (VdpDecoderProfile)7
02405
02406 #define VDP_DECODER_PROFILE_H264_HIGH (VdpDecoderProfile)8
02407
02408 #define VDP_DECODER_PROFILE_VC1_SIMPLE (VdpDecoderProfile)9
02409
02410 #define VDP_DECODER_PROFILE_VC1_MAIN (VdpDecoderProfile)10
02411
02412 #define VDP_DECODER_PROFILE_VC1_ADVANCED (VdpDecoderProfile)11
02413
02414 #define VDP_DECODER_PROFILE_MPEG4_PART2_SP (VdpDecoderProfile)12
02415
02416 #define VDP_DECODER_PROFILE_MPEG4_PART2_ASP (VdpDecoderProfile)13
02417
02418 #define VDP_DECODER_PROFILE_DIVX4_QMOBILE (VdpDecoderProfile)14
02419
02420 #define VDP_DECODER_PROFILE_DIVX4_MOBILE (VdpDecoderProfile)15
02421
02422 #define VDP_DECODER_PROFILE_DIVX4_HOME_THEATER (VdpDecoderProfile)16
02423
02424 #define VDP_DECODER_PROFILE_DIVX4_HD_1080P (VdpDecoderProfile)17
02425
02426 #define VDP_DECODER_PROFILE_DIVX5_QMOBILE (VdpDecoderProfile)18
02427
02428 #define VDP_DECODER_PROFILE_DIVX5_MOBILE (VdpDecoderProfile)19
02429
02430 #define VDP_DECODER_PROFILE_DIVX5_HOME_THEATER (VdpDecoderProfile)20
02431
02432 #define VDP_DECODER_PROFILE_DIVX5_HD_1080P (VdpDecoderProfile)21
02433
02435 #define VDP_DECODER_LEVEL_MPEG1_NA 0
02436
02438 #define VDP_DECODER_LEVEL_MPEG2_LL 0
02439
02440 #define VDP_DECODER_LEVEL_MPEG2_ML 1
02441
02442 #define VDP_DECODER_LEVEL_MPEG2_HL14 2
02443
02444 #define VDP_DECODER_LEVEL_MPEG2_HL 3
02445
02447 #define VDP_DECODER_LEVEL_H264_1 10
02448
02449 #define VDP_DECODER_LEVEL_H264_1b 9
02450
02451 #define VDP_DECODER_LEVEL_H264_1_1 11
02452
02453 #define VDP_DECODER_LEVEL_H264_1_2 12
02454
02455 #define VDP_DECODER_LEVEL_H264_1_3 13
02456
02457 #define VDP_DECODER_LEVEL_H264_2 20
02458
02459 #define VDP_DECODER_LEVEL_H264_2_1 21
02460
02461 #define VDP_DECODER_LEVEL_H264_2_2 22
02462
02463 #define VDP_DECODER_LEVEL_H264_3 30
02464
02465 #define VDP_DECODER_LEVEL_H264_3_1 31
02466
02467 #define VDP_DECODER_LEVEL_H264_3_2 32
02468
02469 #define VDP_DECODER_LEVEL_H264_4 40
02470
02471 #define VDP_DECODER_LEVEL_H264_4_1 41
02472
02473 #define VDP_DECODER_LEVEL_H264_4_2 42
02474
02475 #define VDP_DECODER_LEVEL_H264_5 50
02476
02477 #define VDP_DECODER_LEVEL_H264_5_1 51
02478
02480 #define VDP_DECODER_LEVEL_VC1_SIMPLE_LOW 0
02481
02482 #define VDP_DECODER_LEVEL_VC1_SIMPLE_MEDIUM 1
02483
02485 #define VDP_DECODER_LEVEL_VC1_MAIN_LOW 0
02486
02487 #define VDP_DECODER_LEVEL_VC1_MAIN_MEDIUM 1
02488
02489 #define VDP_DECODER_LEVEL_VC1_MAIN_HIGH 2
02490
02492 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L0 0
02493
02494 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L1 1
02495
02496 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L2 2
02497
02498 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L3 3
02499
02500 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L4 4
02501
02503 #define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L0 0
02504
02505 #define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L1 1
02506
02507 #define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L2 2
02508
02509 #define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L3 3
02510
02512 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L0 0
02513
02514 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L1 1
02515
02516 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L2 2
02517
02518 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L3 3
02519
02520 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L4 4
02521
02522 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L5 5
02523
02525 #define VDP_DECODER_LEVEL_DIVX_NA 0
02526
02545 typedef VdpStatus VdpDecoderQueryCapabilities(
02546 VdpDevice device,
02547 VdpDecoderProfile profile,
02548
02549 VdpBool * is_supported,
02550 uint32_t * max_level,
02551 uint32_t * max_macroblocks,
02552 uint32_t * max_width,
02553 uint32_t * max_height
02554 );
02555
02559 typedef uint32_t VdpDecoder;
02560
02577 typedef VdpStatus VdpDecoderCreate(
02578 VdpDevice device,
02579 VdpDecoderProfile profile,
02580 uint32_t width,
02581 uint32_t height,
02582 uint32_t max_references,
02583
02584 VdpDecoder * decoder
02585 );
02586
02592 typedef VdpStatus VdpDecoderDestroy(
02593 VdpDecoder decoder
02594 );
02595
02608 typedef VdpStatus VdpDecoderGetParameters(
02609 VdpDecoder decoder,
02610
02611 VdpDecoderProfile * profile,
02612 uint32_t * width,
02613 uint32_t * height
02614 );
02615
02616 #define VDP_BITSTREAM_BUFFER_VERSION 0
02617
02622 typedef struct {
02626 uint32_t struct_version;
02628 void const * bitstream;
02630 uint32_t bitstream_bytes;
02631 } VdpBitstreamBuffer;
02632
02643 typedef void * VdpPictureInfo;
02644
02653 typedef struct {
02658 VdpVideoSurface forward_reference;
02663 VdpVideoSurface backward_reference;
02665 uint32_t slice_count;
02666
02668 uint8_t picture_structure;
02670 uint8_t picture_coding_type;
02672 uint8_t intra_dc_precision;
02674 uint8_t frame_pred_frame_dct;
02676 uint8_t concealment_motion_vectors;
02678 uint8_t intra_vlc_format;
02680 uint8_t alternate_scan;
02682 uint8_t q_scale_type;
02684 uint8_t top_field_first;
02686 uint8_t full_pel_forward_vector;
02688 uint8_t full_pel_backward_vector;
02693 uint8_t f_code[2][2];
02695 uint8_t intra_quantizer_matrix[64];
02697 uint8_t non_intra_quantizer_matrix[64];
02698 } VdpPictureInfoMPEG1Or2;
02699
02707 typedef struct {
02712 VdpVideoSurface surface;
02714 VdpBool is_long_term;
02719 VdpBool top_is_reference;
02724 VdpBool bottom_is_reference;
02726 int32_t field_order_cnt[2];
02732 uint16_t frame_idx;
02733 } VdpReferenceFrameH264;
02734
02753 typedef struct {
02755 uint32_t slice_count;
02757 int32_t field_order_cnt[2];
02759 VdpBool is_reference;
02760
02762 uint16_t frame_num;
02764 uint8_t field_pic_flag;
02766 uint8_t bottom_field_flag;
02768 uint8_t num_ref_frames;
02770 uint8_t mb_adaptive_frame_field_flag;
02772 uint8_t constrained_intra_pred_flag;
02774 uint8_t weighted_pred_flag;
02776 uint8_t weighted_bipred_idc;
02778 uint8_t frame_mbs_only_flag;
02780 uint8_t transform_8x8_mode_flag;
02782 int8_t chroma_qp_index_offset;
02784 int8_t second_chroma_qp_index_offset;
02786 int8_t pic_init_qp_minus26;
02788 uint8_t num_ref_idx_l0_active_minus1;
02790 uint8_t num_ref_idx_l1_active_minus1;
02792 uint8_t log2_max_frame_num_minus4;
02794 uint8_t pic_order_cnt_type;
02796 uint8_t log2_max_pic_order_cnt_lsb_minus4;
02798 uint8_t delta_pic_order_always_zero_flag;
02800 uint8_t direct_8x8_inference_flag;
02802 uint8_t entropy_coding_mode_flag;
02804 uint8_t pic_order_present_flag;
02806 uint8_t deblocking_filter_control_present_flag;
02808 uint8_t redundant_pic_cnt_present_flag;
02809
02811 uint8_t scaling_lists_4x4[6][16];
02813 uint8_t scaling_lists_8x8[2][64];
02814
02816 VdpReferenceFrameH264 referenceFrames[16];
02817 } VdpPictureInfoH264;
02818
02826 typedef struct {
02831 VdpVideoSurface forward_reference;
02836 VdpVideoSurface backward_reference;
02837
02839 uint32_t slice_count;
02841 uint8_t picture_type;
02843 uint8_t frame_coding_mode;
02844
02846 uint8_t postprocflag;
02848 uint8_t pulldown;
02850 uint8_t interlace;
02852 uint8_t tfcntrflag;
02854 uint8_t finterpflag;
02856 uint8_t psf;
02858 uint8_t dquant;
02860 uint8_t panscan_flag;
02862 uint8_t refdist_flag;
02864 uint8_t quantizer;
02866 uint8_t extended_mv;
02868 uint8_t extended_dmv;
02870 uint8_t overlap;
02872 uint8_t vstransform;
02874 uint8_t loopfilter;
02876 uint8_t fastuvmc;
02878 uint8_t range_mapy_flag;
02880 uint8_t range_mapy;
02882 uint8_t range_mapuv_flag;
02884 uint8_t range_mapuv;
02885
02890 uint8_t multires;
02895 uint8_t syncmarker;
02902 uint8_t rangered;
02907 uint8_t maxbframes;
02908
02914 uint8_t deblockEnable;
02920 uint8_t pquant;
02921 } VdpPictureInfoVC1;
02922
02930 typedef struct {
02935 VdpVideoSurface forward_reference;
02940 VdpVideoSurface backward_reference;
02941
02943 int32_t trd[2];
02945 int32_t trb[2];
02947 uint16_t vop_time_increment_resolution;
02949 uint8_t vop_coding_type;
02951 uint8_t vop_fcode_forward;
02953 uint8_t vop_fcode_backward;
02955 uint8_t resync_marker_disable;
02957 uint8_t interlaced;
02959 uint8_t quant_type;
02961 uint8_t quarter_sample;
02963 uint8_t short_video_header;
02965 uint8_t rounding_control;
02967 uint8_t alternate_vertical_scan_flag;
02969 uint8_t top_field_first;
02971 uint8_t intra_quantizer_matrix[64];
02973 uint8_t non_intra_quantizer_matrix[64];
02974 } VdpPictureInfoMPEG4Part2;
02975
02982 typedef VdpPictureInfoMPEG4Part2 VdpPictureInfoDivX4;
02983
02990 typedef VdpPictureInfoMPEG4Part2 VdpPictureInfoDivX5;
02991
03010 typedef VdpStatus VdpDecoderRender(
03011 VdpDecoder decoder,
03012 VdpVideoSurface target,
03013 VdpPictureInfo const * picture_info,
03014 uint32_t bitstream_buffer_count,
03015 VdpBitstreamBuffer const * bitstream_buffers
03016 );
03017
03097 typedef uint32_t VdpVideoMixerFeature;
03098
03110 #define VDP_VIDEO_MIXER_FEATURE_DEINTERLACE_TEMPORAL (VdpVideoMixerFeature)0
03111
03123 #define VDP_VIDEO_MIXER_FEATURE_DEINTERLACE_TEMPORAL_SPATIAL (VdpVideoMixerFeature)1
03124
03132 #define VDP_VIDEO_MIXER_FEATURE_INVERSE_TELECINE (VdpVideoMixerFeature)2
03133
03140 #define VDP_VIDEO_MIXER_FEATURE_NOISE_REDUCTION (VdpVideoMixerFeature)3
03141
03148 #define VDP_VIDEO_MIXER_FEATURE_SHARPNESS (VdpVideoMixerFeature)4
03149
03161 #define VDP_VIDEO_MIXER_FEATURE_LUMA_KEY (VdpVideoMixerFeature)5
03162
03183 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1 (VdpVideoMixerFeature)11
03184
03190 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L2 (VdpVideoMixerFeature)12
03191
03197 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L3 (VdpVideoMixerFeature)13
03198
03204 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L4 (VdpVideoMixerFeature)14
03205
03211 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L5 (VdpVideoMixerFeature)15
03212
03218 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L6 (VdpVideoMixerFeature)16
03219
03225 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L7 (VdpVideoMixerFeature)17
03226
03232 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L8 (VdpVideoMixerFeature)18
03233
03239 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L9 (VdpVideoMixerFeature)19
03240
03253 typedef uint32_t VdpVideoMixerParameter;
03254
03267 #define VDP_VIDEO_MIXER_PARAMETER_VIDEO_SURFACE_WIDTH (VdpVideoMixerParameter)0
03268
03280 #define VDP_VIDEO_MIXER_PARAMETER_VIDEO_SURFACE_HEIGHT (VdpVideoMixerParameter)1
03281
03294 #define VDP_VIDEO_MIXER_PARAMETER_CHROMA_TYPE (VdpVideoMixerParameter)2
03295
03313 #define VDP_VIDEO_MIXER_PARAMETER_LAYERS (VdpVideoMixerParameter)3
03314
03327 typedef uint32_t VdpVideoMixerAttribute;
03328
03342 #define VDP_VIDEO_MIXER_ATTRIBUTE_BACKGROUND_COLOR (VdpVideoMixerAttribute)0
03343
03370 #define VDP_VIDEO_MIXER_ATTRIBUTE_CSC_MATRIX (VdpVideoMixerAttribute)1
03371
03383 #define VDP_VIDEO_MIXER_ATTRIBUTE_NOISE_REDUCTION_LEVEL (VdpVideoMixerAttribute)2
03384
03399 #define VDP_VIDEO_MIXER_ATTRIBUTE_SHARPNESS_LEVEL (VdpVideoMixerAttribute)3
03400
03411 #define VDP_VIDEO_MIXER_ATTRIBUTE_LUMA_KEY_MIN_LUMA (VdpVideoMixerAttribute)4
03412
03423 #define VDP_VIDEO_MIXER_ATTRIBUTE_LUMA_KEY_MAX_LUMA (VdpVideoMixerAttribute)5
03424
03438 #define VDP_VIDEO_MIXER_ATTRIBUTE_SKIP_CHROMA_DEINTERLACE (VdpVideoMixerAttribute)6
03439
03449 typedef VdpStatus VdpVideoMixerQueryFeatureSupport(
03450 VdpDevice device,
03451 VdpVideoMixerFeature feature,
03452
03453 VdpBool * is_supported
03454 );
03455
03466 typedef VdpStatus VdpVideoMixerQueryParameterSupport(
03467 VdpDevice device,
03468 VdpVideoMixerParameter parameter,
03469
03470 VdpBool * is_supported
03471 );
03472
03482 typedef VdpStatus VdpVideoMixerQueryAttributeSupport(
03483 VdpDevice device,
03484 VdpVideoMixerAttribute attribute,
03485
03486 VdpBool * is_supported
03487 );
03488
03499 typedef VdpStatus VdpVideoMixerQueryParameterValueRange(
03500 VdpDevice device,
03501 VdpVideoMixerParameter parameter,
03502
03503 void * min_value,
03504 void * max_value
03505 );
03506
03517 typedef VdpStatus VdpVideoMixerQueryAttributeValueRange(
03518 VdpDevice device,
03519 VdpVideoMixerAttribute attribute,
03520
03521 void * min_value,
03522 void * max_value
03523 );
03524
03528 typedef uint32_t VdpVideoMixer;
03529
03550 typedef VdpStatus VdpVideoMixerCreate(
03551 VdpDevice device,
03552
03553 uint32_t feature_count,
03554 VdpVideoMixerFeature const * features,
03555
03556 uint32_t parameter_count,
03557 VdpVideoMixerParameter const * parameters,
03558 void const * const * parameter_values,
03559
03560 VdpVideoMixer * mixer
03561 );
03562
03573 typedef VdpStatus VdpVideoMixerSetFeatureEnables(
03574 VdpVideoMixer mixer,
03575 uint32_t feature_count,
03576 VdpVideoMixerFeature const * features,
03577 VdpBool const * feature_enables
03578 );
03579
03592 typedef VdpStatus VdpVideoMixerSetAttributeValues(
03593 VdpVideoMixer mixer,
03594 uint32_t attribute_count,
03595 VdpVideoMixerAttribute const * attributes,
03596 void const * const * attribute_values
03597 );
03598
03610 typedef VdpStatus VdpVideoMixerGetFeatureSupport(
03611 VdpVideoMixer mixer,
03612 uint32_t feature_count,
03613 VdpVideoMixerFeature const * features,
03614
03615 VdpBool * feature_supports
03616 );
03617
03627 typedef VdpStatus VdpVideoMixerGetFeatureEnables(
03628 VdpVideoMixer mixer,
03629 uint32_t feature_count,
03630 VdpVideoMixerFeature const * features,
03631
03632 VdpBool * feature_enables
03633 );
03634
03647 typedef VdpStatus VdpVideoMixerGetParameterValues(
03648 VdpVideoMixer mixer,
03649 uint32_t parameter_count,
03650 VdpVideoMixerParameter const * parameters,
03651
03652 void * const * parameter_values
03653 );
03654
03667 typedef VdpStatus VdpVideoMixerGetAttributeValues(
03668 VdpVideoMixer mixer,
03669 uint32_t attribute_count,
03670 VdpVideoMixerAttribute const * attributes,
03671
03672 void * const * attribute_values
03673 );
03674
03680 typedef VdpStatus VdpVideoMixerDestroy(
03681 VdpVideoMixer mixer
03682 );
03683
03689 typedef enum {
03693 VDP_VIDEO_MIXER_PICTURE_STRUCTURE_TOP_FIELD,
03698 VDP_VIDEO_MIXER_PICTURE_STRUCTURE_BOTTOM_FIELD,
03702 VDP_VIDEO_MIXER_PICTURE_STRUCTURE_FRAME,
03703 } VdpVideoMixerPictureStructure;
03704
03705 #define VDP_LAYER_VERSION 0
03706
03711 typedef struct {
03715 uint32_t struct_version;
03719 VdpOutputSurface source_surface;
03724 VdpRect const * source_rect;
03733 VdpRect const * destination_rect;
03734 } VdpLayer;
03735
03802 typedef VdpStatus VdpVideoMixerRender(
03803 VdpVideoMixer mixer,
03804 VdpOutputSurface background_surface,
03805 VdpRect const * background_source_rect,
03806 VdpVideoMixerPictureStructure current_picture_structure,
03807 uint32_t video_surface_past_count,
03808 VdpVideoSurface const * video_surface_past,
03809 VdpVideoSurface video_surface_current,
03810 uint32_t video_surface_future_count,
03811 VdpVideoSurface const * video_surface_future,
03812 VdpRect const * video_source_rect,
03813 VdpOutputSurface destination_surface,
03814 VdpRect const * destination_rect,
03815 VdpRect const * destination_video_rect,
03816 uint32_t layer_count,
03817 VdpLayer const * layers
03818 );
03819
03871 typedef uint64_t VdpTime;
03872
03881 typedef uint32_t VdpPresentationQueueTarget;
03882
03888 typedef VdpStatus VdpPresentationQueueTargetDestroy(
03889 VdpPresentationQueueTarget presentation_queue_target
03890 );
03891
03896 typedef uint32_t VdpPresentationQueue;
03897
03909 typedef VdpStatus VdpPresentationQueueCreate(
03910 VdpDevice device,
03911 VdpPresentationQueueTarget presentation_queue_target,
03912
03913 VdpPresentationQueue * presentation_queue
03914 );
03915
03921 typedef VdpStatus VdpPresentationQueueDestroy(
03922 VdpPresentationQueue presentation_queue
03923 );
03924
03934 typedef VdpStatus VdpPresentationQueueSetBackgroundColor(
03935 VdpPresentationQueue presentation_queue,
03936 VdpColor * const background_color
03937 );
03938
03944 typedef VdpStatus VdpPresentationQueueGetBackgroundColor(
03945 VdpPresentationQueue presentation_queue,
03946 VdpColor * background_color
03947 );
03948
03956 typedef VdpStatus VdpPresentationQueueGetTime(
03957 VdpPresentationQueue presentation_queue,
03958
03959 VdpTime * current_time
03960 );
03961
03994 typedef VdpStatus VdpPresentationQueueDisplay(
03995 VdpPresentationQueue presentation_queue,
03996 VdpOutputSurface surface,
03997 uint32_t clip_width,
03998 uint32_t clip_height,
03999 VdpTime earliest_presentation_time
04000 );
04001
04016 typedef VdpStatus VdpPresentationQueueBlockUntilSurfaceIdle(
04017 VdpPresentationQueue presentation_queue,
04018 VdpOutputSurface surface,
04019
04020 VdpTime * first_presentation_time
04021 );
04022
04027 typedef enum {
04029 VDP_PRESENTATION_QUEUE_STATUS_IDLE,
04031 VDP_PRESENTATION_QUEUE_STATUS_QUEUED,
04033 VDP_PRESENTATION_QUEUE_STATUS_VISIBLE,
04034 } VdpPresentationQueueStatus;
04035
04047 typedef VdpStatus VdpPresentationQueueQuerySurfaceStatus(
04048 VdpPresentationQueue presentation_queue,
04049 VdpOutputSurface surface,
04050
04051 VdpPresentationQueueStatus * status,
04052 VdpTime * first_presentation_time
04053 );
04054
04109 typedef void VdpPreemptionCallback(
04110 VdpDevice device,
04111 void * context
04112 );
04113
04124 typedef VdpStatus VdpPreemptionCallbackRegister(
04125 VdpDevice device,
04126 VdpPreemptionCallback callback,
04127 void * context
04128 );
04129
04147 typedef uint32_t VdpFuncId;
04148
04150 #define VDP_FUNC_ID_GET_ERROR_STRING (VdpFuncId)0
04151
04152 #define VDP_FUNC_ID_GET_PROC_ADDRESS (VdpFuncId)1
04153
04154 #define VDP_FUNC_ID_GET_API_VERSION (VdpFuncId)2
04155
04156 #define VDP_FUNC_ID_GET_INFORMATION_STRING (VdpFuncId)4
04157
04158 #define VDP_FUNC_ID_DEVICE_DESTROY (VdpFuncId)5
04159
04160 #define VDP_FUNC_ID_GENERATE_CSC_MATRIX (VdpFuncId)6
04161
04162 #define VDP_FUNC_ID_VIDEO_SURFACE_QUERY_CAPABILITIES (VdpFuncId)7
04163
04164 #define VDP_FUNC_ID_VIDEO_SURFACE_QUERY_GET_PUT_BITS_Y_CB_CR_CAPABILITIES (VdpFuncId)8
04165
04166 #define VDP_FUNC_ID_VIDEO_SURFACE_CREATE (VdpFuncId)9
04167
04168 #define VDP_FUNC_ID_VIDEO_SURFACE_DESTROY (VdpFuncId)10
04169
04170 #define VDP_FUNC_ID_VIDEO_SURFACE_GET_PARAMETERS (VdpFuncId)11
04171
04172 #define VDP_FUNC_ID_VIDEO_SURFACE_GET_BITS_Y_CB_CR (VdpFuncId)12
04173
04174 #define VDP_FUNC_ID_VIDEO_SURFACE_PUT_BITS_Y_CB_CR (VdpFuncId)13
04175
04176 #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_CAPABILITIES (VdpFuncId)14
04177
04178 #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_GET_PUT_BITS_NATIVE_CAPABILITIES (VdpFuncId)15
04179
04180 #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_PUT_BITS_INDEXED_CAPABILITIES (VdpFuncId)16
04181
04182 #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_PUT_BITS_Y_CB_CR_CAPABILITIES (VdpFuncId)17
04183
04184 #define VDP_FUNC_ID_OUTPUT_SURFACE_CREATE (VdpFuncId)18
04185
04186 #define VDP_FUNC_ID_OUTPUT_SURFACE_DESTROY (VdpFuncId)19
04187
04188 #define VDP_FUNC_ID_OUTPUT_SURFACE_GET_PARAMETERS (VdpFuncId)20
04189
04190 #define VDP_FUNC_ID_OUTPUT_SURFACE_GET_BITS_NATIVE (VdpFuncId)21
04191
04192 #define VDP_FUNC_ID_OUTPUT_SURFACE_PUT_BITS_NATIVE (VdpFuncId)22
04193
04194 #define VDP_FUNC_ID_OUTPUT_SURFACE_PUT_BITS_INDEXED (VdpFuncId)23
04195
04196 #define VDP_FUNC_ID_OUTPUT_SURFACE_PUT_BITS_Y_CB_CR (VdpFuncId)24
04197
04198 #define VDP_FUNC_ID_BITMAP_SURFACE_QUERY_CAPABILITIES (VdpFuncId)25
04199
04200 #define VDP_FUNC_ID_BITMAP_SURFACE_CREATE (VdpFuncId)26
04201
04202 #define VDP_FUNC_ID_BITMAP_SURFACE_DESTROY (VdpFuncId)27
04203
04204 #define VDP_FUNC_ID_BITMAP_SURFACE_GET_PARAMETERS (VdpFuncId)28
04205
04206 #define VDP_FUNC_ID_BITMAP_SURFACE_PUT_BITS_NATIVE (VdpFuncId)29
04207
04208 #define VDP_FUNC_ID_OUTPUT_SURFACE_RENDER_OUTPUT_SURFACE (VdpFuncId)33
04209
04210 #define VDP_FUNC_ID_OUTPUT_SURFACE_RENDER_BITMAP_SURFACE (VdpFuncId)34
04211
04212 #define VDP_FUNC_ID_OUTPUT_SURFACE_RENDER_VIDEO_SURFACE_LUMA (VdpFuncId)35
04213
04214 #define VDP_FUNC_ID_DECODER_QUERY_CAPABILITIES (VdpFuncId)36
04215
04216 #define VDP_FUNC_ID_DECODER_CREATE (VdpFuncId)37
04217
04218 #define VDP_FUNC_ID_DECODER_DESTROY (VdpFuncId)38
04219
04220 #define VDP_FUNC_ID_DECODER_GET_PARAMETERS (VdpFuncId)39
04221
04222 #define VDP_FUNC_ID_DECODER_RENDER (VdpFuncId)40
04223
04224 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_FEATURE_SUPPORT (VdpFuncId)41
04225
04226 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_PARAMETER_SUPPORT (VdpFuncId)42
04227
04228 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_ATTRIBUTE_SUPPORT (VdpFuncId)43
04229
04230 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_PARAMETER_VALUE_RANGE (VdpFuncId)44
04231
04232 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_ATTRIBUTE_VALUE_RANGE (VdpFuncId)45
04233
04234 #define VDP_FUNC_ID_VIDEO_MIXER_CREATE (VdpFuncId)46
04235
04236 #define VDP_FUNC_ID_VIDEO_MIXER_SET_FEATURE_ENABLES (VdpFuncId)47
04237
04238 #define VDP_FUNC_ID_VIDEO_MIXER_SET_ATTRIBUTE_VALUES (VdpFuncId)48
04239
04240 #define VDP_FUNC_ID_VIDEO_MIXER_GET_FEATURE_SUPPORT (VdpFuncId)49
04241
04242 #define VDP_FUNC_ID_VIDEO_MIXER_GET_FEATURE_ENABLES (VdpFuncId)50
04243
04244 #define VDP_FUNC_ID_VIDEO_MIXER_GET_PARAMETER_VALUES (VdpFuncId)51
04245
04246 #define VDP_FUNC_ID_VIDEO_MIXER_GET_ATTRIBUTE_VALUES (VdpFuncId)52
04247
04248 #define VDP_FUNC_ID_VIDEO_MIXER_DESTROY (VdpFuncId)53
04249
04250 #define VDP_FUNC_ID_VIDEO_MIXER_RENDER (VdpFuncId)54
04251
04252 #define VDP_FUNC_ID_PRESENTATION_QUEUE_TARGET_DESTROY (VdpFuncId)55
04253
04254 #define VDP_FUNC_ID_PRESENTATION_QUEUE_CREATE (VdpFuncId)56
04255
04256 #define VDP_FUNC_ID_PRESENTATION_QUEUE_DESTROY (VdpFuncId)57
04257
04258 #define VDP_FUNC_ID_PRESENTATION_QUEUE_SET_BACKGROUND_COLOR (VdpFuncId)58
04259
04260 #define VDP_FUNC_ID_PRESENTATION_QUEUE_GET_BACKGROUND_COLOR (VdpFuncId)59
04261
04262 #define VDP_FUNC_ID_PRESENTATION_QUEUE_GET_TIME (VdpFuncId)62
04263
04264 #define VDP_FUNC_ID_PRESENTATION_QUEUE_DISPLAY (VdpFuncId)63
04265
04266 #define VDP_FUNC_ID_PRESENTATION_QUEUE_BLOCK_UNTIL_SURFACE_IDLE (VdpFuncId)64
04267
04268 #define VDP_FUNC_ID_PRESENTATION_QUEUE_QUERY_SURFACE_STATUS (VdpFuncId)65
04269
04270 #define VDP_FUNC_ID_PREEMPTION_CALLBACK_REGISTER (VdpFuncId)66
04271
04272 #define VDP_FUNC_ID_BASE_WINSYS 0x1000
04273
04283 typedef VdpStatus VdpGetProcAddress(
04284 VdpDevice device,
04285 VdpFuncId function_id,
04286
04287 void * * function_pointer
04288 );
04289
04292
04300 #ifdef __cplusplus
04301 }
04302 #endif
04303
04304 #endif
04305