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
01242 #define VDPAU_VERSION 0
01243
01249 typedef VdpStatus VdpGetApiVersion(
01250
01251 uint32_t * api_version
01252 );
01253
01271 typedef VdpStatus VdpGetInformationString(
01272
01273 char const * * information_string
01274 );
01275
01295 typedef uint32_t VdpDevice;
01296
01302 typedef VdpStatus VdpDeviceDestroy(
01303 VdpDevice device
01304 );
01305
01344 typedef float VdpCSCMatrix[3][4];
01345
01346 #define VDP_PROCAMP_VERSION 0
01347
01356 typedef struct {
01360 uint32_t struct_version;
01365 float brightness;
01370 float contrast;
01375 float saturation;
01380 float hue;
01381 } VdpProcamp;
01382
01389 typedef uint32_t VdpColorStandard;
01390
01392 #define VDP_COLOR_STANDARD_ITUR_BT_601 (VdpColorStandard)0
01393
01394 #define VDP_COLOR_STANDARD_ITUR_BT_709 (VdpColorStandard)1
01395
01396 #define VDP_COLOR_STANDARD_SMPTE_240M (VdpColorStandard)2
01397
01406 typedef VdpStatus VdpGenerateCSCMatrix(
01407 VdpProcamp * procamp,
01408 VdpColorStandard standard,
01409
01410 VdpCSCMatrix * csc_matrix
01411 );
01412
01457 typedef VdpStatus VdpVideoSurfaceQueryCapabilities(
01458 VdpDevice device,
01459 VdpChromaType surface_chroma_type,
01460
01461 VdpBool * is_supported,
01462 uint32_t * max_width,
01463 uint32_t * max_height
01464 );
01465
01477 typedef VdpStatus VdpVideoSurfaceQueryGetPutBitsYCbCrCapabilities(
01478 VdpDevice device,
01479 VdpChromaType surface_chroma_type,
01480 VdpYCbCrFormat bits_ycbcr_format,
01481
01482 VdpBool * is_supported
01483 );
01484
01489 typedef uint32_t VdpVideoSurface;
01490
01536 typedef VdpStatus VdpVideoSurfaceCreate(
01537 VdpDevice device,
01538 VdpChromaType chroma_type,
01539 uint32_t width,
01540 uint32_t height,
01541
01542 VdpVideoSurface * surface
01543 );
01544
01550 typedef VdpStatus VdpVideoSurfaceDestroy(
01551 VdpVideoSurface surface
01552 );
01553
01563 typedef VdpStatus VdpVideoSurfaceGetParameters(
01564 VdpVideoSurface surface,
01565
01566 VdpChromaType * chroma_type,
01567 uint32_t * width,
01568 uint32_t * height
01569 );
01570
01589 typedef VdpStatus VdpVideoSurfaceGetBitsYCbCr(
01590 VdpVideoSurface surface,
01591 VdpYCbCrFormat destination_ycbcr_format,
01592 void * const * destination_data,
01593 uint32_t const * destination_pitches
01594 );
01595
01614 typedef VdpStatus VdpVideoSurfacePutBitsYCbCr(
01615 VdpVideoSurface surface,
01616 VdpYCbCrFormat source_ycbcr_format,
01617 void const * const * source_data,
01618 uint32_t const * source_pitches
01619 );
01620
01656 typedef uint32_t VdpColorTableFormat;
01657
01669 #define VDP_COLOR_TABLE_FORMAT_B8G8R8X8 (VdpColorTableFormat)0
01670
01684 typedef VdpStatus VdpOutputSurfaceQueryCapabilities(
01685 VdpDevice device,
01686 VdpRGBAFormat surface_rgba_format,
01687
01688 VdpBool * is_supported,
01689 uint32_t * max_width,
01690 uint32_t * max_height
01691 );
01692
01703 typedef VdpStatus VdpOutputSurfaceQueryGetPutBitsNativeCapabilities(
01704 VdpDevice device,
01705 VdpRGBAFormat surface_rgba_format,
01706
01707 VdpBool * is_supported
01708 );
01709
01724 typedef VdpStatus VdpOutputSurfaceQueryPutBitsIndexedCapabilities(
01725 VdpDevice device,
01726 VdpRGBAFormat surface_rgba_format,
01727 VdpIndexedFormat bits_indexed_format,
01728 VdpColorTableFormat color_table_format,
01729
01730 VdpBool * is_supported
01731 );
01732
01745 typedef VdpStatus VdpOutputSurfaceQueryPutBitsYCbCrCapabilities(
01746 VdpDevice device,
01747 VdpRGBAFormat surface_rgba_format,
01748 VdpYCbCrFormat bits_ycbcr_format,
01749
01750 VdpBool * is_supported
01751 );
01752
01757 typedef uint32_t VdpOutputSurface;
01758
01771 typedef VdpStatus VdpOutputSurfaceCreate(
01772 VdpDevice device,
01773 VdpRGBAFormat rgba_format,
01774 uint32_t width,
01775 uint32_t height,
01776
01777 VdpOutputSurface * surface
01778 );
01779
01785 typedef VdpStatus VdpOutputSurfaceDestroy(
01786 VdpOutputSurface surface
01787 );
01788
01798 typedef VdpStatus VdpOutputSurfaceGetParameters(
01799 VdpOutputSurface surface,
01800
01801 VdpRGBAFormat * rgba_format,
01802 uint32_t * width,
01803 uint32_t * height
01804 );
01805
01825 typedef VdpStatus VdpOutputSurfaceGetBitsNative(
01826 VdpOutputSurface surface,
01827 VdpRect const * source_rect,
01828 void * const * destination_data,
01829 uint32_t const * destination_pitches
01830 );
01831
01851 typedef VdpStatus VdpOutputSurfacePutBitsNative(
01852 VdpOutputSurface surface,
01853 void const * const * source_data,
01854 uint32_t const * source_pitches,
01855 VdpRect const * destination_rect
01856 );
01857
01883 typedef VdpStatus VdpOutputSurfacePutBitsIndexed(
01884 VdpOutputSurface surface,
01885 VdpIndexedFormat source_indexed_format,
01886 void const * const * source_data,
01887 uint32_t const * source_pitch,
01888 VdpRect const * destination_rect,
01889 VdpColorTableFormat color_table_format,
01890 void const * color_table
01891 );
01892
01918 typedef VdpStatus VdpOutputSurfacePutBitsYCbCr(
01919 VdpOutputSurface surface,
01920 VdpYCbCrFormat source_ycbcr_format,
01921 void const * const * source_data,
01922 uint32_t const * source_pitches,
01923 VdpRect const * destination_rect,
01924 VdpCSCMatrix const * csc_matrix
01925 );
01926
01978 typedef VdpStatus VdpBitmapSurfaceQueryCapabilities(
01979 VdpDevice device,
01980 VdpRGBAFormat surface_rgba_format,
01981
01982 VdpBool * is_supported,
01983 uint32_t * max_width,
01984 uint32_t * max_height
01985 );
01986
01991 typedef uint32_t VdpBitmapSurface;
01992
02010 typedef VdpStatus VdpBitmapSurfaceCreate(
02011 VdpDevice device,
02012 VdpRGBAFormat rgba_format,
02013 uint32_t width,
02014 uint32_t height,
02015 VdpBool frequently_accessed,
02016
02017 VdpBitmapSurface * surface
02018 );
02019
02025 typedef VdpStatus VdpBitmapSurfaceDestroy(
02026 VdpBitmapSurface surface
02027 );
02028
02040 typedef VdpStatus VdpBitmapSurfaceGetParameters(
02041 VdpBitmapSurface surface,
02042
02043 VdpRGBAFormat * rgba_format,
02044 uint32_t * width,
02045 uint32_t * height,
02046 VdpBool * frequently_accessed
02047 );
02048
02068 typedef VdpStatus VdpBitmapSurfacePutBitsNative(
02069 VdpBitmapSurface surface,
02070 void const * const * source_data,
02071 uint32_t const * source_pitches,
02072 VdpRect const * destination_rect
02073 );
02074
02092 typedef enum {
02093 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ZERO = 0,
02094 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE = 1,
02095 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_SRC_COLOR = 2,
02096 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
02097 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_SRC_ALPHA = 4,
02098 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 5,
02099 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_DST_ALPHA = 6,
02100 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 7,
02101 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_DST_COLOR = 8,
02102 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 9,
02103 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_SRC_ALPHA_SATURATE = 10,
02104 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_CONSTANT_COLOR = 11,
02105 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 12,
02106 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_CONSTANT_ALPHA = 13,
02107 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 14,
02108 } VdpOutputSurfaceRenderBlendFactor;
02109
02114 typedef enum {
02115 VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_SUBTRACT = 0,
02116 VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_REVERSE_SUBTRACT = 1,
02117 VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_ADD = 2,
02118 VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_MIN = 3,
02119 VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_MAX = 4,
02120 } VdpOutputSurfaceRenderBlendEquation;
02121
02122 #define VDP_OUTPUT_SURFACE_RENDER_BLEND_STATE_VERSION 0
02123
02127 typedef struct {
02131 uint32_t struct_version;
02132 VdpOutputSurfaceRenderBlendFactor blend_factor_source_color;
02133 VdpOutputSurfaceRenderBlendFactor blend_factor_destination_color;
02134 VdpOutputSurfaceRenderBlendFactor blend_factor_source_alpha;
02135 VdpOutputSurfaceRenderBlendFactor blend_factor_destination_alpha;
02136 VdpOutputSurfaceRenderBlendEquation blend_equation_color;
02137 VdpOutputSurfaceRenderBlendEquation blend_equation_alpha;
02138 VdpColor blend_constant;
02139 } VdpOutputSurfaceRenderBlendState;
02140
02145 #define VDP_OUTPUT_SURFACE_RENDER_ROTATE_0 0
02146
02152 #define VDP_OUTPUT_SURFACE_RENDER_ROTATE_90 1
02153
02159 #define VDP_OUTPUT_SURFACE_RENDER_ROTATE_180 2
02160
02166 #define VDP_OUTPUT_SURFACE_RENDER_ROTATE_270 3
02167
02175 #define VDP_OUTPUT_SURFACE_RENDER_COLOR_PER_VERTEX (1 << 2)
02176
02254 typedef VdpStatus VdpOutputSurfaceRenderOutputSurface(
02255 VdpOutputSurface destination_surface,
02256 VdpRect const * destination_rect,
02257 VdpOutputSurface source_surface,
02258 VdpRect const * source_rect,
02259 VdpColor const * colors,
02260 VdpOutputSurfaceRenderBlendState const * blend_state,
02261 uint32_t flags
02262 );
02263
02341 typedef VdpStatus VdpOutputSurfaceRenderBitmapSurface(
02342 VdpOutputSurface destination_surface,
02343 VdpRect const * destination_rect,
02344 VdpBitmapSurface source_surface,
02345 VdpRect const * source_rect,
02346 VdpColor const * colors,
02347 VdpOutputSurfaceRenderBlendState const * blend_state,
02348 uint32_t flags
02349 );
02350
02371 typedef uint32_t VdpDecoderProfile;
02372
02374 #define VDP_DECODER_PROFILE_MPEG1 (VdpDecoderProfile)0
02375
02376 #define VDP_DECODER_PROFILE_MPEG2_SIMPLE (VdpDecoderProfile)1
02377
02378 #define VDP_DECODER_PROFILE_MPEG2_MAIN (VdpDecoderProfile)2
02379
02381 #define VDP_DECODER_PROFILE_H264_BASELINE (VdpDecoderProfile)6
02382
02383 #define VDP_DECODER_PROFILE_H264_MAIN (VdpDecoderProfile)7
02384
02385 #define VDP_DECODER_PROFILE_H264_HIGH (VdpDecoderProfile)8
02386
02387 #define VDP_DECODER_PROFILE_VC1_SIMPLE (VdpDecoderProfile)9
02388
02389 #define VDP_DECODER_PROFILE_VC1_MAIN (VdpDecoderProfile)10
02390
02391 #define VDP_DECODER_PROFILE_VC1_ADVANCED (VdpDecoderProfile)11
02392
02393 #define VDP_DECODER_PROFILE_MPEG4_PART2_SP (VdpDecoderProfile)12
02394
02395 #define VDP_DECODER_PROFILE_MPEG4_PART2_ASP (VdpDecoderProfile)13
02396
02397 #define VDP_DECODER_PROFILE_DIVX4_QMOBILE (VdpDecoderProfile)14
02398
02399 #define VDP_DECODER_PROFILE_DIVX4_MOBILE (VdpDecoderProfile)15
02400
02401 #define VDP_DECODER_PROFILE_DIVX4_HOME_THEATER (VdpDecoderProfile)16
02402
02403 #define VDP_DECODER_PROFILE_DIVX4_HD_1080P (VdpDecoderProfile)17
02404
02405 #define VDP_DECODER_PROFILE_DIVX5_QMOBILE (VdpDecoderProfile)18
02406
02407 #define VDP_DECODER_PROFILE_DIVX5_MOBILE (VdpDecoderProfile)19
02408
02409 #define VDP_DECODER_PROFILE_DIVX5_HOME_THEATER (VdpDecoderProfile)20
02410
02411 #define VDP_DECODER_PROFILE_DIVX5_HD_1080P (VdpDecoderProfile)21
02412
02414 #define VDP_DECODER_LEVEL_MPEG1_NA 0
02415
02417 #define VDP_DECODER_LEVEL_MPEG2_LL 0
02418
02419 #define VDP_DECODER_LEVEL_MPEG2_ML 1
02420
02421 #define VDP_DECODER_LEVEL_MPEG2_HL14 2
02422
02423 #define VDP_DECODER_LEVEL_MPEG2_HL 3
02424
02426 #define VDP_DECODER_LEVEL_H264_1 10
02427
02428 #define VDP_DECODER_LEVEL_H264_1b 9
02429
02430 #define VDP_DECODER_LEVEL_H264_1_1 11
02431
02432 #define VDP_DECODER_LEVEL_H264_1_2 12
02433
02434 #define VDP_DECODER_LEVEL_H264_1_3 13
02435
02436 #define VDP_DECODER_LEVEL_H264_2 20
02437
02438 #define VDP_DECODER_LEVEL_H264_2_1 21
02439
02440 #define VDP_DECODER_LEVEL_H264_2_2 22
02441
02442 #define VDP_DECODER_LEVEL_H264_3 30
02443
02444 #define VDP_DECODER_LEVEL_H264_3_1 31
02445
02446 #define VDP_DECODER_LEVEL_H264_3_2 32
02447
02448 #define VDP_DECODER_LEVEL_H264_4 40
02449
02450 #define VDP_DECODER_LEVEL_H264_4_1 41
02451
02452 #define VDP_DECODER_LEVEL_H264_4_2 42
02453
02454 #define VDP_DECODER_LEVEL_H264_5 50
02455
02456 #define VDP_DECODER_LEVEL_H264_5_1 51
02457
02459 #define VDP_DECODER_LEVEL_VC1_SIMPLE_LOW 0
02460
02461 #define VDP_DECODER_LEVEL_VC1_SIMPLE_MEDIUM 1
02462
02464 #define VDP_DECODER_LEVEL_VC1_MAIN_LOW 0
02465
02466 #define VDP_DECODER_LEVEL_VC1_MAIN_MEDIUM 1
02467
02468 #define VDP_DECODER_LEVEL_VC1_MAIN_HIGH 2
02469
02471 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L0 0
02472
02473 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L1 1
02474
02475 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L2 2
02476
02477 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L3 3
02478
02479 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L4 4
02480
02482 #define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L0 0
02483
02484 #define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L1 1
02485
02486 #define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L2 2
02487
02488 #define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L3 3
02489
02491 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L0 0
02492
02493 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L1 1
02494
02495 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L2 2
02496
02497 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L3 3
02498
02499 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L4 4
02500
02501 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L5 5
02502
02504 #define VDP_DECODER_LEVEL_DIVX_NA 0
02505
02524 typedef VdpStatus VdpDecoderQueryCapabilities(
02525 VdpDevice device,
02526 VdpDecoderProfile profile,
02527
02528 VdpBool * is_supported,
02529 uint32_t * max_level,
02530 uint32_t * max_macroblocks,
02531 uint32_t * max_width,
02532 uint32_t * max_height
02533 );
02534
02538 typedef uint32_t VdpDecoder;
02539
02556 typedef VdpStatus VdpDecoderCreate(
02557 VdpDevice device,
02558 VdpDecoderProfile profile,
02559 uint32_t width,
02560 uint32_t height,
02561 uint32_t max_references,
02562
02563 VdpDecoder * decoder
02564 );
02565
02571 typedef VdpStatus VdpDecoderDestroy(
02572 VdpDecoder decoder
02573 );
02574
02587 typedef VdpStatus VdpDecoderGetParameters(
02588 VdpDecoder decoder,
02589
02590 VdpDecoderProfile * profile,
02591 uint32_t * width,
02592 uint32_t * height
02593 );
02594
02595 #define VDP_BITSTREAM_BUFFER_VERSION 0
02596
02601 typedef struct {
02605 uint32_t struct_version;
02607 void const * bitstream;
02609 uint32_t bitstream_bytes;
02610 } VdpBitstreamBuffer;
02611
02622 typedef void * VdpPictureInfo;
02623
02632 typedef struct {
02637 VdpVideoSurface forward_reference;
02642 VdpVideoSurface backward_reference;
02644 uint32_t slice_count;
02645
02647 uint8_t picture_structure;
02649 uint8_t picture_coding_type;
02651 uint8_t intra_dc_precision;
02653 uint8_t frame_pred_frame_dct;
02655 uint8_t concealment_motion_vectors;
02657 uint8_t intra_vlc_format;
02659 uint8_t alternate_scan;
02661 uint8_t q_scale_type;
02663 uint8_t top_field_first;
02665 uint8_t full_pel_forward_vector;
02667 uint8_t full_pel_backward_vector;
02672 uint8_t f_code[2][2];
02674 uint8_t intra_quantizer_matrix[64];
02676 uint8_t non_intra_quantizer_matrix[64];
02677 } VdpPictureInfoMPEG1Or2;
02678
02686 typedef struct {
02691 VdpVideoSurface surface;
02693 VdpBool is_long_term;
02698 VdpBool top_is_reference;
02703 VdpBool bottom_is_reference;
02705 int32_t field_order_cnt[2];
02711 uint16_t frame_idx;
02712 } VdpReferenceFrameH264;
02713
02732 typedef struct {
02734 uint32_t slice_count;
02736 int32_t field_order_cnt[2];
02738 VdpBool is_reference;
02739
02741 uint16_t frame_num;
02743 uint8_t field_pic_flag;
02745 uint8_t bottom_field_flag;
02747 uint8_t num_ref_frames;
02749 uint8_t mb_adaptive_frame_field_flag;
02751 uint8_t constrained_intra_pred_flag;
02753 uint8_t weighted_pred_flag;
02755 uint8_t weighted_bipred_idc;
02757 uint8_t frame_mbs_only_flag;
02759 uint8_t transform_8x8_mode_flag;
02761 int8_t chroma_qp_index_offset;
02763 int8_t second_chroma_qp_index_offset;
02765 int8_t pic_init_qp_minus26;
02767 uint8_t num_ref_idx_l0_active_minus1;
02769 uint8_t num_ref_idx_l1_active_minus1;
02771 uint8_t log2_max_frame_num_minus4;
02773 uint8_t pic_order_cnt_type;
02775 uint8_t log2_max_pic_order_cnt_lsb_minus4;
02777 uint8_t delta_pic_order_always_zero_flag;
02779 uint8_t direct_8x8_inference_flag;
02781 uint8_t entropy_coding_mode_flag;
02783 uint8_t pic_order_present_flag;
02785 uint8_t deblocking_filter_control_present_flag;
02787 uint8_t redundant_pic_cnt_present_flag;
02788
02790 uint8_t scaling_lists_4x4[6][16];
02792 uint8_t scaling_lists_8x8[2][64];
02793
02795 VdpReferenceFrameH264 referenceFrames[16];
02796 } VdpPictureInfoH264;
02797
02805 typedef struct {
02810 VdpVideoSurface forward_reference;
02815 VdpVideoSurface backward_reference;
02816
02818 uint32_t slice_count;
02820 uint8_t picture_type;
02822 uint8_t frame_coding_mode;
02823
02825 uint8_t postprocflag;
02827 uint8_t pulldown;
02829 uint8_t interlace;
02831 uint8_t tfcntrflag;
02833 uint8_t finterpflag;
02835 uint8_t psf;
02837 uint8_t dquant;
02839 uint8_t panscan_flag;
02841 uint8_t refdist_flag;
02843 uint8_t quantizer;
02845 uint8_t extended_mv;
02847 uint8_t extended_dmv;
02849 uint8_t overlap;
02851 uint8_t vstransform;
02853 uint8_t loopfilter;
02855 uint8_t fastuvmc;
02857 uint8_t range_mapy_flag;
02859 uint8_t range_mapy;
02861 uint8_t range_mapuv_flag;
02863 uint8_t range_mapuv;
02864
02869 uint8_t multires;
02874 uint8_t syncmarker;
02881 uint8_t rangered;
02886 uint8_t maxbframes;
02887
02893 uint8_t deblockEnable;
02899 uint8_t pquant;
02900 } VdpPictureInfoVC1;
02901
02909 typedef struct {
02914 VdpVideoSurface forward_reference;
02919 VdpVideoSurface backward_reference;
02920
02922 int32_t trd[2];
02924 int32_t trb[2];
02926 uint16_t vop_time_increment_resolution;
02928 uint8_t vop_coding_type;
02930 uint8_t vop_fcode_forward;
02932 uint8_t vop_fcode_backward;
02934 uint8_t resync_marker_disable;
02936 uint8_t interlaced;
02938 uint8_t quant_type;
02940 uint8_t quarter_sample;
02942 uint8_t short_video_header;
02944 uint8_t rounding_control;
02946 uint8_t alternate_vertical_scan_flag;
02948 uint8_t top_field_first;
02950 uint8_t intra_quantizer_matrix[64];
02952 uint8_t non_intra_quantizer_matrix[64];
02953 } VdpPictureInfoMPEG4Part2;
02954
02961 typedef VdpPictureInfoMPEG4Part2 VdpPictureInfoDivX4;
02962
02969 typedef VdpPictureInfoMPEG4Part2 VdpPictureInfoDivX5;
02970
02989 typedef VdpStatus VdpDecoderRender(
02990 VdpDecoder decoder,
02991 VdpVideoSurface target,
02992 VdpPictureInfo const * picture_info,
02993 uint32_t bitstream_buffer_count,
02994 VdpBitstreamBuffer const * bitstream_buffers
02995 );
02996
03076 typedef uint32_t VdpVideoMixerFeature;
03077
03089 #define VDP_VIDEO_MIXER_FEATURE_DEINTERLACE_TEMPORAL (VdpVideoMixerFeature)0
03090
03102 #define VDP_VIDEO_MIXER_FEATURE_DEINTERLACE_TEMPORAL_SPATIAL (VdpVideoMixerFeature)1
03103
03111 #define VDP_VIDEO_MIXER_FEATURE_INVERSE_TELECINE (VdpVideoMixerFeature)2
03112
03119 #define VDP_VIDEO_MIXER_FEATURE_NOISE_REDUCTION (VdpVideoMixerFeature)3
03120
03127 #define VDP_VIDEO_MIXER_FEATURE_SHARPNESS (VdpVideoMixerFeature)4
03128
03140 #define VDP_VIDEO_MIXER_FEATURE_LUMA_KEY (VdpVideoMixerFeature)5
03141
03162 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1 (VdpVideoMixerFeature)11
03163
03169 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L2 (VdpVideoMixerFeature)12
03170
03176 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L3 (VdpVideoMixerFeature)13
03177
03183 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L4 (VdpVideoMixerFeature)14
03184
03190 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L5 (VdpVideoMixerFeature)15
03191
03197 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L6 (VdpVideoMixerFeature)16
03198
03204 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L7 (VdpVideoMixerFeature)17
03205
03211 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L8 (VdpVideoMixerFeature)18
03212
03218 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L9 (VdpVideoMixerFeature)19
03219
03232 typedef uint32_t VdpVideoMixerParameter;
03233
03246 #define VDP_VIDEO_MIXER_PARAMETER_VIDEO_SURFACE_WIDTH (VdpVideoMixerParameter)0
03247
03259 #define VDP_VIDEO_MIXER_PARAMETER_VIDEO_SURFACE_HEIGHT (VdpVideoMixerParameter)1
03260
03273 #define VDP_VIDEO_MIXER_PARAMETER_CHROMA_TYPE (VdpVideoMixerParameter)2
03274
03292 #define VDP_VIDEO_MIXER_PARAMETER_LAYERS (VdpVideoMixerParameter)3
03293
03306 typedef uint32_t VdpVideoMixerAttribute;
03307
03321 #define VDP_VIDEO_MIXER_ATTRIBUTE_BACKGROUND_COLOR (VdpVideoMixerAttribute)0
03322
03349 #define VDP_VIDEO_MIXER_ATTRIBUTE_CSC_MATRIX (VdpVideoMixerAttribute)1
03350
03362 #define VDP_VIDEO_MIXER_ATTRIBUTE_NOISE_REDUCTION_LEVEL (VdpVideoMixerAttribute)2
03363
03378 #define VDP_VIDEO_MIXER_ATTRIBUTE_SHARPNESS_LEVEL (VdpVideoMixerAttribute)3
03379
03390 #define VDP_VIDEO_MIXER_ATTRIBUTE_LUMA_KEY_MIN_LUMA (VdpVideoMixerAttribute)4
03391
03402 #define VDP_VIDEO_MIXER_ATTRIBUTE_LUMA_KEY_MAX_LUMA (VdpVideoMixerAttribute)5
03403
03417 #define VDP_VIDEO_MIXER_ATTRIBUTE_SKIP_CHROMA_DEINTERLACE (VdpVideoMixerAttribute)6
03418
03428 typedef VdpStatus VdpVideoMixerQueryFeatureSupport(
03429 VdpDevice device,
03430 VdpVideoMixerFeature feature,
03431
03432 VdpBool * is_supported
03433 );
03434
03445 typedef VdpStatus VdpVideoMixerQueryParameterSupport(
03446 VdpDevice device,
03447 VdpVideoMixerParameter parameter,
03448
03449 VdpBool * is_supported
03450 );
03451
03461 typedef VdpStatus VdpVideoMixerQueryAttributeSupport(
03462 VdpDevice device,
03463 VdpVideoMixerAttribute attribute,
03464
03465 VdpBool * is_supported
03466 );
03467
03478 typedef VdpStatus VdpVideoMixerQueryParameterValueRange(
03479 VdpDevice device,
03480 VdpVideoMixerParameter parameter,
03481
03482 void * min_value,
03483 void * max_value
03484 );
03485
03496 typedef VdpStatus VdpVideoMixerQueryAttributeValueRange(
03497 VdpDevice device,
03498 VdpVideoMixerAttribute attribute,
03499
03500 void * min_value,
03501 void * max_value
03502 );
03503
03507 typedef uint32_t VdpVideoMixer;
03508
03529 typedef VdpStatus VdpVideoMixerCreate(
03530 VdpDevice device,
03531
03532 uint32_t feature_count,
03533 VdpVideoMixerFeature const * features,
03534
03535 uint32_t parameter_count,
03536 VdpVideoMixerParameter const * parameters,
03537 void const * const * parameter_values,
03538
03539 VdpVideoMixer * mixer
03540 );
03541
03552 typedef VdpStatus VdpVideoMixerSetFeatureEnables(
03553 VdpVideoMixer mixer,
03554 uint32_t feature_count,
03555 VdpVideoMixerFeature const * features,
03556 VdpBool const * feature_enables
03557 );
03558
03571 typedef VdpStatus VdpVideoMixerSetAttributeValues(
03572 VdpVideoMixer mixer,
03573 uint32_t attribute_count,
03574 VdpVideoMixerAttribute const * attributes,
03575 void const * const * attribute_values
03576 );
03577
03589 typedef VdpStatus VdpVideoMixerGetFeatureSupport(
03590 VdpVideoMixer mixer,
03591 uint32_t feature_count,
03592 VdpVideoMixerFeature const * features,
03593
03594 VdpBool * feature_supports
03595 );
03596
03606 typedef VdpStatus VdpVideoMixerGetFeatureEnables(
03607 VdpVideoMixer mixer,
03608 uint32_t feature_count,
03609 VdpVideoMixerFeature const * features,
03610
03611 VdpBool * feature_enables
03612 );
03613
03626 typedef VdpStatus VdpVideoMixerGetParameterValues(
03627 VdpVideoMixer mixer,
03628 uint32_t parameter_count,
03629 VdpVideoMixerParameter const * parameters,
03630
03631 void * const * parameter_values
03632 );
03633
03646 typedef VdpStatus VdpVideoMixerGetAttributeValues(
03647 VdpVideoMixer mixer,
03648 uint32_t attribute_count,
03649 VdpVideoMixerAttribute const * attributes,
03650
03651 void * const * attribute_values
03652 );
03653
03659 typedef VdpStatus VdpVideoMixerDestroy(
03660 VdpVideoMixer mixer
03661 );
03662
03668 typedef enum {
03672 VDP_VIDEO_MIXER_PICTURE_STRUCTURE_TOP_FIELD,
03677 VDP_VIDEO_MIXER_PICTURE_STRUCTURE_BOTTOM_FIELD,
03681 VDP_VIDEO_MIXER_PICTURE_STRUCTURE_FRAME,
03682 } VdpVideoMixerPictureStructure;
03683
03684 #define VDP_LAYER_VERSION 0
03685
03690 typedef struct {
03694 uint32_t struct_version;
03698 VdpOutputSurface source_surface;
03703 VdpRect const * source_rect;
03712 VdpRect const * destination_rect;
03713 } VdpLayer;
03714
03778 typedef VdpStatus VdpVideoMixerRender(
03779 VdpVideoMixer mixer,
03780 VdpOutputSurface background_surface,
03781 VdpRect const * background_source_rect,
03782 VdpVideoMixerPictureStructure current_picture_structure,
03783 uint32_t video_surface_past_count,
03784 VdpVideoSurface const * video_surface_past,
03785 VdpVideoSurface video_surface_current,
03786 uint32_t video_surface_future_count,
03787 VdpVideoSurface const * video_surface_future,
03788 VdpRect const * video_source_rect,
03789 VdpOutputSurface destination_surface,
03790 VdpRect const * destination_rect,
03791 VdpRect const * destination_video_rect,
03792 uint32_t layer_count,
03793 VdpLayer const * layers
03794 );
03795
03847 typedef uint64_t VdpTime;
03848
03857 typedef uint32_t VdpPresentationQueueTarget;
03858
03864 typedef VdpStatus VdpPresentationQueueTargetDestroy(
03865 VdpPresentationQueueTarget presentation_queue_target
03866 );
03867
03872 typedef uint32_t VdpPresentationQueue;
03873
03885 typedef VdpStatus VdpPresentationQueueCreate(
03886 VdpDevice device,
03887 VdpPresentationQueueTarget presentation_queue_target,
03888
03889 VdpPresentationQueue * presentation_queue
03890 );
03891
03897 typedef VdpStatus VdpPresentationQueueDestroy(
03898 VdpPresentationQueue presentation_queue
03899 );
03900
03910 typedef VdpStatus VdpPresentationQueueSetBackgroundColor(
03911 VdpPresentationQueue presentation_queue,
03912 VdpColor * const background_color
03913 );
03914
03920 typedef VdpStatus VdpPresentationQueueGetBackgroundColor(
03921 VdpPresentationQueue presentation_queue,
03922 VdpColor * background_color
03923 );
03924
03932 typedef VdpStatus VdpPresentationQueueGetTime(
03933 VdpPresentationQueue presentation_queue,
03934
03935 VdpTime * current_time
03936 );
03937
03970 typedef VdpStatus VdpPresentationQueueDisplay(
03971 VdpPresentationQueue presentation_queue,
03972 VdpOutputSurface surface,
03973 uint32_t clip_width,
03974 uint32_t clip_height,
03975 VdpTime earliest_presentation_time
03976 );
03977
03992 typedef VdpStatus VdpPresentationQueueBlockUntilSurfaceIdle(
03993 VdpPresentationQueue presentation_queue,
03994 VdpOutputSurface surface,
03995
03996 VdpTime * first_presentation_time
03997 );
03998
04003 typedef enum {
04005 VDP_PRESENTATION_QUEUE_STATUS_IDLE,
04007 VDP_PRESENTATION_QUEUE_STATUS_QUEUED,
04009 VDP_PRESENTATION_QUEUE_STATUS_VISIBLE,
04010 } VdpPresentationQueueStatus;
04011
04023 typedef VdpStatus VdpPresentationQueueQuerySurfaceStatus(
04024 VdpPresentationQueue presentation_queue,
04025 VdpOutputSurface surface,
04026
04027 VdpPresentationQueueStatus * status,
04028 VdpTime * first_presentation_time
04029 );
04030
04085 typedef void VdpPreemptionCallback(
04086 VdpDevice device,
04087 void * context
04088 );
04089
04100 typedef VdpStatus VdpPreemptionCallbackRegister(
04101 VdpDevice device,
04102 VdpPreemptionCallback callback,
04103 void * context
04104 );
04105
04123 typedef uint32_t VdpFuncId;
04124
04126 #define VDP_FUNC_ID_GET_ERROR_STRING (VdpFuncId)0
04127
04128 #define VDP_FUNC_ID_GET_PROC_ADDRESS (VdpFuncId)1
04129
04130 #define VDP_FUNC_ID_GET_API_VERSION (VdpFuncId)2
04131
04132 #define VDP_FUNC_ID_GET_INFORMATION_STRING (VdpFuncId)4
04133
04134 #define VDP_FUNC_ID_DEVICE_DESTROY (VdpFuncId)5
04135
04136 #define VDP_FUNC_ID_GENERATE_CSC_MATRIX (VdpFuncId)6
04137
04138 #define VDP_FUNC_ID_VIDEO_SURFACE_QUERY_CAPABILITIES (VdpFuncId)7
04139
04140 #define VDP_FUNC_ID_VIDEO_SURFACE_QUERY_GET_PUT_BITS_Y_CB_CR_CAPABILITIES (VdpFuncId)8
04141
04142 #define VDP_FUNC_ID_VIDEO_SURFACE_CREATE (VdpFuncId)9
04143
04144 #define VDP_FUNC_ID_VIDEO_SURFACE_DESTROY (VdpFuncId)10
04145
04146 #define VDP_FUNC_ID_VIDEO_SURFACE_GET_PARAMETERS (VdpFuncId)11
04147
04148 #define VDP_FUNC_ID_VIDEO_SURFACE_GET_BITS_Y_CB_CR (VdpFuncId)12
04149
04150 #define VDP_FUNC_ID_VIDEO_SURFACE_PUT_BITS_Y_CB_CR (VdpFuncId)13
04151
04152 #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_CAPABILITIES (VdpFuncId)14
04153
04154 #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_GET_PUT_BITS_NATIVE_CAPABILITIES (VdpFuncId)15
04155
04156 #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_PUT_BITS_INDEXED_CAPABILITIES (VdpFuncId)16
04157
04158 #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_PUT_BITS_Y_CB_CR_CAPABILITIES (VdpFuncId)17
04159
04160 #define VDP_FUNC_ID_OUTPUT_SURFACE_CREATE (VdpFuncId)18
04161
04162 #define VDP_FUNC_ID_OUTPUT_SURFACE_DESTROY (VdpFuncId)19
04163
04164 #define VDP_FUNC_ID_OUTPUT_SURFACE_GET_PARAMETERS (VdpFuncId)20
04165
04166 #define VDP_FUNC_ID_OUTPUT_SURFACE_GET_BITS_NATIVE (VdpFuncId)21
04167
04168 #define VDP_FUNC_ID_OUTPUT_SURFACE_PUT_BITS_NATIVE (VdpFuncId)22
04169
04170 #define VDP_FUNC_ID_OUTPUT_SURFACE_PUT_BITS_INDEXED (VdpFuncId)23
04171
04172 #define VDP_FUNC_ID_OUTPUT_SURFACE_PUT_BITS_Y_CB_CR (VdpFuncId)24
04173
04174 #define VDP_FUNC_ID_BITMAP_SURFACE_QUERY_CAPABILITIES (VdpFuncId)25
04175
04176 #define VDP_FUNC_ID_BITMAP_SURFACE_CREATE (VdpFuncId)26
04177
04178 #define VDP_FUNC_ID_BITMAP_SURFACE_DESTROY (VdpFuncId)27
04179
04180 #define VDP_FUNC_ID_BITMAP_SURFACE_GET_PARAMETERS (VdpFuncId)28
04181
04182 #define VDP_FUNC_ID_BITMAP_SURFACE_PUT_BITS_NATIVE (VdpFuncId)29
04183
04184 #define VDP_FUNC_ID_OUTPUT_SURFACE_RENDER_OUTPUT_SURFACE (VdpFuncId)33
04185
04186 #define VDP_FUNC_ID_OUTPUT_SURFACE_RENDER_BITMAP_SURFACE (VdpFuncId)34
04187
04188 #define VDP_FUNC_ID_OUTPUT_SURFACE_RENDER_VIDEO_SURFACE_LUMA (VdpFuncId)35
04189
04190 #define VDP_FUNC_ID_DECODER_QUERY_CAPABILITIES (VdpFuncId)36
04191
04192 #define VDP_FUNC_ID_DECODER_CREATE (VdpFuncId)37
04193
04194 #define VDP_FUNC_ID_DECODER_DESTROY (VdpFuncId)38
04195
04196 #define VDP_FUNC_ID_DECODER_GET_PARAMETERS (VdpFuncId)39
04197
04198 #define VDP_FUNC_ID_DECODER_RENDER (VdpFuncId)40
04199
04200 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_FEATURE_SUPPORT (VdpFuncId)41
04201
04202 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_PARAMETER_SUPPORT (VdpFuncId)42
04203
04204 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_ATTRIBUTE_SUPPORT (VdpFuncId)43
04205
04206 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_PARAMETER_VALUE_RANGE (VdpFuncId)44
04207
04208 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_ATTRIBUTE_VALUE_RANGE (VdpFuncId)45
04209
04210 #define VDP_FUNC_ID_VIDEO_MIXER_CREATE (VdpFuncId)46
04211
04212 #define VDP_FUNC_ID_VIDEO_MIXER_SET_FEATURE_ENABLES (VdpFuncId)47
04213
04214 #define VDP_FUNC_ID_VIDEO_MIXER_SET_ATTRIBUTE_VALUES (VdpFuncId)48
04215
04216 #define VDP_FUNC_ID_VIDEO_MIXER_GET_FEATURE_SUPPORT (VdpFuncId)49
04217
04218 #define VDP_FUNC_ID_VIDEO_MIXER_GET_FEATURE_ENABLES (VdpFuncId)50
04219
04220 #define VDP_FUNC_ID_VIDEO_MIXER_GET_PARAMETER_VALUES (VdpFuncId)51
04221
04222 #define VDP_FUNC_ID_VIDEO_MIXER_GET_ATTRIBUTE_VALUES (VdpFuncId)52
04223
04224 #define VDP_FUNC_ID_VIDEO_MIXER_DESTROY (VdpFuncId)53
04225
04226 #define VDP_FUNC_ID_VIDEO_MIXER_RENDER (VdpFuncId)54
04227
04228 #define VDP_FUNC_ID_PRESENTATION_QUEUE_TARGET_DESTROY (VdpFuncId)55
04229
04230 #define VDP_FUNC_ID_PRESENTATION_QUEUE_CREATE (VdpFuncId)56
04231
04232 #define VDP_FUNC_ID_PRESENTATION_QUEUE_DESTROY (VdpFuncId)57
04233
04234 #define VDP_FUNC_ID_PRESENTATION_QUEUE_SET_BACKGROUND_COLOR (VdpFuncId)58
04235
04236 #define VDP_FUNC_ID_PRESENTATION_QUEUE_GET_BACKGROUND_COLOR (VdpFuncId)59
04237
04238 #define VDP_FUNC_ID_PRESENTATION_QUEUE_GET_TIME (VdpFuncId)62
04239
04240 #define VDP_FUNC_ID_PRESENTATION_QUEUE_DISPLAY (VdpFuncId)63
04241
04242 #define VDP_FUNC_ID_PRESENTATION_QUEUE_BLOCK_UNTIL_SURFACE_IDLE (VdpFuncId)64
04243
04244 #define VDP_FUNC_ID_PRESENTATION_QUEUE_QUERY_SURFACE_STATUS (VdpFuncId)65
04245
04246 #define VDP_FUNC_ID_PREEMPTION_CALLBACK_REGISTER (VdpFuncId)66
04247
04248 #define VDP_FUNC_ID_BASE_WINSYS 0x1000
04249
04259 typedef VdpStatus VdpGetProcAddress(
04260 VdpDevice device,
04261 VdpFuncId function_id,
04262
04263 void * * function_pointer
04264 );
04265
04268
04276 #ifdef __cplusplus
04277 }
04278 #endif
04279
04280 #endif
04281