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