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
00759 #ifndef _VDPAU_H
00760 #define _VDPAU_H
00761
00762 #include <stdint.h>
00763
00764 #ifdef __cplusplus
00765 extern "C" {
00766 #endif
00767
00786 #define VDP_TRUE 1
00787
00788 #define VDP_FALSE 0
00789
00793 typedef int VdpBool;
00794
00813 #define VDP_INVALID_HANDLE 0xffffffffU
00814
00819 typedef uint32_t VdpChromaType;
00820
00822 #define VDP_CHROMA_TYPE_420 ((VdpChromaType)0)
00823
00824 #define VDP_CHROMA_TYPE_422 ((VdpChromaType)1)
00825
00826 #define VDP_CHROMA_TYPE_444 ((VdpChromaType)2)
00827
00831 typedef uint32_t VdpYCbCrFormat;
00832
00846 #define VDP_YCBCR_FORMAT_NV12 ((VdpYCbCrFormat)0)
00847
00858 #define VDP_YCBCR_FORMAT_YV12 ((VdpYCbCrFormat)1)
00859
00872 #define VDP_YCBCR_FORMAT_UYVY ((VdpYCbCrFormat)2)
00873
00886 #define VDP_YCBCR_FORMAT_YUYV ((VdpYCbCrFormat)3)
00887
00899 #define VDP_YCBCR_FORMAT_Y8U8V8A8 ((VdpYCbCrFormat)4)
00900
00912 #define VDP_YCBCR_FORMAT_V8U8Y8A8 ((VdpYCbCrFormat)5)
00913
00917 typedef uint32_t VdpRGBAFormat;
00918
00931 #define VDP_RGBA_FORMAT_B8G8R8A8 ((VdpRGBAFormat)0)
00932
00944 #define VDP_RGBA_FORMAT_R8G8B8A8 ((VdpRGBAFormat)1)
00945
00957 #define VDP_RGBA_FORMAT_R10G10B10A2 ((VdpRGBAFormat)2)
00958
00970 #define VDP_RGBA_FORMAT_B10G10R10A2 ((VdpRGBAFormat)3)
00971
00981 #define VDP_RGBA_FORMAT_A8 ((VdpRGBAFormat)4)
00982
00986 typedef uint32_t VdpIndexedFormat;
00987
00999 #define VDP_INDEXED_FORMAT_A4I4 ((VdpIndexedFormat)0)
01000
01011 #define VDP_INDEXED_FORMAT_I4A4 ((VdpIndexedFormat)1)
01012
01023 #define VDP_INDEXED_FORMAT_A8I8 ((VdpIndexedFormat)2)
01024
01035 #define VDP_INDEXED_FORMAT_I8A8 ((VdpIndexedFormat)3)
01036
01044 typedef struct {
01046 uint32_t x;
01048 uint32_t y;
01049 } VdpPoint;
01050
01061 typedef struct {
01063 uint32_t x0;
01065 uint32_t y0;
01067 uint32_t x1;
01069 uint32_t y1;
01070 } VdpRect;
01071
01080 typedef struct {
01081 float red;
01082 float green;
01083 float blue;
01084 float alpha;
01085 } VdpColor;
01086
01099 typedef enum {
01101 VDP_STATUS_OK = 0,
01105 VDP_STATUS_NO_IMPLEMENTATION,
01111 VDP_STATUS_DISPLAY_PREEMPTED,
01118 VDP_STATUS_INVALID_HANDLE,
01125 VDP_STATUS_INVALID_POINTER,
01129 VDP_STATUS_INVALID_CHROMA_TYPE,
01133 VDP_STATUS_INVALID_Y_CB_CR_FORMAT,
01137 VDP_STATUS_INVALID_RGBA_FORMAT,
01141 VDP_STATUS_INVALID_INDEXED_FORMAT,
01145 VDP_STATUS_INVALID_COLOR_STANDARD,
01149 VDP_STATUS_INVALID_COLOR_TABLE_FORMAT,
01154 VDP_STATUS_INVALID_BLEND_FACTOR,
01159 VDP_STATUS_INVALID_BLEND_EQUATION,
01163 VDP_STATUS_INVALID_FLAG,
01167 VDP_STATUS_INVALID_DECODER_PROFILE,
01171 VDP_STATUS_INVALID_VIDEO_MIXER_FEATURE,
01175 VDP_STATUS_INVALID_VIDEO_MIXER_PARAMETER,
01179 VDP_STATUS_INVALID_VIDEO_MIXER_ATTRIBUTE,
01184 VDP_STATUS_INVALID_VIDEO_MIXER_PICTURE_STRUCTURE,
01188 VDP_STATUS_INVALID_FUNC_ID,
01198 VDP_STATUS_INVALID_SIZE,
01205 VDP_STATUS_INVALID_VALUE,
01211 VDP_STATUS_INVALID_STRUCT_VERSION,
01216 VDP_STATUS_RESOURCES,
01226 VDP_STATUS_HANDLE_DEVICE_MISMATCH,
01230 VDP_STATUS_ERROR,
01231 } VdpStatus;
01232
01242 typedef char const * VdpGetErrorString(
01243 VdpStatus status
01244 );
01245
01270 #define VDPAU_INTERFACE_VERSION 1
01271
01283 #define VDPAU_VERSION 1
01284
01290 typedef VdpStatus VdpGetApiVersion(
01291
01292 uint32_t * api_version
01293 );
01294
01312 typedef VdpStatus VdpGetInformationString(
01313
01314 char const * * information_string
01315 );
01316
01336 typedef uint32_t VdpDevice;
01337
01343 typedef VdpStatus VdpDeviceDestroy(
01344 VdpDevice device
01345 );
01346
01385 typedef float VdpCSCMatrix[3][4];
01386
01387 #define VDP_PROCAMP_VERSION 0
01388
01397 typedef struct {
01401 uint32_t struct_version;
01406 float brightness;
01411 float contrast;
01416 float saturation;
01421 float hue;
01422 } VdpProcamp;
01423
01430 typedef uint32_t VdpColorStandard;
01431
01433 #define VDP_COLOR_STANDARD_ITUR_BT_601 ((VdpColorStandard)0)
01434
01435 #define VDP_COLOR_STANDARD_ITUR_BT_709 ((VdpColorStandard)1)
01436
01437 #define VDP_COLOR_STANDARD_SMPTE_240M ((VdpColorStandard)2)
01438
01447 typedef VdpStatus VdpGenerateCSCMatrix(
01448 VdpProcamp * procamp,
01449 VdpColorStandard standard,
01450
01451 VdpCSCMatrix * csc_matrix
01452 );
01453
01498 typedef VdpStatus VdpVideoSurfaceQueryCapabilities(
01499 VdpDevice device,
01500 VdpChromaType surface_chroma_type,
01501
01502 VdpBool * is_supported,
01503 uint32_t * max_width,
01504 uint32_t * max_height
01505 );
01506
01518 typedef VdpStatus VdpVideoSurfaceQueryGetPutBitsYCbCrCapabilities(
01519 VdpDevice device,
01520 VdpChromaType surface_chroma_type,
01521 VdpYCbCrFormat bits_ycbcr_format,
01522
01523 VdpBool * is_supported
01524 );
01525
01530 typedef uint32_t VdpVideoSurface;
01531
01577 typedef VdpStatus VdpVideoSurfaceCreate(
01578 VdpDevice device,
01579 VdpChromaType chroma_type,
01580 uint32_t width,
01581 uint32_t height,
01582
01583 VdpVideoSurface * surface
01584 );
01585
01591 typedef VdpStatus VdpVideoSurfaceDestroy(
01592 VdpVideoSurface surface
01593 );
01594
01604 typedef VdpStatus VdpVideoSurfaceGetParameters(
01605 VdpVideoSurface surface,
01606
01607 VdpChromaType * chroma_type,
01608 uint32_t * width,
01609 uint32_t * height
01610 );
01611
01630 typedef VdpStatus VdpVideoSurfaceGetBitsYCbCr(
01631 VdpVideoSurface surface,
01632 VdpYCbCrFormat destination_ycbcr_format,
01633 void * const * destination_data,
01634 uint32_t const * destination_pitches
01635 );
01636
01655 typedef VdpStatus VdpVideoSurfacePutBitsYCbCr(
01656 VdpVideoSurface surface,
01657 VdpYCbCrFormat source_ycbcr_format,
01658 void const * const * source_data,
01659 uint32_t const * source_pitches
01660 );
01661
01697 typedef uint32_t VdpColorTableFormat;
01698
01710 #define VDP_COLOR_TABLE_FORMAT_B8G8R8X8 ((VdpColorTableFormat)0)
01711
01725 typedef VdpStatus VdpOutputSurfaceQueryCapabilities(
01726 VdpDevice device,
01727 VdpRGBAFormat surface_rgba_format,
01728
01729 VdpBool * is_supported,
01730 uint32_t * max_width,
01731 uint32_t * max_height
01732 );
01733
01744 typedef VdpStatus VdpOutputSurfaceQueryGetPutBitsNativeCapabilities(
01745 VdpDevice device,
01746 VdpRGBAFormat surface_rgba_format,
01747
01748 VdpBool * is_supported
01749 );
01750
01765 typedef VdpStatus VdpOutputSurfaceQueryPutBitsIndexedCapabilities(
01766 VdpDevice device,
01767 VdpRGBAFormat surface_rgba_format,
01768 VdpIndexedFormat bits_indexed_format,
01769 VdpColorTableFormat color_table_format,
01770
01771 VdpBool * is_supported
01772 );
01773
01786 typedef VdpStatus VdpOutputSurfaceQueryPutBitsYCbCrCapabilities(
01787 VdpDevice device,
01788 VdpRGBAFormat surface_rgba_format,
01789 VdpYCbCrFormat bits_ycbcr_format,
01790
01791 VdpBool * is_supported
01792 );
01793
01798 typedef uint32_t VdpOutputSurface;
01799
01812 typedef VdpStatus VdpOutputSurfaceCreate(
01813 VdpDevice device,
01814 VdpRGBAFormat rgba_format,
01815 uint32_t width,
01816 uint32_t height,
01817
01818 VdpOutputSurface * surface
01819 );
01820
01826 typedef VdpStatus VdpOutputSurfaceDestroy(
01827 VdpOutputSurface surface
01828 );
01829
01839 typedef VdpStatus VdpOutputSurfaceGetParameters(
01840 VdpOutputSurface surface,
01841
01842 VdpRGBAFormat * rgba_format,
01843 uint32_t * width,
01844 uint32_t * height
01845 );
01846
01866 typedef VdpStatus VdpOutputSurfaceGetBitsNative(
01867 VdpOutputSurface surface,
01868 VdpRect const * source_rect,
01869 void * const * destination_data,
01870 uint32_t const * destination_pitches
01871 );
01872
01892 typedef VdpStatus VdpOutputSurfacePutBitsNative(
01893 VdpOutputSurface surface,
01894 void const * const * source_data,
01895 uint32_t const * source_pitches,
01896 VdpRect const * destination_rect
01897 );
01898
01924 typedef VdpStatus VdpOutputSurfacePutBitsIndexed(
01925 VdpOutputSurface surface,
01926 VdpIndexedFormat source_indexed_format,
01927 void const * const * source_data,
01928 uint32_t const * source_pitch,
01929 VdpRect const * destination_rect,
01930 VdpColorTableFormat color_table_format,
01931 void const * color_table
01932 );
01933
01959 typedef VdpStatus VdpOutputSurfacePutBitsYCbCr(
01960 VdpOutputSurface surface,
01961 VdpYCbCrFormat source_ycbcr_format,
01962 void const * const * source_data,
01963 uint32_t const * source_pitches,
01964 VdpRect const * destination_rect,
01965 VdpCSCMatrix const * csc_matrix
01966 );
01967
02019 typedef VdpStatus VdpBitmapSurfaceQueryCapabilities(
02020 VdpDevice device,
02021 VdpRGBAFormat surface_rgba_format,
02022
02023 VdpBool * is_supported,
02024 uint32_t * max_width,
02025 uint32_t * max_height
02026 );
02027
02032 typedef uint32_t VdpBitmapSurface;
02033
02051 typedef VdpStatus VdpBitmapSurfaceCreate(
02052 VdpDevice device,
02053 VdpRGBAFormat rgba_format,
02054 uint32_t width,
02055 uint32_t height,
02056 VdpBool frequently_accessed,
02057
02058 VdpBitmapSurface * surface
02059 );
02060
02066 typedef VdpStatus VdpBitmapSurfaceDestroy(
02067 VdpBitmapSurface surface
02068 );
02069
02081 typedef VdpStatus VdpBitmapSurfaceGetParameters(
02082 VdpBitmapSurface surface,
02083
02084 VdpRGBAFormat * rgba_format,
02085 uint32_t * width,
02086 uint32_t * height,
02087 VdpBool * frequently_accessed
02088 );
02089
02109 typedef VdpStatus VdpBitmapSurfacePutBitsNative(
02110 VdpBitmapSurface surface,
02111 void const * const * source_data,
02112 uint32_t const * source_pitches,
02113 VdpRect const * destination_rect
02114 );
02115
02133 typedef enum {
02134 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ZERO = 0,
02135 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE = 1,
02136 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_SRC_COLOR = 2,
02137 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
02138 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_SRC_ALPHA = 4,
02139 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 5,
02140 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_DST_ALPHA = 6,
02141 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 7,
02142 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_DST_COLOR = 8,
02143 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 9,
02144 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_SRC_ALPHA_SATURATE = 10,
02145 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_CONSTANT_COLOR = 11,
02146 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 12,
02147 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_CONSTANT_ALPHA = 13,
02148 VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 14,
02149 } VdpOutputSurfaceRenderBlendFactor;
02150
02155 typedef enum {
02156 VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_SUBTRACT = 0,
02157 VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_REVERSE_SUBTRACT = 1,
02158 VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_ADD = 2,
02159 VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_MIN = 3,
02160 VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_MAX = 4,
02161 } VdpOutputSurfaceRenderBlendEquation;
02162
02163 #define VDP_OUTPUT_SURFACE_RENDER_BLEND_STATE_VERSION 0
02164
02184 typedef struct {
02188 uint32_t struct_version;
02189 VdpOutputSurfaceRenderBlendFactor blend_factor_source_color;
02190 VdpOutputSurfaceRenderBlendFactor blend_factor_destination_color;
02191 VdpOutputSurfaceRenderBlendFactor blend_factor_source_alpha;
02192 VdpOutputSurfaceRenderBlendFactor blend_factor_destination_alpha;
02193 VdpOutputSurfaceRenderBlendEquation blend_equation_color;
02194 VdpOutputSurfaceRenderBlendEquation blend_equation_alpha;
02195 VdpColor blend_constant;
02196 } VdpOutputSurfaceRenderBlendState;
02197
02202 #define VDP_OUTPUT_SURFACE_RENDER_ROTATE_0 0
02203
02209 #define VDP_OUTPUT_SURFACE_RENDER_ROTATE_90 1
02210
02216 #define VDP_OUTPUT_SURFACE_RENDER_ROTATE_180 2
02217
02223 #define VDP_OUTPUT_SURFACE_RENDER_ROTATE_270 3
02224
02232 #define VDP_OUTPUT_SURFACE_RENDER_COLOR_PER_VERTEX (1 << 2)
02233
02304 typedef VdpStatus VdpOutputSurfaceRenderOutputSurface(
02305 VdpOutputSurface destination_surface,
02306 VdpRect const * destination_rect,
02307 VdpOutputSurface source_surface,
02308 VdpRect const * source_rect,
02309 VdpColor const * colors,
02310 VdpOutputSurfaceRenderBlendState const * blend_state,
02311 uint32_t flags
02312 );
02313
02384 typedef VdpStatus VdpOutputSurfaceRenderBitmapSurface(
02385 VdpOutputSurface destination_surface,
02386 VdpRect const * destination_rect,
02387 VdpBitmapSurface source_surface,
02388 VdpRect const * source_rect,
02389 VdpColor const * colors,
02390 VdpOutputSurfaceRenderBlendState const * blend_state,
02391 uint32_t flags
02392 );
02393
02414 typedef uint32_t VdpDecoderProfile;
02415
02417 #define VDP_DECODER_PROFILE_MPEG1 ((VdpDecoderProfile)0)
02418
02419 #define VDP_DECODER_PROFILE_MPEG2_SIMPLE ((VdpDecoderProfile)1)
02420
02421 #define VDP_DECODER_PROFILE_MPEG2_MAIN ((VdpDecoderProfile)2)
02422
02424 #define VDP_DECODER_PROFILE_H264_BASELINE ((VdpDecoderProfile)6)
02425
02426 #define VDP_DECODER_PROFILE_H264_MAIN ((VdpDecoderProfile)7)
02427
02428 #define VDP_DECODER_PROFILE_H264_HIGH ((VdpDecoderProfile)8)
02429
02430 #define VDP_DECODER_PROFILE_VC1_SIMPLE ((VdpDecoderProfile)9)
02431
02432 #define VDP_DECODER_PROFILE_VC1_MAIN ((VdpDecoderProfile)10)
02433
02434 #define VDP_DECODER_PROFILE_VC1_ADVANCED ((VdpDecoderProfile)11)
02435
02436 #define VDP_DECODER_PROFILE_MPEG4_PART2_SP ((VdpDecoderProfile)12)
02437
02438 #define VDP_DECODER_PROFILE_MPEG4_PART2_ASP ((VdpDecoderProfile)13)
02439
02440 #define VDP_DECODER_PROFILE_DIVX4_QMOBILE ((VdpDecoderProfile)14)
02441
02442 #define VDP_DECODER_PROFILE_DIVX4_MOBILE ((VdpDecoderProfile)15)
02443
02444 #define VDP_DECODER_PROFILE_DIVX4_HOME_THEATER ((VdpDecoderProfile)16)
02445
02446 #define VDP_DECODER_PROFILE_DIVX4_HD_1080P ((VdpDecoderProfile)17)
02447
02448 #define VDP_DECODER_PROFILE_DIVX5_QMOBILE ((VdpDecoderProfile)18)
02449
02450 #define VDP_DECODER_PROFILE_DIVX5_MOBILE ((VdpDecoderProfile)19)
02451
02452 #define VDP_DECODER_PROFILE_DIVX5_HOME_THEATER ((VdpDecoderProfile)20)
02453
02454 #define VDP_DECODER_PROFILE_DIVX5_HD_1080P ((VdpDecoderProfile)21)
02455
02456 #define VDP_DECODER_PROFILE_H264_CONSTRAINED_BASELINE ((VdpDecoderProfile)22)
02457
02458 #define VDP_DECODER_PROFILE_H264_EXTENDED ((VdpDecoderProfile)23)
02459
02460 #define VDP_DECODER_PROFILE_H264_PROGRESSIVE_HIGH ((VdpDecoderProfile)24)
02461
02462 #define VDP_DECODER_PROFILE_H264_CONSTRAINED_HIGH ((VdpDecoderProfile)25)
02463
02465 #define VDP_DECODER_PROFILE_H264_HIGH_444_PREDICTIVE ((VdpDecoderProfile)26)
02466
02468 #define VDP_DECODER_LEVEL_MPEG1_NA 0
02469
02471 #define VDP_DECODER_LEVEL_MPEG2_LL 0
02472
02473 #define VDP_DECODER_LEVEL_MPEG2_ML 1
02474
02475 #define VDP_DECODER_LEVEL_MPEG2_HL14 2
02476
02477 #define VDP_DECODER_LEVEL_MPEG2_HL 3
02478
02480 #define VDP_DECODER_LEVEL_H264_1 10
02481
02482 #define VDP_DECODER_LEVEL_H264_1b 9
02483
02484 #define VDP_DECODER_LEVEL_H264_1_1 11
02485
02486 #define VDP_DECODER_LEVEL_H264_1_2 12
02487
02488 #define VDP_DECODER_LEVEL_H264_1_3 13
02489
02490 #define VDP_DECODER_LEVEL_H264_2 20
02491
02492 #define VDP_DECODER_LEVEL_H264_2_1 21
02493
02494 #define VDP_DECODER_LEVEL_H264_2_2 22
02495
02496 #define VDP_DECODER_LEVEL_H264_3 30
02497
02498 #define VDP_DECODER_LEVEL_H264_3_1 31
02499
02500 #define VDP_DECODER_LEVEL_H264_3_2 32
02501
02502 #define VDP_DECODER_LEVEL_H264_4 40
02503
02504 #define VDP_DECODER_LEVEL_H264_4_1 41
02505
02506 #define VDP_DECODER_LEVEL_H264_4_2 42
02507
02508 #define VDP_DECODER_LEVEL_H264_5 50
02509
02510 #define VDP_DECODER_LEVEL_H264_5_1 51
02511
02513 #define VDP_DECODER_LEVEL_VC1_SIMPLE_LOW 0
02514
02515 #define VDP_DECODER_LEVEL_VC1_SIMPLE_MEDIUM 1
02516
02518 #define VDP_DECODER_LEVEL_VC1_MAIN_LOW 0
02519
02520 #define VDP_DECODER_LEVEL_VC1_MAIN_MEDIUM 1
02521
02522 #define VDP_DECODER_LEVEL_VC1_MAIN_HIGH 2
02523
02525 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L0 0
02526
02527 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L1 1
02528
02529 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L2 2
02530
02531 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L3 3
02532
02533 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L4 4
02534
02536 #define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L0 0
02537
02538 #define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L1 1
02539
02540 #define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L2 2
02541
02542 #define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L3 3
02543
02545 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L0 0
02546
02547 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L1 1
02548
02549 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L2 2
02550
02551 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L3 3
02552
02553 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L4 4
02554
02555 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L5 5
02556
02558 #define VDP_DECODER_LEVEL_DIVX_NA 0
02559
02578 typedef VdpStatus VdpDecoderQueryCapabilities(
02579 VdpDevice device,
02580 VdpDecoderProfile profile,
02581
02582 VdpBool * is_supported,
02583 uint32_t * max_level,
02584 uint32_t * max_macroblocks,
02585 uint32_t * max_width,
02586 uint32_t * max_height
02587 );
02588
02592 typedef uint32_t VdpDecoder;
02593
02610 typedef VdpStatus VdpDecoderCreate(
02611 VdpDevice device,
02612 VdpDecoderProfile profile,
02613 uint32_t width,
02614 uint32_t height,
02615 uint32_t max_references,
02616
02617 VdpDecoder * decoder
02618 );
02619
02625 typedef VdpStatus VdpDecoderDestroy(
02626 VdpDecoder decoder
02627 );
02628
02641 typedef VdpStatus VdpDecoderGetParameters(
02642 VdpDecoder decoder,
02643
02644 VdpDecoderProfile * profile,
02645 uint32_t * width,
02646 uint32_t * height
02647 );
02648
02649 #define VDP_BITSTREAM_BUFFER_VERSION 0
02650
02655 typedef struct {
02659 uint32_t struct_version;
02661 void const * bitstream;
02663 uint32_t bitstream_bytes;
02664 } VdpBitstreamBuffer;
02665
02676 typedef void VdpPictureInfo;
02677
02686 typedef struct {
02691 VdpVideoSurface forward_reference;
02696 VdpVideoSurface backward_reference;
02698 uint32_t slice_count;
02699
02701 uint8_t picture_structure;
02703 uint8_t picture_coding_type;
02705 uint8_t intra_dc_precision;
02707 uint8_t frame_pred_frame_dct;
02709 uint8_t concealment_motion_vectors;
02711 uint8_t intra_vlc_format;
02713 uint8_t alternate_scan;
02715 uint8_t q_scale_type;
02717 uint8_t top_field_first;
02719 uint8_t full_pel_forward_vector;
02721 uint8_t full_pel_backward_vector;
02726 uint8_t f_code[2][2];
02728 uint8_t intra_quantizer_matrix[64];
02730 uint8_t non_intra_quantizer_matrix[64];
02731 } VdpPictureInfoMPEG1Or2;
02732
02740 typedef struct {
02745 VdpVideoSurface surface;
02747 VdpBool is_long_term;
02752 VdpBool top_is_reference;
02757 VdpBool bottom_is_reference;
02759 int32_t field_order_cnt[2];
02765 uint16_t frame_idx;
02766 } VdpReferenceFrameH264;
02767
02790 typedef struct {
02792 uint32_t slice_count;
02794 int32_t field_order_cnt[2];
02796 VdpBool is_reference;
02797
02799 uint16_t frame_num;
02801 uint8_t field_pic_flag;
02803 uint8_t bottom_field_flag;
02805 uint8_t num_ref_frames;
02807 uint8_t mb_adaptive_frame_field_flag;
02809 uint8_t constrained_intra_pred_flag;
02811 uint8_t weighted_pred_flag;
02813 uint8_t weighted_bipred_idc;
02815 uint8_t frame_mbs_only_flag;
02817 uint8_t transform_8x8_mode_flag;
02819 int8_t chroma_qp_index_offset;
02821 int8_t second_chroma_qp_index_offset;
02823 int8_t pic_init_qp_minus26;
02825 uint8_t num_ref_idx_l0_active_minus1;
02827 uint8_t num_ref_idx_l1_active_minus1;
02829 uint8_t log2_max_frame_num_minus4;
02831 uint8_t pic_order_cnt_type;
02833 uint8_t log2_max_pic_order_cnt_lsb_minus4;
02835 uint8_t delta_pic_order_always_zero_flag;
02837 uint8_t direct_8x8_inference_flag;
02839 uint8_t entropy_coding_mode_flag;
02841 uint8_t pic_order_present_flag;
02843 uint8_t deblocking_filter_control_present_flag;
02845 uint8_t redundant_pic_cnt_present_flag;
02846
02848 uint8_t scaling_lists_4x4[6][16];
02850 uint8_t scaling_lists_8x8[2][64];
02851
02853 VdpReferenceFrameH264 referenceFrames[16];
02854 } VdpPictureInfoH264;
02855
02866 typedef struct {
02868 VdpPictureInfoH264 pictureInfo;
02874 uint8_t qpprime_y_zero_transform_bypass_flag;
02879 uint8_t separate_colour_plane_flag;
02880
02881 } VdpPictureInfoH264Predictive;
02882
02890 typedef struct {
02895 VdpVideoSurface forward_reference;
02900 VdpVideoSurface backward_reference;
02901
02903 uint32_t slice_count;
02905 uint8_t picture_type;
02907 uint8_t frame_coding_mode;
02908
02910 uint8_t postprocflag;
02912 uint8_t pulldown;
02914 uint8_t interlace;
02916 uint8_t tfcntrflag;
02918 uint8_t finterpflag;
02920 uint8_t psf;
02922 uint8_t dquant;
02924 uint8_t panscan_flag;
02926 uint8_t refdist_flag;
02928 uint8_t quantizer;
02930 uint8_t extended_mv;
02932 uint8_t extended_dmv;
02934 uint8_t overlap;
02936 uint8_t vstransform;
02938 uint8_t loopfilter;
02940 uint8_t fastuvmc;
02942 uint8_t range_mapy_flag;
02944 uint8_t range_mapy;
02946 uint8_t range_mapuv_flag;
02948 uint8_t range_mapuv;
02949
02954 uint8_t multires;
02959 uint8_t syncmarker;
02966 uint8_t rangered;
02971 uint8_t maxbframes;
02972
02978 uint8_t deblockEnable;
02984 uint8_t pquant;
02985 } VdpPictureInfoVC1;
02986
02994 typedef struct {
02999 VdpVideoSurface forward_reference;
03004 VdpVideoSurface backward_reference;
03005
03007 int32_t trd[2];
03009 int32_t trb[2];
03011 uint16_t vop_time_increment_resolution;
03013 uint8_t vop_coding_type;
03015 uint8_t vop_fcode_forward;
03017 uint8_t vop_fcode_backward;
03019 uint8_t resync_marker_disable;
03021 uint8_t interlaced;
03023 uint8_t quant_type;
03025 uint8_t quarter_sample;
03027 uint8_t short_video_header;
03029 uint8_t rounding_control;
03031 uint8_t alternate_vertical_scan_flag;
03033 uint8_t top_field_first;
03035 uint8_t intra_quantizer_matrix[64];
03037 uint8_t non_intra_quantizer_matrix[64];
03038 } VdpPictureInfoMPEG4Part2;
03039
03046 typedef VdpPictureInfoMPEG4Part2 VdpPictureInfoDivX4;
03047
03054 typedef VdpPictureInfoMPEG4Part2 VdpPictureInfoDivX5;
03055
03074 typedef VdpStatus VdpDecoderRender(
03075 VdpDecoder decoder,
03076 VdpVideoSurface target,
03077 VdpPictureInfo const * picture_info,
03078 uint32_t bitstream_buffer_count,
03079 VdpBitstreamBuffer const * bitstream_buffers
03080 );
03081
03161 typedef uint32_t VdpVideoMixerFeature;
03162
03174 #define VDP_VIDEO_MIXER_FEATURE_DEINTERLACE_TEMPORAL ((VdpVideoMixerFeature)0)
03175
03187 #define VDP_VIDEO_MIXER_FEATURE_DEINTERLACE_TEMPORAL_SPATIAL ((VdpVideoMixerFeature)1)
03188
03196 #define VDP_VIDEO_MIXER_FEATURE_INVERSE_TELECINE ((VdpVideoMixerFeature)2)
03197
03204 #define VDP_VIDEO_MIXER_FEATURE_NOISE_REDUCTION ((VdpVideoMixerFeature)3)
03205
03212 #define VDP_VIDEO_MIXER_FEATURE_SHARPNESS ((VdpVideoMixerFeature)4)
03213
03225 #define VDP_VIDEO_MIXER_FEATURE_LUMA_KEY ((VdpVideoMixerFeature)5)
03226
03247 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1 ((VdpVideoMixerFeature)11)
03248
03254 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L2 ((VdpVideoMixerFeature)12)
03255
03261 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L3 ((VdpVideoMixerFeature)13)
03262
03268 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L4 ((VdpVideoMixerFeature)14)
03269
03275 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L5 ((VdpVideoMixerFeature)15)
03276
03282 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L6 ((VdpVideoMixerFeature)16)
03283
03289 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L7 ((VdpVideoMixerFeature)17)
03290
03296 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L8 ((VdpVideoMixerFeature)18)
03297
03303 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L9 ((VdpVideoMixerFeature)19)
03304
03317 typedef uint32_t VdpVideoMixerParameter;
03318
03331 #define VDP_VIDEO_MIXER_PARAMETER_VIDEO_SURFACE_WIDTH ((VdpVideoMixerParameter)0)
03332
03344 #define VDP_VIDEO_MIXER_PARAMETER_VIDEO_SURFACE_HEIGHT ((VdpVideoMixerParameter)1)
03345
03358 #define VDP_VIDEO_MIXER_PARAMETER_CHROMA_TYPE ((VdpVideoMixerParameter)2)
03359
03377 #define VDP_VIDEO_MIXER_PARAMETER_LAYERS ((VdpVideoMixerParameter)3)
03378
03391 typedef uint32_t VdpVideoMixerAttribute;
03392
03406 #define VDP_VIDEO_MIXER_ATTRIBUTE_BACKGROUND_COLOR ((VdpVideoMixerAttribute)0)
03407
03434 #define VDP_VIDEO_MIXER_ATTRIBUTE_CSC_MATRIX ((VdpVideoMixerAttribute)1)
03435
03447 #define VDP_VIDEO_MIXER_ATTRIBUTE_NOISE_REDUCTION_LEVEL ((VdpVideoMixerAttribute)2)
03448
03463 #define VDP_VIDEO_MIXER_ATTRIBUTE_SHARPNESS_LEVEL ((VdpVideoMixerAttribute)3)
03464
03475 #define VDP_VIDEO_MIXER_ATTRIBUTE_LUMA_KEY_MIN_LUMA ((VdpVideoMixerAttribute)4)
03476
03487 #define VDP_VIDEO_MIXER_ATTRIBUTE_LUMA_KEY_MAX_LUMA ((VdpVideoMixerAttribute)5)
03488
03502 #define VDP_VIDEO_MIXER_ATTRIBUTE_SKIP_CHROMA_DEINTERLACE ((VdpVideoMixerAttribute)6)
03503
03513 typedef VdpStatus VdpVideoMixerQueryFeatureSupport(
03514 VdpDevice device,
03515 VdpVideoMixerFeature feature,
03516
03517 VdpBool * is_supported
03518 );
03519
03530 typedef VdpStatus VdpVideoMixerQueryParameterSupport(
03531 VdpDevice device,
03532 VdpVideoMixerParameter parameter,
03533
03534 VdpBool * is_supported
03535 );
03536
03546 typedef VdpStatus VdpVideoMixerQueryAttributeSupport(
03547 VdpDevice device,
03548 VdpVideoMixerAttribute attribute,
03549
03550 VdpBool * is_supported
03551 );
03552
03563 typedef VdpStatus VdpVideoMixerQueryParameterValueRange(
03564 VdpDevice device,
03565 VdpVideoMixerParameter parameter,
03566
03567 void * min_value,
03568 void * max_value
03569 );
03570
03581 typedef VdpStatus VdpVideoMixerQueryAttributeValueRange(
03582 VdpDevice device,
03583 VdpVideoMixerAttribute attribute,
03584
03585 void * min_value,
03586 void * max_value
03587 );
03588
03592 typedef uint32_t VdpVideoMixer;
03593
03614 typedef VdpStatus VdpVideoMixerCreate(
03615 VdpDevice device,
03616
03617 uint32_t feature_count,
03618 VdpVideoMixerFeature const * features,
03619
03620 uint32_t parameter_count,
03621 VdpVideoMixerParameter const * parameters,
03622 void const * const * parameter_values,
03623
03624 VdpVideoMixer * mixer
03625 );
03626
03637 typedef VdpStatus VdpVideoMixerSetFeatureEnables(
03638 VdpVideoMixer mixer,
03639 uint32_t feature_count,
03640 VdpVideoMixerFeature const * features,
03641 VdpBool const * feature_enables
03642 );
03643
03656 typedef VdpStatus VdpVideoMixerSetAttributeValues(
03657 VdpVideoMixer mixer,
03658 uint32_t attribute_count,
03659 VdpVideoMixerAttribute const * attributes,
03660 void const * const * attribute_values
03661 );
03662
03674 typedef VdpStatus VdpVideoMixerGetFeatureSupport(
03675 VdpVideoMixer mixer,
03676 uint32_t feature_count,
03677 VdpVideoMixerFeature const * features,
03678
03679 VdpBool * feature_supports
03680 );
03681
03691 typedef VdpStatus VdpVideoMixerGetFeatureEnables(
03692 VdpVideoMixer mixer,
03693 uint32_t feature_count,
03694 VdpVideoMixerFeature const * features,
03695
03696 VdpBool * feature_enables
03697 );
03698
03711 typedef VdpStatus VdpVideoMixerGetParameterValues(
03712 VdpVideoMixer mixer,
03713 uint32_t parameter_count,
03714 VdpVideoMixerParameter const * parameters,
03715
03716 void * const * parameter_values
03717 );
03718
03731 typedef VdpStatus VdpVideoMixerGetAttributeValues(
03732 VdpVideoMixer mixer,
03733 uint32_t attribute_count,
03734 VdpVideoMixerAttribute const * attributes,
03735
03736 void * const * attribute_values
03737 );
03738
03744 typedef VdpStatus VdpVideoMixerDestroy(
03745 VdpVideoMixer mixer
03746 );
03747
03753 typedef enum {
03757 VDP_VIDEO_MIXER_PICTURE_STRUCTURE_TOP_FIELD,
03762 VDP_VIDEO_MIXER_PICTURE_STRUCTURE_BOTTOM_FIELD,
03766 VDP_VIDEO_MIXER_PICTURE_STRUCTURE_FRAME,
03767 } VdpVideoMixerPictureStructure;
03768
03769 #define VDP_LAYER_VERSION 0
03770
03775 typedef struct {
03779 uint32_t struct_version;
03783 VdpOutputSurface source_surface;
03788 VdpRect const * source_rect;
03797 VdpRect const * destination_rect;
03798 } VdpLayer;
03799
03866 typedef VdpStatus VdpVideoMixerRender(
03867 VdpVideoMixer mixer,
03868 VdpOutputSurface background_surface,
03869 VdpRect const * background_source_rect,
03870 VdpVideoMixerPictureStructure current_picture_structure,
03871 uint32_t video_surface_past_count,
03872 VdpVideoSurface const * video_surface_past,
03873 VdpVideoSurface video_surface_current,
03874 uint32_t video_surface_future_count,
03875 VdpVideoSurface const * video_surface_future,
03876 VdpRect const * video_source_rect,
03877 VdpOutputSurface destination_surface,
03878 VdpRect const * destination_rect,
03879 VdpRect const * destination_video_rect,
03880 uint32_t layer_count,
03881 VdpLayer const * layers
03882 );
03883
03935 typedef uint64_t VdpTime;
03936
03945 typedef uint32_t VdpPresentationQueueTarget;
03946
03952 typedef VdpStatus VdpPresentationQueueTargetDestroy(
03953 VdpPresentationQueueTarget presentation_queue_target
03954 );
03955
03960 typedef uint32_t VdpPresentationQueue;
03961
03973 typedef VdpStatus VdpPresentationQueueCreate(
03974 VdpDevice device,
03975 VdpPresentationQueueTarget presentation_queue_target,
03976
03977 VdpPresentationQueue * presentation_queue
03978 );
03979
03985 typedef VdpStatus VdpPresentationQueueDestroy(
03986 VdpPresentationQueue presentation_queue
03987 );
03988
03998 typedef VdpStatus VdpPresentationQueueSetBackgroundColor(
03999 VdpPresentationQueue presentation_queue,
04000 VdpColor * const background_color
04001 );
04002
04008 typedef VdpStatus VdpPresentationQueueGetBackgroundColor(
04009 VdpPresentationQueue presentation_queue,
04010 VdpColor * background_color
04011 );
04012
04020 typedef VdpStatus VdpPresentationQueueGetTime(
04021 VdpPresentationQueue presentation_queue,
04022
04023 VdpTime * current_time
04024 );
04025
04066 typedef VdpStatus VdpPresentationQueueDisplay(
04067 VdpPresentationQueue presentation_queue,
04068 VdpOutputSurface surface,
04069 uint32_t clip_width,
04070 uint32_t clip_height,
04071 VdpTime earliest_presentation_time
04072 );
04073
04089 typedef VdpStatus VdpPresentationQueueBlockUntilSurfaceIdle(
04090 VdpPresentationQueue presentation_queue,
04091 VdpOutputSurface surface,
04092
04093 VdpTime * first_presentation_time
04094 );
04095
04100 typedef enum {
04102 VDP_PRESENTATION_QUEUE_STATUS_IDLE,
04104 VDP_PRESENTATION_QUEUE_STATUS_QUEUED,
04106 VDP_PRESENTATION_QUEUE_STATUS_VISIBLE,
04107 } VdpPresentationQueueStatus;
04108
04120 typedef VdpStatus VdpPresentationQueueQuerySurfaceStatus(
04121 VdpPresentationQueue presentation_queue,
04122 VdpOutputSurface surface,
04123
04124 VdpPresentationQueueStatus * status,
04125 VdpTime * first_presentation_time
04126 );
04127
04182 typedef void VdpPreemptionCallback(
04183 VdpDevice device,
04184 void * context
04185 );
04186
04197 typedef VdpStatus VdpPreemptionCallbackRegister(
04198 VdpDevice device,
04199 VdpPreemptionCallback callback,
04200 void * context
04201 );
04202
04220 typedef uint32_t VdpFuncId;
04221
04223 #define VDP_FUNC_ID_GET_ERROR_STRING ((VdpFuncId)0)
04224
04225 #define VDP_FUNC_ID_GET_PROC_ADDRESS ((VdpFuncId)1)
04226
04227 #define VDP_FUNC_ID_GET_API_VERSION ((VdpFuncId)2)
04228
04229 #define VDP_FUNC_ID_GET_INFORMATION_STRING ((VdpFuncId)4)
04230
04231 #define VDP_FUNC_ID_DEVICE_DESTROY ((VdpFuncId)5)
04232
04233 #define VDP_FUNC_ID_GENERATE_CSC_MATRIX ((VdpFuncId)6)
04234
04235 #define VDP_FUNC_ID_VIDEO_SURFACE_QUERY_CAPABILITIES ((VdpFuncId)7)
04236
04237 #define VDP_FUNC_ID_VIDEO_SURFACE_QUERY_GET_PUT_BITS_Y_CB_CR_CAPABILITIES ((VdpFuncId)8)
04238
04239 #define VDP_FUNC_ID_VIDEO_SURFACE_CREATE ((VdpFuncId)9)
04240
04241 #define VDP_FUNC_ID_VIDEO_SURFACE_DESTROY ((VdpFuncId)10)
04242
04243 #define VDP_FUNC_ID_VIDEO_SURFACE_GET_PARAMETERS ((VdpFuncId)11)
04244
04245 #define VDP_FUNC_ID_VIDEO_SURFACE_GET_BITS_Y_CB_CR ((VdpFuncId)12)
04246
04247 #define VDP_FUNC_ID_VIDEO_SURFACE_PUT_BITS_Y_CB_CR ((VdpFuncId)13)
04248
04249 #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_CAPABILITIES ((VdpFuncId)14)
04250
04251 #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_GET_PUT_BITS_NATIVE_CAPABILITIES ((VdpFuncId)15)
04252
04253 #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_PUT_BITS_INDEXED_CAPABILITIES ((VdpFuncId)16)
04254
04255 #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_PUT_BITS_Y_CB_CR_CAPABILITIES ((VdpFuncId)17)
04256
04257 #define VDP_FUNC_ID_OUTPUT_SURFACE_CREATE ((VdpFuncId)18)
04258
04259 #define VDP_FUNC_ID_OUTPUT_SURFACE_DESTROY ((VdpFuncId)19)
04260
04261 #define VDP_FUNC_ID_OUTPUT_SURFACE_GET_PARAMETERS ((VdpFuncId)20)
04262
04263 #define VDP_FUNC_ID_OUTPUT_SURFACE_GET_BITS_NATIVE ((VdpFuncId)21)
04264
04265 #define VDP_FUNC_ID_OUTPUT_SURFACE_PUT_BITS_NATIVE ((VdpFuncId)22)
04266
04267 #define VDP_FUNC_ID_OUTPUT_SURFACE_PUT_BITS_INDEXED ((VdpFuncId)23)
04268
04269 #define VDP_FUNC_ID_OUTPUT_SURFACE_PUT_BITS_Y_CB_CR ((VdpFuncId)24)
04270
04271 #define VDP_FUNC_ID_BITMAP_SURFACE_QUERY_CAPABILITIES ((VdpFuncId)25)
04272
04273 #define VDP_FUNC_ID_BITMAP_SURFACE_CREATE ((VdpFuncId)26)
04274
04275 #define VDP_FUNC_ID_BITMAP_SURFACE_DESTROY ((VdpFuncId)27)
04276
04277 #define VDP_FUNC_ID_BITMAP_SURFACE_GET_PARAMETERS ((VdpFuncId)28)
04278
04279 #define VDP_FUNC_ID_BITMAP_SURFACE_PUT_BITS_NATIVE ((VdpFuncId)29)
04280
04281 #define VDP_FUNC_ID_OUTPUT_SURFACE_RENDER_OUTPUT_SURFACE ((VdpFuncId)33)
04282
04283 #define VDP_FUNC_ID_OUTPUT_SURFACE_RENDER_BITMAP_SURFACE ((VdpFuncId)34)
04284
04285 #define VDP_FUNC_ID_OUTPUT_SURFACE_RENDER_VIDEO_SURFACE_LUMA ((VdpFuncId)35)
04286
04287 #define VDP_FUNC_ID_DECODER_QUERY_CAPABILITIES ((VdpFuncId)36)
04288
04289 #define VDP_FUNC_ID_DECODER_CREATE ((VdpFuncId)37)
04290
04291 #define VDP_FUNC_ID_DECODER_DESTROY ((VdpFuncId)38)
04292
04293 #define VDP_FUNC_ID_DECODER_GET_PARAMETERS ((VdpFuncId)39)
04294
04295 #define VDP_FUNC_ID_DECODER_RENDER ((VdpFuncId)40)
04296
04297 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_FEATURE_SUPPORT ((VdpFuncId)41)
04298
04299 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_PARAMETER_SUPPORT ((VdpFuncId)42)
04300
04301 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_ATTRIBUTE_SUPPORT ((VdpFuncId)43)
04302
04303 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_PARAMETER_VALUE_RANGE ((VdpFuncId)44)
04304
04305 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_ATTRIBUTE_VALUE_RANGE ((VdpFuncId)45)
04306
04307 #define VDP_FUNC_ID_VIDEO_MIXER_CREATE ((VdpFuncId)46)
04308
04309 #define VDP_FUNC_ID_VIDEO_MIXER_SET_FEATURE_ENABLES ((VdpFuncId)47)
04310
04311 #define VDP_FUNC_ID_VIDEO_MIXER_SET_ATTRIBUTE_VALUES ((VdpFuncId)48)
04312
04313 #define VDP_FUNC_ID_VIDEO_MIXER_GET_FEATURE_SUPPORT ((VdpFuncId)49)
04314
04315 #define VDP_FUNC_ID_VIDEO_MIXER_GET_FEATURE_ENABLES ((VdpFuncId)50)
04316
04317 #define VDP_FUNC_ID_VIDEO_MIXER_GET_PARAMETER_VALUES ((VdpFuncId)51)
04318
04319 #define VDP_FUNC_ID_VIDEO_MIXER_GET_ATTRIBUTE_VALUES ((VdpFuncId)52)
04320
04321 #define VDP_FUNC_ID_VIDEO_MIXER_DESTROY ((VdpFuncId)53)
04322
04323 #define VDP_FUNC_ID_VIDEO_MIXER_RENDER ((VdpFuncId)54)
04324
04325 #define VDP_FUNC_ID_PRESENTATION_QUEUE_TARGET_DESTROY ((VdpFuncId)55)
04326
04327 #define VDP_FUNC_ID_PRESENTATION_QUEUE_CREATE ((VdpFuncId)56)
04328
04329 #define VDP_FUNC_ID_PRESENTATION_QUEUE_DESTROY ((VdpFuncId)57)
04330
04331 #define VDP_FUNC_ID_PRESENTATION_QUEUE_SET_BACKGROUND_COLOR ((VdpFuncId)58)
04332
04333 #define VDP_FUNC_ID_PRESENTATION_QUEUE_GET_BACKGROUND_COLOR ((VdpFuncId)59)
04334
04335 #define VDP_FUNC_ID_PRESENTATION_QUEUE_GET_TIME ((VdpFuncId)62)
04336
04337 #define VDP_FUNC_ID_PRESENTATION_QUEUE_DISPLAY ((VdpFuncId)63)
04338
04339 #define VDP_FUNC_ID_PRESENTATION_QUEUE_BLOCK_UNTIL_SURFACE_IDLE ((VdpFuncId)64)
04340
04341 #define VDP_FUNC_ID_PRESENTATION_QUEUE_QUERY_SURFACE_STATUS ((VdpFuncId)65)
04342
04343 #define VDP_FUNC_ID_PREEMPTION_CALLBACK_REGISTER ((VdpFuncId)66)
04344
04345 #define VDP_FUNC_ID_BASE_WINSYS 0x1000
04346
04356 typedef VdpStatus VdpGetProcAddress(
04357 VdpDevice device,
04358 VdpFuncId function_id,
04359
04360 void * * function_pointer
04361 );
04362
04365
04373 #ifdef __cplusplus
04374 }
04375 #endif
04376
04377 #endif
04378