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
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
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
02586 VdpDecoder * decoder
02587 );
02588
02594 typedef VdpStatus VdpDecoderDestroy(
02595 VdpDecoder decoder
02596 );
02597
02610 typedef VdpStatus VdpDecoderGetParameters(
02611 VdpDecoder decoder,
02612
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
03455 VdpBool * is_supported
03456 );
03457
03468 typedef VdpStatus VdpVideoMixerQueryParameterSupport(
03469 VdpDevice device,
03470 VdpVideoMixerParameter parameter,
03471
03472 VdpBool * is_supported
03473 );
03474
03484 typedef VdpStatus VdpVideoMixerQueryAttributeSupport(
03485 VdpDevice device,
03486 VdpVideoMixerAttribute attribute,
03487
03488 VdpBool * is_supported
03489 );
03490
03501 typedef VdpStatus VdpVideoMixerQueryParameterValueRange(
03502 VdpDevice device,
03503 VdpVideoMixerParameter parameter,
03504
03505 void * min_value,
03506 void * max_value
03507 );
03508
03519 typedef VdpStatus VdpVideoMixerQueryAttributeValueRange(
03520 VdpDevice device,
03521 VdpVideoMixerAttribute attribute,
03522
03523 void * min_value,
03524 void * max_value
03525 );
03526
03530 typedef uint32_t VdpVideoMixer;
03531
03552 typedef VdpStatus VdpVideoMixerCreate(
03553 VdpDevice device,
03554
03555 uint32_t feature_count,
03556 VdpVideoMixerFeature const * features,
03557
03558 uint32_t parameter_count,
03559 VdpVideoMixerParameter const * parameters,
03560 void const * const * parameter_values,
03561
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
03617 VdpBool * feature_supports
03618 );
03619
03629 typedef VdpStatus VdpVideoMixerGetFeatureEnables(
03630 VdpVideoMixer mixer,
03631 uint32_t feature_count,
03632 VdpVideoMixerFeature const * features,
03633
03634 VdpBool * feature_enables
03635 );
03636
03649 typedef VdpStatus VdpVideoMixerGetParameterValues(
03650 VdpVideoMixer mixer,
03651 uint32_t parameter_count,
03652 VdpVideoMixerParameter const * parameters,
03653
03654 void * const * parameter_values
03655 );
03656
03669 typedef VdpStatus VdpVideoMixerGetAttributeValues(
03670 VdpVideoMixer mixer,
03671 uint32_t attribute_count,
03672 VdpVideoMixerAttribute const * attributes,
03673
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
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
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
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
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
04298 void * * function_pointer
04299 );
04300
04303
04311 #ifdef __cplusplus
04312 }
04313 #endif
04314
04315 #endif
04316