vdpau.h

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

Generated on Fri Dec 18 23:10:57 2009 for VDPAU by  doxygen 1.5.8