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 
02164 typedef struct {
02168     uint32_t struct_version;
02169     VdpOutputSurfaceRenderBlendFactor   blend_factor_source_color;
02170     VdpOutputSurfaceRenderBlendFactor   blend_factor_destination_color;
02171     VdpOutputSurfaceRenderBlendFactor   blend_factor_source_alpha;
02172     VdpOutputSurfaceRenderBlendFactor   blend_factor_destination_alpha;
02173     VdpOutputSurfaceRenderBlendEquation blend_equation_color;
02174     VdpOutputSurfaceRenderBlendEquation blend_equation_alpha;
02175     VdpColor                            blend_constant;
02176 } VdpOutputSurfaceRenderBlendState;
02177 
02182 #define VDP_OUTPUT_SURFACE_RENDER_ROTATE_0   0
02183 
02189 #define VDP_OUTPUT_SURFACE_RENDER_ROTATE_90  1
02190 
02196 #define VDP_OUTPUT_SURFACE_RENDER_ROTATE_180 2
02197 
02203 #define VDP_OUTPUT_SURFACE_RENDER_ROTATE_270 3
02204 
02212 #define VDP_OUTPUT_SURFACE_RENDER_COLOR_PER_VERTEX (1 << 2)
02213 
02284 typedef VdpStatus VdpOutputSurfaceRenderOutputSurface(
02285     VdpOutputSurface                         destination_surface,
02286     VdpRect const *                          destination_rect,
02287     VdpOutputSurface                         source_surface,
02288     VdpRect const *                          source_rect,
02289     VdpColor const *                         colors,
02290     VdpOutputSurfaceRenderBlendState const * blend_state,
02291     uint32_t                                 flags
02292 );
02293 
02364 typedef VdpStatus VdpOutputSurfaceRenderBitmapSurface(
02365     VdpOutputSurface                         destination_surface,
02366     VdpRect const *                          destination_rect,
02367     VdpBitmapSurface                         source_surface,
02368     VdpRect const *                          source_rect,
02369     VdpColor const *                         colors,
02370     VdpOutputSurfaceRenderBlendState const * blend_state,
02371     uint32_t                                 flags
02372 );
02373 
02394 typedef uint32_t VdpDecoderProfile;
02395 
02397 #define VDP_DECODER_PROFILE_MPEG1                       (VdpDecoderProfile)0
02398 
02399 #define VDP_DECODER_PROFILE_MPEG2_SIMPLE                (VdpDecoderProfile)1
02400 
02401 #define VDP_DECODER_PROFILE_MPEG2_MAIN                  (VdpDecoderProfile)2
02402 
02404 #define VDP_DECODER_PROFILE_H264_BASELINE               (VdpDecoderProfile)6
02405 
02406 #define VDP_DECODER_PROFILE_H264_MAIN                   (VdpDecoderProfile)7
02407 
02408 #define VDP_DECODER_PROFILE_H264_HIGH                   (VdpDecoderProfile)8
02409 
02410 #define VDP_DECODER_PROFILE_VC1_SIMPLE                  (VdpDecoderProfile)9
02411 
02412 #define VDP_DECODER_PROFILE_VC1_MAIN                    (VdpDecoderProfile)10
02413 
02414 #define VDP_DECODER_PROFILE_VC1_ADVANCED                (VdpDecoderProfile)11
02415 
02416 #define VDP_DECODER_PROFILE_MPEG4_PART2_SP              (VdpDecoderProfile)12
02417 
02418 #define VDP_DECODER_PROFILE_MPEG4_PART2_ASP             (VdpDecoderProfile)13
02419 
02420 #define VDP_DECODER_PROFILE_DIVX4_QMOBILE               (VdpDecoderProfile)14
02421 
02422 #define VDP_DECODER_PROFILE_DIVX4_MOBILE                (VdpDecoderProfile)15
02423 
02424 #define VDP_DECODER_PROFILE_DIVX4_HOME_THEATER          (VdpDecoderProfile)16
02425 
02426 #define VDP_DECODER_PROFILE_DIVX4_HD_1080P              (VdpDecoderProfile)17
02427 
02428 #define VDP_DECODER_PROFILE_DIVX5_QMOBILE               (VdpDecoderProfile)18
02429 
02430 #define VDP_DECODER_PROFILE_DIVX5_MOBILE                (VdpDecoderProfile)19
02431 
02432 #define VDP_DECODER_PROFILE_DIVX5_HOME_THEATER          (VdpDecoderProfile)20
02433 
02434 #define VDP_DECODER_PROFILE_DIVX5_HD_1080P              (VdpDecoderProfile)21
02435 
02437 #define VDP_DECODER_LEVEL_MPEG1_NA 0
02438 
02440 #define VDP_DECODER_LEVEL_MPEG2_LL   0
02441 
02442 #define VDP_DECODER_LEVEL_MPEG2_ML   1
02443 
02444 #define VDP_DECODER_LEVEL_MPEG2_HL14 2
02445 
02446 #define VDP_DECODER_LEVEL_MPEG2_HL   3
02447 
02449 #define VDP_DECODER_LEVEL_H264_1     10
02450 
02451 #define VDP_DECODER_LEVEL_H264_1b    9
02452 
02453 #define VDP_DECODER_LEVEL_H264_1_1   11
02454 
02455 #define VDP_DECODER_LEVEL_H264_1_2   12
02456 
02457 #define VDP_DECODER_LEVEL_H264_1_3   13
02458 
02459 #define VDP_DECODER_LEVEL_H264_2     20
02460 
02461 #define VDP_DECODER_LEVEL_H264_2_1   21
02462 
02463 #define VDP_DECODER_LEVEL_H264_2_2   22
02464 
02465 #define VDP_DECODER_LEVEL_H264_3     30
02466 
02467 #define VDP_DECODER_LEVEL_H264_3_1   31
02468 
02469 #define VDP_DECODER_LEVEL_H264_3_2   32
02470 
02471 #define VDP_DECODER_LEVEL_H264_4     40
02472 
02473 #define VDP_DECODER_LEVEL_H264_4_1   41
02474 
02475 #define VDP_DECODER_LEVEL_H264_4_2   42
02476 
02477 #define VDP_DECODER_LEVEL_H264_5     50
02478 
02479 #define VDP_DECODER_LEVEL_H264_5_1   51
02480 
02482 #define VDP_DECODER_LEVEL_VC1_SIMPLE_LOW    0
02483 
02484 #define VDP_DECODER_LEVEL_VC1_SIMPLE_MEDIUM 1
02485 
02487 #define VDP_DECODER_LEVEL_VC1_MAIN_LOW    0
02488 
02489 #define VDP_DECODER_LEVEL_VC1_MAIN_MEDIUM 1
02490 
02491 #define VDP_DECODER_LEVEL_VC1_MAIN_HIGH   2
02492 
02494 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L0 0
02495 
02496 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L1 1
02497 
02498 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L2 2
02499 
02500 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L3 3
02501 
02502 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L4 4
02503 
02505 #define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L0 0
02506 
02507 #define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L1 1
02508 
02509 #define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L2 2
02510 
02511 #define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L3 3
02512 
02514 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L0 0
02515 
02516 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L1 1
02517 
02518 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L2 2
02519 
02520 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L3 3
02521 
02522 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L4 4
02523 
02524 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L5 5
02525 
02527 #define VDP_DECODER_LEVEL_DIVX_NA 0
02528 
02547 typedef VdpStatus VdpDecoderQueryCapabilities(
02548     VdpDevice         device,
02549     VdpDecoderProfile profile,
02550     /* output parameters follow */
02551     VdpBool *         is_supported,
02552     uint32_t *        max_level,
02553     uint32_t *        max_macroblocks,
02554     uint32_t *        max_width,
02555     uint32_t *        max_height
02556 );
02557 
02561 typedef uint32_t VdpDecoder;
02562 
02579 typedef VdpStatus VdpDecoderCreate(
02580     VdpDevice         device,
02581     VdpDecoderProfile profile,
02582     uint32_t          width,
02583     uint32_t          height,
02584     uint32_t          max_references,
02585     /* output parameters follow */
02586     VdpDecoder *      decoder
02587 );
02588 
02594 typedef VdpStatus VdpDecoderDestroy(
02595     VdpDecoder decoder
02596 );
02597 
02610 typedef VdpStatus VdpDecoderGetParameters(
02611     VdpDecoder          decoder,
02612     /* output parameters follow */
02613     VdpDecoderProfile * profile,
02614     uint32_t *          width,
02615     uint32_t *          height
02616 );
02617 
02618 #define VDP_BITSTREAM_BUFFER_VERSION 0
02619 
02624 typedef struct {
02628     uint32_t     struct_version;
02630     void const * bitstream;
02632     uint32_t     bitstream_bytes;
02633 } VdpBitstreamBuffer;
02634 
02645 typedef void * VdpPictureInfo;
02646 
02655 typedef struct {
02660     VdpVideoSurface forward_reference;
02665     VdpVideoSurface backward_reference;
02667     uint32_t        slice_count;
02668 
02670     uint8_t picture_structure;
02672     uint8_t picture_coding_type;
02674     uint8_t intra_dc_precision;
02676     uint8_t frame_pred_frame_dct;
02678     uint8_t concealment_motion_vectors;
02680     uint8_t intra_vlc_format;
02682     uint8_t alternate_scan;
02684     uint8_t q_scale_type;
02686     uint8_t top_field_first;
02688     uint8_t full_pel_forward_vector;
02690     uint8_t full_pel_backward_vector;
02695     uint8_t f_code[2][2];
02697     uint8_t intra_quantizer_matrix[64];
02699     uint8_t non_intra_quantizer_matrix[64];
02700 } VdpPictureInfoMPEG1Or2;
02701 
02709 typedef struct {
02714     VdpVideoSurface surface;
02716     VdpBool         is_long_term;
02721     VdpBool         top_is_reference;
02726     VdpBool         bottom_is_reference;
02728     int32_t         field_order_cnt[2];
02734     uint16_t        frame_idx;
02735 } VdpReferenceFrameH264;
02736 
02755 typedef struct {
02757     uint32_t slice_count;
02759     int32_t  field_order_cnt[2];
02761     VdpBool  is_reference;
02762 
02764     uint16_t frame_num;
02766     uint8_t  field_pic_flag;
02768     uint8_t  bottom_field_flag;
02770     uint8_t  num_ref_frames;
02772     uint8_t  mb_adaptive_frame_field_flag;
02774     uint8_t  constrained_intra_pred_flag;
02776     uint8_t  weighted_pred_flag;
02778     uint8_t  weighted_bipred_idc;
02780     uint8_t  frame_mbs_only_flag;
02782     uint8_t  transform_8x8_mode_flag;
02784     int8_t   chroma_qp_index_offset;
02786     int8_t   second_chroma_qp_index_offset;
02788     int8_t   pic_init_qp_minus26;
02790     uint8_t  num_ref_idx_l0_active_minus1;
02792     uint8_t  num_ref_idx_l1_active_minus1;
02794     uint8_t  log2_max_frame_num_minus4;
02796     uint8_t  pic_order_cnt_type;
02798     uint8_t  log2_max_pic_order_cnt_lsb_minus4;
02800     uint8_t  delta_pic_order_always_zero_flag;
02802     uint8_t  direct_8x8_inference_flag;
02804     uint8_t  entropy_coding_mode_flag;
02806     uint8_t  pic_order_present_flag;
02808     uint8_t  deblocking_filter_control_present_flag;
02810     uint8_t  redundant_pic_cnt_present_flag;
02811 
02813     uint8_t scaling_lists_4x4[6][16];
02815     uint8_t scaling_lists_8x8[2][64];
02816 
02818     VdpReferenceFrameH264 referenceFrames[16];
02819 } VdpPictureInfoH264;
02820 
02828 typedef struct {
02833     VdpVideoSurface forward_reference;
02838     VdpVideoSurface backward_reference;
02839 
02841     uint32_t slice_count;
02843     uint8_t  picture_type;
02845     uint8_t  frame_coding_mode;
02846 
02848     uint8_t postprocflag;
02850     uint8_t pulldown;
02852     uint8_t interlace;
02854     uint8_t tfcntrflag;
02856     uint8_t finterpflag;
02858     uint8_t psf;
02860     uint8_t dquant;
02862     uint8_t panscan_flag;
02864     uint8_t refdist_flag;
02866     uint8_t quantizer;
02868     uint8_t extended_mv;
02870     uint8_t extended_dmv;
02872     uint8_t overlap;
02874     uint8_t vstransform;
02876     uint8_t loopfilter;
02878     uint8_t fastuvmc;
02880     uint8_t range_mapy_flag;
02882     uint8_t range_mapy;
02884     uint8_t range_mapuv_flag;
02886     uint8_t range_mapuv;
02887 
02892     uint8_t multires;
02897     uint8_t syncmarker;
02904     uint8_t rangered;
02909     uint8_t maxbframes;
02910 
02916     uint8_t deblockEnable;
02922     uint8_t pquant;
02923 } VdpPictureInfoVC1;
02924 
02932 typedef struct {
02937     VdpVideoSurface forward_reference;
02942     VdpVideoSurface backward_reference;
02943 
02945     int32_t trd[2];
02947     int32_t trb[2];
02949     uint16_t vop_time_increment_resolution;
02951     uint8_t vop_coding_type;
02953     uint8_t vop_fcode_forward;
02955     uint8_t vop_fcode_backward;
02957     uint8_t resync_marker_disable;
02959     uint8_t interlaced;
02961     uint8_t quant_type;
02963     uint8_t quarter_sample;
02965     uint8_t short_video_header;
02967     uint8_t rounding_control;
02969     uint8_t alternate_vertical_scan_flag;
02971     uint8_t top_field_first;
02973     uint8_t intra_quantizer_matrix[64];
02975     uint8_t non_intra_quantizer_matrix[64];
02976 } VdpPictureInfoMPEG4Part2;
02977 
02984 typedef VdpPictureInfoMPEG4Part2 VdpPictureInfoDivX4;
02985 
02992 typedef VdpPictureInfoMPEG4Part2 VdpPictureInfoDivX5;
02993 
03012 typedef VdpStatus VdpDecoderRender(
03013     VdpDecoder                 decoder,
03014     VdpVideoSurface            target,
03015     VdpPictureInfo const *     picture_info,
03016     uint32_t                   bitstream_buffer_count,
03017     VdpBitstreamBuffer const * bitstream_buffers
03018 );
03019 
03099 typedef uint32_t VdpVideoMixerFeature;
03100 
03112 #define VDP_VIDEO_MIXER_FEATURE_DEINTERLACE_TEMPORAL         (VdpVideoMixerFeature)0
03113 
03125 #define VDP_VIDEO_MIXER_FEATURE_DEINTERLACE_TEMPORAL_SPATIAL (VdpVideoMixerFeature)1
03126 
03134 #define VDP_VIDEO_MIXER_FEATURE_INVERSE_TELECINE             (VdpVideoMixerFeature)2
03135 
03142 #define VDP_VIDEO_MIXER_FEATURE_NOISE_REDUCTION              (VdpVideoMixerFeature)3
03143 
03150 #define VDP_VIDEO_MIXER_FEATURE_SHARPNESS                    (VdpVideoMixerFeature)4
03151 
03163 #define VDP_VIDEO_MIXER_FEATURE_LUMA_KEY                     (VdpVideoMixerFeature)5
03164 
03185 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1      (VdpVideoMixerFeature)11
03186 
03192 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L2      (VdpVideoMixerFeature)12
03193 
03199 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L3      (VdpVideoMixerFeature)13
03200 
03206 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L4      (VdpVideoMixerFeature)14
03207 
03213 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L5      (VdpVideoMixerFeature)15
03214 
03220 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L6      (VdpVideoMixerFeature)16
03221 
03227 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L7      (VdpVideoMixerFeature)17
03228 
03234 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L8      (VdpVideoMixerFeature)18
03235 
03241 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L9      (VdpVideoMixerFeature)19
03242 
03255 typedef uint32_t VdpVideoMixerParameter;
03256 
03269 #define VDP_VIDEO_MIXER_PARAMETER_VIDEO_SURFACE_WIDTH  (VdpVideoMixerParameter)0
03270 
03282 #define VDP_VIDEO_MIXER_PARAMETER_VIDEO_SURFACE_HEIGHT (VdpVideoMixerParameter)1
03283 
03296 #define VDP_VIDEO_MIXER_PARAMETER_CHROMA_TYPE          (VdpVideoMixerParameter)2
03297 
03315 #define VDP_VIDEO_MIXER_PARAMETER_LAYERS               (VdpVideoMixerParameter)3
03316 
03329 typedef uint32_t VdpVideoMixerAttribute;
03330 
03344 #define VDP_VIDEO_MIXER_ATTRIBUTE_BACKGROUND_COLOR      (VdpVideoMixerAttribute)0
03345 
03372 #define VDP_VIDEO_MIXER_ATTRIBUTE_CSC_MATRIX            (VdpVideoMixerAttribute)1
03373 
03385 #define VDP_VIDEO_MIXER_ATTRIBUTE_NOISE_REDUCTION_LEVEL (VdpVideoMixerAttribute)2
03386 
03401 #define VDP_VIDEO_MIXER_ATTRIBUTE_SHARPNESS_LEVEL       (VdpVideoMixerAttribute)3
03402 
03413 #define VDP_VIDEO_MIXER_ATTRIBUTE_LUMA_KEY_MIN_LUMA     (VdpVideoMixerAttribute)4
03414 
03425 #define VDP_VIDEO_MIXER_ATTRIBUTE_LUMA_KEY_MAX_LUMA     (VdpVideoMixerAttribute)5
03426 
03440 #define VDP_VIDEO_MIXER_ATTRIBUTE_SKIP_CHROMA_DEINTERLACE (VdpVideoMixerAttribute)6
03441 
03451 typedef VdpStatus VdpVideoMixerQueryFeatureSupport(
03452     VdpDevice            device,
03453     VdpVideoMixerFeature feature,
03454     /* output parameters follow */
03455     VdpBool *            is_supported
03456 );
03457 
03468 typedef VdpStatus VdpVideoMixerQueryParameterSupport(
03469     VdpDevice              device,
03470     VdpVideoMixerParameter parameter,
03471     /* output parameters follow */
03472     VdpBool *              is_supported
03473 );
03474 
03484 typedef VdpStatus VdpVideoMixerQueryAttributeSupport(
03485     VdpDevice              device,
03486     VdpVideoMixerAttribute attribute,
03487     /* output parameters follow */
03488     VdpBool *              is_supported
03489 );
03490 
03501 typedef VdpStatus VdpVideoMixerQueryParameterValueRange(
03502     VdpDevice              device,
03503     VdpVideoMixerParameter parameter,
03504     /* output parameters follow */
03505     void *                min_value,
03506     void *                max_value
03507 );
03508 
03519 typedef VdpStatus VdpVideoMixerQueryAttributeValueRange(
03520     VdpDevice              device,
03521     VdpVideoMixerAttribute attribute,
03522     /* output parameters follow */
03523     void *                min_value,
03524     void *                max_value
03525 );
03526 
03530 typedef uint32_t VdpVideoMixer;
03531 
03552 typedef VdpStatus VdpVideoMixerCreate(
03553     VdpDevice                      device,
03554     // The set of features to request
03555     uint32_t                       feature_count,
03556     VdpVideoMixerFeature const *   features,
03557     // The parameters used during creation
03558     uint32_t                       parameter_count,
03559     VdpVideoMixerParameter const * parameters,
03560     void const * const *           parameter_values,
03561     /* output parameters follow */
03562     VdpVideoMixer *                mixer
03563 );
03564 
03575 typedef VdpStatus VdpVideoMixerSetFeatureEnables(
03576     VdpVideoMixer                mixer,
03577     uint32_t                     feature_count,
03578     VdpVideoMixerFeature const * features,
03579     VdpBool const *              feature_enables
03580 );
03581 
03594 typedef VdpStatus VdpVideoMixerSetAttributeValues(
03595     VdpVideoMixer                  mixer,
03596     uint32_t                       attribute_count,
03597     VdpVideoMixerAttribute const * attributes,
03598     void const * const *           attribute_values
03599 );
03600 
03612 typedef VdpStatus VdpVideoMixerGetFeatureSupport(
03613     VdpVideoMixer                mixer,
03614     uint32_t                     feature_count,
03615     VdpVideoMixerFeature const * features,
03616     /* output parameters follow */
03617     VdpBool *                    feature_supports
03618 );
03619 
03629 typedef VdpStatus VdpVideoMixerGetFeatureEnables(
03630     VdpVideoMixer                mixer,
03631     uint32_t                     feature_count,
03632     VdpVideoMixerFeature const * features,
03633     /* output parameters follow */
03634     VdpBool *                    feature_enables
03635 );
03636 
03649 typedef VdpStatus VdpVideoMixerGetParameterValues(
03650     VdpVideoMixer                  mixer,
03651     uint32_t                       parameter_count,
03652     VdpVideoMixerParameter const * parameters,
03653     /* output parameters follow */
03654     void * const *                 parameter_values
03655 );
03656 
03669 typedef VdpStatus VdpVideoMixerGetAttributeValues(
03670     VdpVideoMixer                  mixer,
03671     uint32_t                       attribute_count,
03672     VdpVideoMixerAttribute const * attributes,
03673     /* output parameters follow */
03674     void * const *                 attribute_values
03675 );
03676 
03682 typedef VdpStatus VdpVideoMixerDestroy(
03683     VdpVideoMixer mixer
03684 );
03685 
03691 typedef enum {
03695     VDP_VIDEO_MIXER_PICTURE_STRUCTURE_TOP_FIELD,
03700     VDP_VIDEO_MIXER_PICTURE_STRUCTURE_BOTTOM_FIELD,
03704     VDP_VIDEO_MIXER_PICTURE_STRUCTURE_FRAME,
03705 } VdpVideoMixerPictureStructure;
03706 
03707 #define VDP_LAYER_VERSION 0
03708 
03713 typedef struct {
03717     uint32_t struct_version;
03721     VdpOutputSurface source_surface;
03726     VdpRect const *  source_rect;
03735      VdpRect const * destination_rect;
03736 } VdpLayer;
03737 
03804 typedef VdpStatus VdpVideoMixerRender(
03805     VdpVideoMixer                 mixer,
03806     VdpOutputSurface              background_surface,
03807     VdpRect const *               background_source_rect,
03808     VdpVideoMixerPictureStructure current_picture_structure,
03809     uint32_t                      video_surface_past_count,
03810     VdpVideoSurface const *       video_surface_past,
03811     VdpVideoSurface               video_surface_current,
03812     uint32_t                      video_surface_future_count,
03813     VdpVideoSurface const *       video_surface_future,
03814     VdpRect const *               video_source_rect,
03815     VdpOutputSurface              destination_surface,
03816     VdpRect const *               destination_rect,
03817     VdpRect const *               destination_video_rect,
03818     uint32_t                      layer_count,
03819     VdpLayer const *              layers
03820 );
03821 
03873 typedef uint64_t VdpTime;
03874 
03883 typedef uint32_t VdpPresentationQueueTarget;
03884 
03890 typedef VdpStatus VdpPresentationQueueTargetDestroy(
03891     VdpPresentationQueueTarget presentation_queue_target
03892 );
03893 
03898 typedef uint32_t VdpPresentationQueue;
03899 
03911 typedef VdpStatus VdpPresentationQueueCreate(
03912     VdpDevice                  device,
03913     VdpPresentationQueueTarget presentation_queue_target,
03914     /* output parameters follow */
03915     VdpPresentationQueue *     presentation_queue
03916 );
03917 
03923 typedef VdpStatus VdpPresentationQueueDestroy(
03924     VdpPresentationQueue presentation_queue
03925 );
03926 
03936 typedef VdpStatus VdpPresentationQueueSetBackgroundColor(
03937     VdpPresentationQueue presentation_queue,
03938     VdpColor * const     background_color
03939 );
03940 
03946 typedef VdpStatus VdpPresentationQueueGetBackgroundColor(
03947     VdpPresentationQueue presentation_queue,
03948     VdpColor *           background_color
03949 );
03950 
03958 typedef VdpStatus VdpPresentationQueueGetTime(
03959     VdpPresentationQueue presentation_queue,
03960     /* output parameters follow */
03961     VdpTime *            current_time
03962 );
03963 
04004 typedef VdpStatus VdpPresentationQueueDisplay(
04005     VdpPresentationQueue presentation_queue,
04006     VdpOutputSurface     surface,
04007     uint32_t             clip_width,
04008     uint32_t             clip_height,
04009     VdpTime              earliest_presentation_time
04010 );
04011 
04027 typedef VdpStatus VdpPresentationQueueBlockUntilSurfaceIdle(
04028     VdpPresentationQueue presentation_queue,
04029     VdpOutputSurface     surface,
04030     /* output parameters follow */
04031     VdpTime *            first_presentation_time
04032 );
04033 
04038 typedef enum {
04040     VDP_PRESENTATION_QUEUE_STATUS_IDLE,
04042     VDP_PRESENTATION_QUEUE_STATUS_QUEUED,
04044     VDP_PRESENTATION_QUEUE_STATUS_VISIBLE,
04045 } VdpPresentationQueueStatus;
04046 
04058 typedef VdpStatus VdpPresentationQueueQuerySurfaceStatus(
04059     VdpPresentationQueue         presentation_queue,
04060     VdpOutputSurface             surface,
04061     /* output parameters follow */
04062     VdpPresentationQueueStatus * status,
04063     VdpTime *                    first_presentation_time
04064 );
04065 
04120 typedef void VdpPreemptionCallback(
04121     VdpDevice device,
04122     void *   context
04123 );
04124 
04135 typedef VdpStatus VdpPreemptionCallbackRegister(
04136     VdpDevice             device,
04137     VdpPreemptionCallback callback,
04138     void *               context
04139 );
04140 
04158 typedef uint32_t VdpFuncId;
04159 
04161 #define VDP_FUNC_ID_GET_ERROR_STRING                                            (VdpFuncId)0
04162 
04163 #define VDP_FUNC_ID_GET_PROC_ADDRESS                                            (VdpFuncId)1
04164 
04165 #define VDP_FUNC_ID_GET_API_VERSION                                             (VdpFuncId)2
04166 
04167 #define VDP_FUNC_ID_GET_INFORMATION_STRING                                      (VdpFuncId)4
04168 
04169 #define VDP_FUNC_ID_DEVICE_DESTROY                                              (VdpFuncId)5
04170 
04171 #define VDP_FUNC_ID_GENERATE_CSC_MATRIX                                         (VdpFuncId)6
04172 
04173 #define VDP_FUNC_ID_VIDEO_SURFACE_QUERY_CAPABILITIES                            (VdpFuncId)7
04174 
04175 #define VDP_FUNC_ID_VIDEO_SURFACE_QUERY_GET_PUT_BITS_Y_CB_CR_CAPABILITIES       (VdpFuncId)8
04176 
04177 #define VDP_FUNC_ID_VIDEO_SURFACE_CREATE                                        (VdpFuncId)9
04178 
04179 #define VDP_FUNC_ID_VIDEO_SURFACE_DESTROY                                       (VdpFuncId)10
04180 
04181 #define VDP_FUNC_ID_VIDEO_SURFACE_GET_PARAMETERS                                (VdpFuncId)11
04182 
04183 #define VDP_FUNC_ID_VIDEO_SURFACE_GET_BITS_Y_CB_CR                              (VdpFuncId)12
04184 
04185 #define VDP_FUNC_ID_VIDEO_SURFACE_PUT_BITS_Y_CB_CR                              (VdpFuncId)13
04186 
04187 #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_CAPABILITIES                           (VdpFuncId)14
04188 
04189 #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_GET_PUT_BITS_NATIVE_CAPABILITIES       (VdpFuncId)15
04190 
04191 #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_PUT_BITS_INDEXED_CAPABILITIES          (VdpFuncId)16
04192 
04193 #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_PUT_BITS_Y_CB_CR_CAPABILITIES          (VdpFuncId)17
04194 
04195 #define VDP_FUNC_ID_OUTPUT_SURFACE_CREATE                                       (VdpFuncId)18
04196 
04197 #define VDP_FUNC_ID_OUTPUT_SURFACE_DESTROY                                      (VdpFuncId)19
04198 
04199 #define VDP_FUNC_ID_OUTPUT_SURFACE_GET_PARAMETERS                               (VdpFuncId)20
04200 
04201 #define VDP_FUNC_ID_OUTPUT_SURFACE_GET_BITS_NATIVE                              (VdpFuncId)21
04202 
04203 #define VDP_FUNC_ID_OUTPUT_SURFACE_PUT_BITS_NATIVE                              (VdpFuncId)22
04204 
04205 #define VDP_FUNC_ID_OUTPUT_SURFACE_PUT_BITS_INDEXED                             (VdpFuncId)23
04206 
04207 #define VDP_FUNC_ID_OUTPUT_SURFACE_PUT_BITS_Y_CB_CR                             (VdpFuncId)24
04208 
04209 #define VDP_FUNC_ID_BITMAP_SURFACE_QUERY_CAPABILITIES                           (VdpFuncId)25
04210 
04211 #define VDP_FUNC_ID_BITMAP_SURFACE_CREATE                                       (VdpFuncId)26
04212 
04213 #define VDP_FUNC_ID_BITMAP_SURFACE_DESTROY                                      (VdpFuncId)27
04214 
04215 #define VDP_FUNC_ID_BITMAP_SURFACE_GET_PARAMETERS                               (VdpFuncId)28
04216 
04217 #define VDP_FUNC_ID_BITMAP_SURFACE_PUT_BITS_NATIVE                              (VdpFuncId)29
04218 
04219 #define VDP_FUNC_ID_OUTPUT_SURFACE_RENDER_OUTPUT_SURFACE                        (VdpFuncId)33
04220 
04221 #define VDP_FUNC_ID_OUTPUT_SURFACE_RENDER_BITMAP_SURFACE                        (VdpFuncId)34
04222 
04223 #define VDP_FUNC_ID_OUTPUT_SURFACE_RENDER_VIDEO_SURFACE_LUMA                    (VdpFuncId)35
04224 
04225 #define VDP_FUNC_ID_DECODER_QUERY_CAPABILITIES                                  (VdpFuncId)36
04226 
04227 #define VDP_FUNC_ID_DECODER_CREATE                                              (VdpFuncId)37
04228 
04229 #define VDP_FUNC_ID_DECODER_DESTROY                                             (VdpFuncId)38
04230 
04231 #define VDP_FUNC_ID_DECODER_GET_PARAMETERS                                      (VdpFuncId)39
04232 
04233 #define VDP_FUNC_ID_DECODER_RENDER                                              (VdpFuncId)40
04234 
04235 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_FEATURE_SUPPORT                           (VdpFuncId)41
04236 
04237 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_PARAMETER_SUPPORT                         (VdpFuncId)42
04238 
04239 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_ATTRIBUTE_SUPPORT                         (VdpFuncId)43
04240 
04241 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_PARAMETER_VALUE_RANGE                     (VdpFuncId)44
04242 
04243 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_ATTRIBUTE_VALUE_RANGE                     (VdpFuncId)45
04244 
04245 #define VDP_FUNC_ID_VIDEO_MIXER_CREATE                                          (VdpFuncId)46
04246 
04247 #define VDP_FUNC_ID_VIDEO_MIXER_SET_FEATURE_ENABLES                             (VdpFuncId)47
04248 
04249 #define VDP_FUNC_ID_VIDEO_MIXER_SET_ATTRIBUTE_VALUES                            (VdpFuncId)48
04250 
04251 #define VDP_FUNC_ID_VIDEO_MIXER_GET_FEATURE_SUPPORT                             (VdpFuncId)49
04252 
04253 #define VDP_FUNC_ID_VIDEO_MIXER_GET_FEATURE_ENABLES                             (VdpFuncId)50
04254 
04255 #define VDP_FUNC_ID_VIDEO_MIXER_GET_PARAMETER_VALUES                            (VdpFuncId)51
04256 
04257 #define VDP_FUNC_ID_VIDEO_MIXER_GET_ATTRIBUTE_VALUES                            (VdpFuncId)52
04258 
04259 #define VDP_FUNC_ID_VIDEO_MIXER_DESTROY                                         (VdpFuncId)53
04260 
04261 #define VDP_FUNC_ID_VIDEO_MIXER_RENDER                                          (VdpFuncId)54
04262 
04263 #define VDP_FUNC_ID_PRESENTATION_QUEUE_TARGET_DESTROY                           (VdpFuncId)55
04264 
04265 #define VDP_FUNC_ID_PRESENTATION_QUEUE_CREATE                                   (VdpFuncId)56
04266 
04267 #define VDP_FUNC_ID_PRESENTATION_QUEUE_DESTROY                                  (VdpFuncId)57
04268 
04269 #define VDP_FUNC_ID_PRESENTATION_QUEUE_SET_BACKGROUND_COLOR                     (VdpFuncId)58
04270 
04271 #define VDP_FUNC_ID_PRESENTATION_QUEUE_GET_BACKGROUND_COLOR                     (VdpFuncId)59
04272 
04273 #define VDP_FUNC_ID_PRESENTATION_QUEUE_GET_TIME                                 (VdpFuncId)62
04274 
04275 #define VDP_FUNC_ID_PRESENTATION_QUEUE_DISPLAY                                  (VdpFuncId)63
04276 
04277 #define VDP_FUNC_ID_PRESENTATION_QUEUE_BLOCK_UNTIL_SURFACE_IDLE                 (VdpFuncId)64
04278 
04279 #define VDP_FUNC_ID_PRESENTATION_QUEUE_QUERY_SURFACE_STATUS                     (VdpFuncId)65
04280 
04281 #define VDP_FUNC_ID_PREEMPTION_CALLBACK_REGISTER                                (VdpFuncId)66
04282 
04283 #define VDP_FUNC_ID_BASE_WINSYS 0x1000
04284 
04294 typedef VdpStatus VdpGetProcAddress(
04295     VdpDevice device,
04296     VdpFuncId function_id,
04297     /* output parameters follow */
04298     void * *  function_pointer
04299 );
04300 
04303 
04311 #ifdef __cplusplus
04312 }
04313 #endif
04314 
04315 #endif
04316 

Generated on Wed Jul 3 20:00:24 2013 for VDPAU by  doxygen 1.5.6