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 
01242 #define VDPAU_VERSION 0
01243 
01249 typedef VdpStatus VdpGetApiVersion(
01250     /* output parameters follow */
01251     uint32_t * api_version
01252 );
01253 
01271 typedef VdpStatus VdpGetInformationString(
01272     /* output parameters follow */
01273     char const * * information_string
01274 );
01275 
01295 typedef uint32_t VdpDevice;
01296 
01302 typedef VdpStatus VdpDeviceDestroy(
01303     VdpDevice device
01304 );
01305 
01344 typedef float VdpCSCMatrix[3][4];
01345 
01346 #define VDP_PROCAMP_VERSION 0
01347 
01356 typedef struct {
01360     uint32_t struct_version;
01365     float brightness;
01370     float contrast;
01375     float saturation;
01380     float hue;
01381 } VdpProcamp;
01382 
01389 typedef uint32_t VdpColorStandard;
01390 
01392 #define VDP_COLOR_STANDARD_ITUR_BT_601 (VdpColorStandard)0
01393 
01394 #define VDP_COLOR_STANDARD_ITUR_BT_709 (VdpColorStandard)1
01395 
01396 #define VDP_COLOR_STANDARD_SMPTE_240M  (VdpColorStandard)2
01397 
01406 typedef VdpStatus VdpGenerateCSCMatrix(
01407     VdpProcamp *     procamp,
01408     VdpColorStandard standard,
01409     /* output parameters follow */
01410     VdpCSCMatrix *   csc_matrix
01411 );
01412 
01457 typedef VdpStatus VdpVideoSurfaceQueryCapabilities(
01458     VdpDevice     device,
01459     VdpChromaType surface_chroma_type,
01460     /* output parameters follow */
01461     VdpBool *     is_supported,
01462     uint32_t *    max_width,
01463     uint32_t *    max_height
01464 );
01465 
01477 typedef VdpStatus VdpVideoSurfaceQueryGetPutBitsYCbCrCapabilities(
01478     VdpDevice      device,
01479     VdpChromaType  surface_chroma_type,
01480     VdpYCbCrFormat bits_ycbcr_format,
01481     /* output parameters follow */
01482     VdpBool *      is_supported
01483 );
01484 
01489 typedef uint32_t VdpVideoSurface;
01490 
01536 typedef VdpStatus VdpVideoSurfaceCreate(
01537     VdpDevice         device,
01538     VdpChromaType     chroma_type,
01539     uint32_t          width,
01540     uint32_t          height,
01541     /* output parameters follow */
01542     VdpVideoSurface * surface
01543 );
01544 
01550 typedef VdpStatus VdpVideoSurfaceDestroy(
01551     VdpVideoSurface surface
01552 );
01553 
01563 typedef VdpStatus VdpVideoSurfaceGetParameters(
01564     VdpVideoSurface surface,
01565     /* output parameters follow */
01566     VdpChromaType * chroma_type,
01567     uint32_t *      width,
01568     uint32_t *      height
01569 );
01570 
01589 typedef VdpStatus VdpVideoSurfaceGetBitsYCbCr(
01590     VdpVideoSurface  surface,
01591     VdpYCbCrFormat   destination_ycbcr_format,
01592     void * const *   destination_data,
01593     uint32_t const * destination_pitches
01594 );
01595 
01614 typedef VdpStatus VdpVideoSurfacePutBitsYCbCr(
01615     VdpVideoSurface      surface,
01616     VdpYCbCrFormat       source_ycbcr_format,
01617     void const * const * source_data,
01618     uint32_t const *     source_pitches
01619 );
01620 
01656 typedef uint32_t VdpColorTableFormat;
01657 
01669 #define VDP_COLOR_TABLE_FORMAT_B8G8R8X8 (VdpColorTableFormat)0
01670 
01684 typedef VdpStatus VdpOutputSurfaceQueryCapabilities(
01685     VdpDevice     device,
01686     VdpRGBAFormat surface_rgba_format,
01687     /* output parameters follow */
01688     VdpBool *     is_supported,
01689     uint32_t *    max_width,
01690     uint32_t *    max_height
01691 );
01692 
01703 typedef VdpStatus VdpOutputSurfaceQueryGetPutBitsNativeCapabilities(
01704     VdpDevice     device,
01705     VdpRGBAFormat surface_rgba_format,
01706     /* output parameters follow */
01707     VdpBool *     is_supported
01708 );
01709 
01724 typedef VdpStatus VdpOutputSurfaceQueryPutBitsIndexedCapabilities(
01725     VdpDevice           device,
01726     VdpRGBAFormat       surface_rgba_format,
01727     VdpIndexedFormat    bits_indexed_format,
01728     VdpColorTableFormat color_table_format,
01729     /* output parameters follow */
01730     VdpBool *           is_supported
01731 );
01732 
01745 typedef VdpStatus VdpOutputSurfaceQueryPutBitsYCbCrCapabilities(
01746     VdpDevice      device,
01747     VdpRGBAFormat  surface_rgba_format,
01748     VdpYCbCrFormat bits_ycbcr_format,
01749     /* output parameters follow */
01750     VdpBool *      is_supported
01751 );
01752 
01757 typedef uint32_t VdpOutputSurface;
01758 
01771 typedef VdpStatus VdpOutputSurfaceCreate(
01772     VdpDevice          device,
01773     VdpRGBAFormat      rgba_format,
01774     uint32_t           width,
01775     uint32_t           height,
01776     /* output parameters follow */
01777     VdpOutputSurface * surface
01778 );
01779 
01785 typedef VdpStatus VdpOutputSurfaceDestroy(
01786     VdpOutputSurface surface
01787 );
01788 
01798 typedef VdpStatus VdpOutputSurfaceGetParameters(
01799     VdpOutputSurface surface,
01800     /* output parameters follow */
01801     VdpRGBAFormat *  rgba_format,
01802     uint32_t *       width,
01803     uint32_t *       height
01804 );
01805 
01825 typedef VdpStatus VdpOutputSurfaceGetBitsNative(
01826     VdpOutputSurface surface,
01827     VdpRect const *  source_rect,
01828     void * const *   destination_data,
01829     uint32_t const * destination_pitches
01830 );
01831 
01851 typedef VdpStatus VdpOutputSurfacePutBitsNative(
01852     VdpOutputSurface     surface,
01853     void const * const * source_data,
01854     uint32_t const *     source_pitches,
01855     VdpRect const *      destination_rect
01856 );
01857 
01883 typedef VdpStatus VdpOutputSurfacePutBitsIndexed(
01884     VdpOutputSurface     surface,
01885     VdpIndexedFormat     source_indexed_format,
01886     void const * const * source_data,
01887     uint32_t const *     source_pitch,
01888     VdpRect const *      destination_rect,
01889     VdpColorTableFormat  color_table_format,
01890     void const *         color_table
01891 );
01892 
01918 typedef VdpStatus VdpOutputSurfacePutBitsYCbCr(
01919     VdpOutputSurface     surface,
01920     VdpYCbCrFormat       source_ycbcr_format,
01921     void const * const * source_data,
01922     uint32_t const *     source_pitches,
01923     VdpRect const *      destination_rect,
01924     VdpCSCMatrix const * csc_matrix
01925 );
01926 
01978 typedef VdpStatus VdpBitmapSurfaceQueryCapabilities(
01979     VdpDevice     device,
01980     VdpRGBAFormat surface_rgba_format,
01981     /* output parameters follow */
01982     VdpBool *     is_supported,
01983     uint32_t *    max_width,
01984     uint32_t *    max_height
01985 );
01986 
01991 typedef uint32_t VdpBitmapSurface;
01992 
02010 typedef VdpStatus VdpBitmapSurfaceCreate(
02011     VdpDevice          device,
02012     VdpRGBAFormat      rgba_format,
02013     uint32_t           width,
02014     uint32_t           height,
02015     VdpBool            frequently_accessed,
02016     /* output parameters follow */
02017     VdpBitmapSurface * surface
02018 );
02019 
02025 typedef VdpStatus VdpBitmapSurfaceDestroy(
02026     VdpBitmapSurface surface
02027 );
02028 
02040 typedef VdpStatus VdpBitmapSurfaceGetParameters(
02041     VdpBitmapSurface surface,
02042     /* output parameters follow */
02043     VdpRGBAFormat *  rgba_format,
02044     uint32_t *       width,
02045     uint32_t *       height,
02046     VdpBool *        frequently_accessed
02047 );
02048 
02068 typedef VdpStatus VdpBitmapSurfacePutBitsNative(
02069     VdpBitmapSurface     surface,
02070     void const * const * source_data,
02071     uint32_t const *     source_pitches,
02072     VdpRect const *      destination_rect
02073 );
02074 
02092 typedef enum {
02093     VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ZERO                     = 0,
02094     VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE                      = 1,
02095     VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_SRC_COLOR                = 2,
02096     VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_SRC_COLOR      = 3,
02097     VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_SRC_ALPHA                = 4,
02098     VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA      = 5,
02099     VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_DST_ALPHA                = 6,
02100     VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_DST_ALPHA      = 7,
02101     VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_DST_COLOR                = 8,
02102     VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_DST_COLOR      = 9,
02103     VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_SRC_ALPHA_SATURATE       = 10,
02104     VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_CONSTANT_COLOR           = 11,
02105     VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 12,
02106     VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_CONSTANT_ALPHA           = 13,
02107     VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 14,
02108 } VdpOutputSurfaceRenderBlendFactor;
02109 
02114 typedef enum {
02115     VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_SUBTRACT         = 0,
02116     VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_REVERSE_SUBTRACT = 1,
02117     VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_ADD              = 2,
02118     VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_MIN              = 3,
02119     VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_MAX              = 4,
02120 } VdpOutputSurfaceRenderBlendEquation;
02121 
02122 #define VDP_OUTPUT_SURFACE_RENDER_BLEND_STATE_VERSION 0
02123 
02127 typedef struct {
02131     uint32_t struct_version;
02132     VdpOutputSurfaceRenderBlendFactor   blend_factor_source_color;
02133     VdpOutputSurfaceRenderBlendFactor   blend_factor_destination_color;
02134     VdpOutputSurfaceRenderBlendFactor   blend_factor_source_alpha;
02135     VdpOutputSurfaceRenderBlendFactor   blend_factor_destination_alpha;
02136     VdpOutputSurfaceRenderBlendEquation blend_equation_color;
02137     VdpOutputSurfaceRenderBlendEquation blend_equation_alpha;
02138     VdpColor                            blend_constant;
02139 } VdpOutputSurfaceRenderBlendState;
02140 
02145 #define VDP_OUTPUT_SURFACE_RENDER_ROTATE_0   0
02146 
02152 #define VDP_OUTPUT_SURFACE_RENDER_ROTATE_90  1
02153 
02159 #define VDP_OUTPUT_SURFACE_RENDER_ROTATE_180 2
02160 
02166 #define VDP_OUTPUT_SURFACE_RENDER_ROTATE_270 3
02167 
02175 #define VDP_OUTPUT_SURFACE_RENDER_COLOR_PER_VERTEX (1 << 2)
02176 
02254 typedef VdpStatus VdpOutputSurfaceRenderOutputSurface(
02255     VdpOutputSurface                         destination_surface,
02256     VdpRect const *                          destination_rect,
02257     VdpOutputSurface                         source_surface,
02258     VdpRect const *                          source_rect,
02259     VdpColor const *                         colors,
02260     VdpOutputSurfaceRenderBlendState const * blend_state,
02261     uint32_t                                 flags
02262 );
02263 
02341 typedef VdpStatus VdpOutputSurfaceRenderBitmapSurface(
02342     VdpOutputSurface                         destination_surface,
02343     VdpRect const *                          destination_rect,
02344     VdpBitmapSurface                         source_surface,
02345     VdpRect const *                          source_rect,
02346     VdpColor const *                         colors,
02347     VdpOutputSurfaceRenderBlendState const * blend_state,
02348     uint32_t                                 flags
02349 );
02350 
02371 typedef uint32_t VdpDecoderProfile;
02372 
02374 #define VDP_DECODER_PROFILE_MPEG1                       (VdpDecoderProfile)0
02375 
02376 #define VDP_DECODER_PROFILE_MPEG2_SIMPLE                (VdpDecoderProfile)1
02377 
02378 #define VDP_DECODER_PROFILE_MPEG2_MAIN                  (VdpDecoderProfile)2
02379 
02381 #define VDP_DECODER_PROFILE_H264_BASELINE               (VdpDecoderProfile)6
02382 
02383 #define VDP_DECODER_PROFILE_H264_MAIN                   (VdpDecoderProfile)7
02384 
02385 #define VDP_DECODER_PROFILE_H264_HIGH                   (VdpDecoderProfile)8
02386 
02387 #define VDP_DECODER_PROFILE_VC1_SIMPLE                  (VdpDecoderProfile)9
02388 
02389 #define VDP_DECODER_PROFILE_VC1_MAIN                    (VdpDecoderProfile)10
02390 
02391 #define VDP_DECODER_PROFILE_VC1_ADVANCED                (VdpDecoderProfile)11
02392 
02393 #define VDP_DECODER_PROFILE_MPEG4_PART2_SP              (VdpDecoderProfile)12
02394 
02395 #define VDP_DECODER_PROFILE_MPEG4_PART2_ASP             (VdpDecoderProfile)13
02396 
02397 #define VDP_DECODER_PROFILE_DIVX4_QMOBILE               (VdpDecoderProfile)14
02398 
02399 #define VDP_DECODER_PROFILE_DIVX4_MOBILE                (VdpDecoderProfile)15
02400 
02401 #define VDP_DECODER_PROFILE_DIVX4_HOME_THEATER          (VdpDecoderProfile)16
02402 
02403 #define VDP_DECODER_PROFILE_DIVX4_HD_1080P              (VdpDecoderProfile)17
02404 
02405 #define VDP_DECODER_PROFILE_DIVX5_QMOBILE               (VdpDecoderProfile)18
02406 
02407 #define VDP_DECODER_PROFILE_DIVX5_MOBILE                (VdpDecoderProfile)19
02408 
02409 #define VDP_DECODER_PROFILE_DIVX5_HOME_THEATER          (VdpDecoderProfile)20
02410 
02411 #define VDP_DECODER_PROFILE_DIVX5_HD_1080P              (VdpDecoderProfile)21
02412 
02414 #define VDP_DECODER_LEVEL_MPEG1_NA 0
02415 
02417 #define VDP_DECODER_LEVEL_MPEG2_LL   0
02418 
02419 #define VDP_DECODER_LEVEL_MPEG2_ML   1
02420 
02421 #define VDP_DECODER_LEVEL_MPEG2_HL14 2
02422 
02423 #define VDP_DECODER_LEVEL_MPEG2_HL   3
02424 
02426 #define VDP_DECODER_LEVEL_H264_1     10
02427 
02428 #define VDP_DECODER_LEVEL_H264_1b    9
02429 
02430 #define VDP_DECODER_LEVEL_H264_1_1   11
02431 
02432 #define VDP_DECODER_LEVEL_H264_1_2   12
02433 
02434 #define VDP_DECODER_LEVEL_H264_1_3   13
02435 
02436 #define VDP_DECODER_LEVEL_H264_2     20
02437 
02438 #define VDP_DECODER_LEVEL_H264_2_1   21
02439 
02440 #define VDP_DECODER_LEVEL_H264_2_2   22
02441 
02442 #define VDP_DECODER_LEVEL_H264_3     30
02443 
02444 #define VDP_DECODER_LEVEL_H264_3_1   31
02445 
02446 #define VDP_DECODER_LEVEL_H264_3_2   32
02447 
02448 #define VDP_DECODER_LEVEL_H264_4     40
02449 
02450 #define VDP_DECODER_LEVEL_H264_4_1   41
02451 
02452 #define VDP_DECODER_LEVEL_H264_4_2   42
02453 
02454 #define VDP_DECODER_LEVEL_H264_5     50
02455 
02456 #define VDP_DECODER_LEVEL_H264_5_1   51
02457 
02459 #define VDP_DECODER_LEVEL_VC1_SIMPLE_LOW    0
02460 
02461 #define VDP_DECODER_LEVEL_VC1_SIMPLE_MEDIUM 1
02462 
02464 #define VDP_DECODER_LEVEL_VC1_MAIN_LOW    0
02465 
02466 #define VDP_DECODER_LEVEL_VC1_MAIN_MEDIUM 1
02467 
02468 #define VDP_DECODER_LEVEL_VC1_MAIN_HIGH   2
02469 
02471 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L0 0
02472 
02473 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L1 1
02474 
02475 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L2 2
02476 
02477 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L3 3
02478 
02479 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L4 4
02480 
02482 #define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L0 0
02483 
02484 #define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L1 1
02485 
02486 #define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L2 2
02487 
02488 #define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L3 3
02489 
02491 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L0 0
02492 
02493 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L1 1
02494 
02495 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L2 2
02496 
02497 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L3 3
02498 
02499 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L4 4
02500 
02501 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L5 5
02502 
02504 #define VDP_DECODER_LEVEL_DIVX_NA 0
02505 
02524 typedef VdpStatus VdpDecoderQueryCapabilities(
02525     VdpDevice         device,
02526     VdpDecoderProfile profile,
02527     /* output parameters follow */
02528     VdpBool *         is_supported,
02529     uint32_t *        max_level,
02530     uint32_t *        max_macroblocks,
02531     uint32_t *        max_width,
02532     uint32_t *        max_height
02533 );
02534 
02538 typedef uint32_t VdpDecoder;
02539 
02556 typedef VdpStatus VdpDecoderCreate(
02557     VdpDevice         device,
02558     VdpDecoderProfile profile,
02559     uint32_t          width,
02560     uint32_t          height,
02561     uint32_t          max_references,
02562     /* output parameters follow */
02563     VdpDecoder *      decoder
02564 );
02565 
02571 typedef VdpStatus VdpDecoderDestroy(
02572     VdpDecoder decoder
02573 );
02574 
02587 typedef VdpStatus VdpDecoderGetParameters(
02588     VdpDecoder          decoder,
02589     /* output parameters follow */
02590     VdpDecoderProfile * profile,
02591     uint32_t *          width,
02592     uint32_t *          height
02593 );
02594 
02595 #define VDP_BITSTREAM_BUFFER_VERSION 0
02596 
02601 typedef struct {
02605     uint32_t     struct_version;
02607     void const * bitstream;
02609     uint32_t     bitstream_bytes;
02610 } VdpBitstreamBuffer;
02611 
02622 typedef void * VdpPictureInfo;
02623 
02632 typedef struct {
02637     VdpVideoSurface forward_reference;
02642     VdpVideoSurface backward_reference;
02644     uint32_t        slice_count;
02645 
02647     uint8_t picture_structure;
02649     uint8_t picture_coding_type;
02651     uint8_t intra_dc_precision;
02653     uint8_t frame_pred_frame_dct;
02655     uint8_t concealment_motion_vectors;
02657     uint8_t intra_vlc_format;
02659     uint8_t alternate_scan;
02661     uint8_t q_scale_type;
02663     uint8_t top_field_first;
02665     uint8_t full_pel_forward_vector;
02667     uint8_t full_pel_backward_vector;
02672     uint8_t f_code[2][2];
02674     uint8_t intra_quantizer_matrix[64];
02676     uint8_t non_intra_quantizer_matrix[64];
02677 } VdpPictureInfoMPEG1Or2;
02678 
02686 typedef struct {
02691     VdpVideoSurface surface;
02693     VdpBool         is_long_term;
02698     VdpBool         top_is_reference;
02703     VdpBool         bottom_is_reference;
02705     int32_t         field_order_cnt[2];
02711     uint16_t        frame_idx;
02712 } VdpReferenceFrameH264;
02713 
02732 typedef struct {
02734     uint32_t slice_count;
02736     int32_t  field_order_cnt[2];
02738     VdpBool  is_reference;
02739 
02741     uint16_t frame_num;
02743     uint8_t  field_pic_flag;
02745     uint8_t  bottom_field_flag;
02747     uint8_t  num_ref_frames;
02749     uint8_t  mb_adaptive_frame_field_flag;
02751     uint8_t  constrained_intra_pred_flag;
02753     uint8_t  weighted_pred_flag;
02755     uint8_t  weighted_bipred_idc;
02757     uint8_t  frame_mbs_only_flag;
02759     uint8_t  transform_8x8_mode_flag;
02761     int8_t   chroma_qp_index_offset;
02763     int8_t   second_chroma_qp_index_offset;
02765     int8_t   pic_init_qp_minus26;
02767     uint8_t  num_ref_idx_l0_active_minus1;
02769     uint8_t  num_ref_idx_l1_active_minus1;
02771     uint8_t  log2_max_frame_num_minus4;
02773     uint8_t  pic_order_cnt_type;
02775     uint8_t  log2_max_pic_order_cnt_lsb_minus4;
02777     uint8_t  delta_pic_order_always_zero_flag;
02779     uint8_t  direct_8x8_inference_flag;
02781     uint8_t  entropy_coding_mode_flag;
02783     uint8_t  pic_order_present_flag;
02785     uint8_t  deblocking_filter_control_present_flag;
02787     uint8_t  redundant_pic_cnt_present_flag;
02788 
02790     uint8_t scaling_lists_4x4[6][16];
02792     uint8_t scaling_lists_8x8[2][64];
02793 
02795     VdpReferenceFrameH264 referenceFrames[16];
02796 } VdpPictureInfoH264;
02797 
02805 typedef struct {
02810     VdpVideoSurface forward_reference;
02815     VdpVideoSurface backward_reference;
02816 
02818     uint32_t slice_count;
02820     uint8_t  picture_type;
02822     uint8_t  frame_coding_mode;
02823 
02825     uint8_t postprocflag;
02827     uint8_t pulldown;
02829     uint8_t interlace;
02831     uint8_t tfcntrflag;
02833     uint8_t finterpflag;
02835     uint8_t psf;
02837     uint8_t dquant;
02839     uint8_t panscan_flag;
02841     uint8_t refdist_flag;
02843     uint8_t quantizer;
02845     uint8_t extended_mv;
02847     uint8_t extended_dmv;
02849     uint8_t overlap;
02851     uint8_t vstransform;
02853     uint8_t loopfilter;
02855     uint8_t fastuvmc;
02857     uint8_t range_mapy_flag;
02859     uint8_t range_mapy;
02861     uint8_t range_mapuv_flag;
02863     uint8_t range_mapuv;
02864 
02869     uint8_t multires;
02874     uint8_t syncmarker;
02881     uint8_t rangered;
02886     uint8_t maxbframes;
02887 
02893     uint8_t deblockEnable;
02899     uint8_t pquant;
02900 } VdpPictureInfoVC1;
02901 
02909 typedef struct {
02914     VdpVideoSurface forward_reference;
02919     VdpVideoSurface backward_reference;
02920 
02922     int32_t trd[2];
02924     int32_t trb[2];
02926     uint16_t vop_time_increment_resolution;
02928     uint8_t vop_coding_type;
02930     uint8_t vop_fcode_forward;
02932     uint8_t vop_fcode_backward;
02934     uint8_t resync_marker_disable;
02936     uint8_t interlaced;
02938     uint8_t quant_type;
02940     uint8_t quarter_sample;
02942     uint8_t short_video_header;
02944     uint8_t rounding_control;
02946     uint8_t alternate_vertical_scan_flag;
02948     uint8_t top_field_first;
02950     uint8_t intra_quantizer_matrix[64];
02952     uint8_t non_intra_quantizer_matrix[64];
02953 } VdpPictureInfoMPEG4Part2;
02954 
02961 typedef VdpPictureInfoMPEG4Part2 VdpPictureInfoDivX4;
02962 
02969 typedef VdpPictureInfoMPEG4Part2 VdpPictureInfoDivX5;
02970 
02989 typedef VdpStatus VdpDecoderRender(
02990     VdpDecoder                 decoder,
02991     VdpVideoSurface            target,
02992     VdpPictureInfo const *     picture_info,
02993     uint32_t                   bitstream_buffer_count,
02994     VdpBitstreamBuffer const * bitstream_buffers
02995 );
02996 
03076 typedef uint32_t VdpVideoMixerFeature;
03077 
03089 #define VDP_VIDEO_MIXER_FEATURE_DEINTERLACE_TEMPORAL         (VdpVideoMixerFeature)0
03090 
03102 #define VDP_VIDEO_MIXER_FEATURE_DEINTERLACE_TEMPORAL_SPATIAL (VdpVideoMixerFeature)1
03103 
03111 #define VDP_VIDEO_MIXER_FEATURE_INVERSE_TELECINE             (VdpVideoMixerFeature)2
03112 
03119 #define VDP_VIDEO_MIXER_FEATURE_NOISE_REDUCTION              (VdpVideoMixerFeature)3
03120 
03127 #define VDP_VIDEO_MIXER_FEATURE_SHARPNESS                    (VdpVideoMixerFeature)4
03128 
03140 #define VDP_VIDEO_MIXER_FEATURE_LUMA_KEY                     (VdpVideoMixerFeature)5
03141 
03162 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1      (VdpVideoMixerFeature)11
03163 
03169 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L2      (VdpVideoMixerFeature)12
03170 
03176 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L3      (VdpVideoMixerFeature)13
03177 
03183 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L4      (VdpVideoMixerFeature)14
03184 
03190 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L5      (VdpVideoMixerFeature)15
03191 
03197 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L6      (VdpVideoMixerFeature)16
03198 
03204 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L7      (VdpVideoMixerFeature)17
03205 
03211 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L8      (VdpVideoMixerFeature)18
03212 
03218 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L9      (VdpVideoMixerFeature)19
03219 
03232 typedef uint32_t VdpVideoMixerParameter;
03233 
03246 #define VDP_VIDEO_MIXER_PARAMETER_VIDEO_SURFACE_WIDTH  (VdpVideoMixerParameter)0
03247 
03259 #define VDP_VIDEO_MIXER_PARAMETER_VIDEO_SURFACE_HEIGHT (VdpVideoMixerParameter)1
03260 
03273 #define VDP_VIDEO_MIXER_PARAMETER_CHROMA_TYPE          (VdpVideoMixerParameter)2
03274 
03292 #define VDP_VIDEO_MIXER_PARAMETER_LAYERS               (VdpVideoMixerParameter)3
03293 
03306 typedef uint32_t VdpVideoMixerAttribute;
03307 
03321 #define VDP_VIDEO_MIXER_ATTRIBUTE_BACKGROUND_COLOR      (VdpVideoMixerAttribute)0
03322 
03349 #define VDP_VIDEO_MIXER_ATTRIBUTE_CSC_MATRIX            (VdpVideoMixerAttribute)1
03350 
03362 #define VDP_VIDEO_MIXER_ATTRIBUTE_NOISE_REDUCTION_LEVEL (VdpVideoMixerAttribute)2
03363 
03378 #define VDP_VIDEO_MIXER_ATTRIBUTE_SHARPNESS_LEVEL       (VdpVideoMixerAttribute)3
03379 
03390 #define VDP_VIDEO_MIXER_ATTRIBUTE_LUMA_KEY_MIN_LUMA     (VdpVideoMixerAttribute)4
03391 
03402 #define VDP_VIDEO_MIXER_ATTRIBUTE_LUMA_KEY_MAX_LUMA     (VdpVideoMixerAttribute)5
03403 
03417 #define VDP_VIDEO_MIXER_ATTRIBUTE_SKIP_CHROMA_DEINTERLACE (VdpVideoMixerAttribute)6
03418 
03428 typedef VdpStatus VdpVideoMixerQueryFeatureSupport(
03429     VdpDevice            device,
03430     VdpVideoMixerFeature feature,
03431     /* output parameters follow */
03432     VdpBool *            is_supported
03433 );
03434 
03445 typedef VdpStatus VdpVideoMixerQueryParameterSupport(
03446     VdpDevice              device,
03447     VdpVideoMixerParameter parameter,
03448     /* output parameters follow */
03449     VdpBool *              is_supported
03450 );
03451 
03461 typedef VdpStatus VdpVideoMixerQueryAttributeSupport(
03462     VdpDevice              device,
03463     VdpVideoMixerAttribute attribute,
03464     /* output parameters follow */
03465     VdpBool *              is_supported
03466 );
03467 
03478 typedef VdpStatus VdpVideoMixerQueryParameterValueRange(
03479     VdpDevice              device,
03480     VdpVideoMixerParameter parameter,
03481     /* output parameters follow */
03482     void *                min_value,
03483     void *                max_value
03484 );
03485 
03496 typedef VdpStatus VdpVideoMixerQueryAttributeValueRange(
03497     VdpDevice              device,
03498     VdpVideoMixerAttribute attribute,
03499     /* output parameters follow */
03500     void *                min_value,
03501     void *                max_value
03502 );
03503 
03507 typedef uint32_t VdpVideoMixer;
03508 
03529 typedef VdpStatus VdpVideoMixerCreate(
03530     VdpDevice                      device,
03531     // The set of features to request
03532     uint32_t                       feature_count,
03533     VdpVideoMixerFeature const *   features,
03534     // The parameters used during creation
03535     uint32_t                       parameter_count,
03536     VdpVideoMixerParameter const * parameters,
03537     void const * const *           parameter_values,
03538     /* output parameters follow */
03539     VdpVideoMixer *                mixer
03540 );
03541 
03552 typedef VdpStatus VdpVideoMixerSetFeatureEnables(
03553     VdpVideoMixer                mixer,
03554     uint32_t                     feature_count,
03555     VdpVideoMixerFeature const * features,
03556     VdpBool const *              feature_enables
03557 );
03558 
03571 typedef VdpStatus VdpVideoMixerSetAttributeValues(
03572     VdpVideoMixer                  mixer,
03573     uint32_t                       attribute_count,
03574     VdpVideoMixerAttribute const * attributes,
03575     void const * const *           attribute_values
03576 );
03577 
03589 typedef VdpStatus VdpVideoMixerGetFeatureSupport(
03590     VdpVideoMixer                mixer,
03591     uint32_t                     feature_count,
03592     VdpVideoMixerFeature const * features,
03593     /* output parameters follow */
03594     VdpBool *                    feature_supports
03595 );
03596 
03606 typedef VdpStatus VdpVideoMixerGetFeatureEnables(
03607     VdpVideoMixer                mixer,
03608     uint32_t                     feature_count,
03609     VdpVideoMixerFeature const * features,
03610     /* output parameters follow */
03611     VdpBool *                    feature_enables
03612 );
03613 
03626 typedef VdpStatus VdpVideoMixerGetParameterValues(
03627     VdpVideoMixer                  mixer,
03628     uint32_t                       parameter_count,
03629     VdpVideoMixerParameter const * parameters,
03630     /* output parameters follow */
03631     void * const *                 parameter_values
03632 );
03633 
03646 typedef VdpStatus VdpVideoMixerGetAttributeValues(
03647     VdpVideoMixer                  mixer,
03648     uint32_t                       attribute_count,
03649     VdpVideoMixerAttribute const * attributes,
03650     /* output parameters follow */
03651     void * const *                 attribute_values
03652 );
03653 
03659 typedef VdpStatus VdpVideoMixerDestroy(
03660     VdpVideoMixer mixer
03661 );
03662 
03668 typedef enum {
03672     VDP_VIDEO_MIXER_PICTURE_STRUCTURE_TOP_FIELD,
03677     VDP_VIDEO_MIXER_PICTURE_STRUCTURE_BOTTOM_FIELD,
03681     VDP_VIDEO_MIXER_PICTURE_STRUCTURE_FRAME,
03682 } VdpVideoMixerPictureStructure;
03683 
03684 #define VDP_LAYER_VERSION 0
03685 
03690 typedef struct {
03694     uint32_t struct_version;
03698     VdpOutputSurface source_surface;
03703     VdpRect const *  source_rect;
03712      VdpRect const * destination_rect;
03713 } VdpLayer;
03714 
03778 typedef VdpStatus VdpVideoMixerRender(
03779     VdpVideoMixer                 mixer,
03780     VdpOutputSurface              background_surface,
03781     VdpRect const *               background_source_rect,
03782     VdpVideoMixerPictureStructure current_picture_structure,
03783     uint32_t                      video_surface_past_count,
03784     VdpVideoSurface const *       video_surface_past,
03785     VdpVideoSurface               video_surface_current,
03786     uint32_t                      video_surface_future_count,
03787     VdpVideoSurface const *       video_surface_future,
03788     VdpRect const *               video_source_rect,
03789     VdpOutputSurface              destination_surface,
03790     VdpRect const *               destination_rect,
03791     VdpRect const *               destination_video_rect,
03792     uint32_t                      layer_count,
03793     VdpLayer const *              layers
03794 );
03795 
03847 typedef uint64_t VdpTime;
03848 
03857 typedef uint32_t VdpPresentationQueueTarget;
03858 
03864 typedef VdpStatus VdpPresentationQueueTargetDestroy(
03865     VdpPresentationQueueTarget presentation_queue_target
03866 );
03867 
03872 typedef uint32_t VdpPresentationQueue;
03873 
03885 typedef VdpStatus VdpPresentationQueueCreate(
03886     VdpDevice                  device,
03887     VdpPresentationQueueTarget presentation_queue_target,
03888     /* output parameters follow */
03889     VdpPresentationQueue *     presentation_queue
03890 );
03891 
03897 typedef VdpStatus VdpPresentationQueueDestroy(
03898     VdpPresentationQueue presentation_queue
03899 );
03900 
03910 typedef VdpStatus VdpPresentationQueueSetBackgroundColor(
03911     VdpPresentationQueue presentation_queue,
03912     VdpColor * const     background_color
03913 );
03914 
03920 typedef VdpStatus VdpPresentationQueueGetBackgroundColor(
03921     VdpPresentationQueue presentation_queue,
03922     VdpColor *           background_color
03923 );
03924 
03932 typedef VdpStatus VdpPresentationQueueGetTime(
03933     VdpPresentationQueue presentation_queue,
03934     /* output parameters follow */
03935     VdpTime *            current_time
03936 );
03937 
03970 typedef VdpStatus VdpPresentationQueueDisplay(
03971     VdpPresentationQueue presentation_queue,
03972     VdpOutputSurface     surface,
03973     uint32_t             clip_width,
03974     uint32_t             clip_height,
03975     VdpTime              earliest_presentation_time
03976 );
03977 
03992 typedef VdpStatus VdpPresentationQueueBlockUntilSurfaceIdle(
03993     VdpPresentationQueue presentation_queue,
03994     VdpOutputSurface     surface,
03995     /* output parameters follow */
03996     VdpTime *            first_presentation_time
03997 );
03998 
04003 typedef enum {
04005     VDP_PRESENTATION_QUEUE_STATUS_IDLE,
04007     VDP_PRESENTATION_QUEUE_STATUS_QUEUED,
04009     VDP_PRESENTATION_QUEUE_STATUS_VISIBLE,
04010 } VdpPresentationQueueStatus;
04011 
04023 typedef VdpStatus VdpPresentationQueueQuerySurfaceStatus(
04024     VdpPresentationQueue         presentation_queue,
04025     VdpOutputSurface             surface,
04026     /* output parameters follow */
04027     VdpPresentationQueueStatus * status,
04028     VdpTime *                    first_presentation_time
04029 );
04030 
04085 typedef void VdpPreemptionCallback(
04086     VdpDevice device,
04087     void *   context
04088 );
04089 
04100 typedef VdpStatus VdpPreemptionCallbackRegister(
04101     VdpDevice             device,
04102     VdpPreemptionCallback callback,
04103     void *               context
04104 );
04105 
04123 typedef uint32_t VdpFuncId;
04124 
04126 #define VDP_FUNC_ID_GET_ERROR_STRING                                            (VdpFuncId)0
04127 
04128 #define VDP_FUNC_ID_GET_PROC_ADDRESS                                            (VdpFuncId)1
04129 
04130 #define VDP_FUNC_ID_GET_API_VERSION                                             (VdpFuncId)2
04131 
04132 #define VDP_FUNC_ID_GET_INFORMATION_STRING                                      (VdpFuncId)4
04133 
04134 #define VDP_FUNC_ID_DEVICE_DESTROY                                              (VdpFuncId)5
04135 
04136 #define VDP_FUNC_ID_GENERATE_CSC_MATRIX                                         (VdpFuncId)6
04137 
04138 #define VDP_FUNC_ID_VIDEO_SURFACE_QUERY_CAPABILITIES                            (VdpFuncId)7
04139 
04140 #define VDP_FUNC_ID_VIDEO_SURFACE_QUERY_GET_PUT_BITS_Y_CB_CR_CAPABILITIES       (VdpFuncId)8
04141 
04142 #define VDP_FUNC_ID_VIDEO_SURFACE_CREATE                                        (VdpFuncId)9
04143 
04144 #define VDP_FUNC_ID_VIDEO_SURFACE_DESTROY                                       (VdpFuncId)10
04145 
04146 #define VDP_FUNC_ID_VIDEO_SURFACE_GET_PARAMETERS                                (VdpFuncId)11
04147 
04148 #define VDP_FUNC_ID_VIDEO_SURFACE_GET_BITS_Y_CB_CR                              (VdpFuncId)12
04149 
04150 #define VDP_FUNC_ID_VIDEO_SURFACE_PUT_BITS_Y_CB_CR                              (VdpFuncId)13
04151 
04152 #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_CAPABILITIES                           (VdpFuncId)14
04153 
04154 #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_GET_PUT_BITS_NATIVE_CAPABILITIES       (VdpFuncId)15
04155 
04156 #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_PUT_BITS_INDEXED_CAPABILITIES          (VdpFuncId)16
04157 
04158 #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_PUT_BITS_Y_CB_CR_CAPABILITIES          (VdpFuncId)17
04159 
04160 #define VDP_FUNC_ID_OUTPUT_SURFACE_CREATE                                       (VdpFuncId)18
04161 
04162 #define VDP_FUNC_ID_OUTPUT_SURFACE_DESTROY                                      (VdpFuncId)19
04163 
04164 #define VDP_FUNC_ID_OUTPUT_SURFACE_GET_PARAMETERS                               (VdpFuncId)20
04165 
04166 #define VDP_FUNC_ID_OUTPUT_SURFACE_GET_BITS_NATIVE                              (VdpFuncId)21
04167 
04168 #define VDP_FUNC_ID_OUTPUT_SURFACE_PUT_BITS_NATIVE                              (VdpFuncId)22
04169 
04170 #define VDP_FUNC_ID_OUTPUT_SURFACE_PUT_BITS_INDEXED                             (VdpFuncId)23
04171 
04172 #define VDP_FUNC_ID_OUTPUT_SURFACE_PUT_BITS_Y_CB_CR                             (VdpFuncId)24
04173 
04174 #define VDP_FUNC_ID_BITMAP_SURFACE_QUERY_CAPABILITIES                           (VdpFuncId)25
04175 
04176 #define VDP_FUNC_ID_BITMAP_SURFACE_CREATE                                       (VdpFuncId)26
04177 
04178 #define VDP_FUNC_ID_BITMAP_SURFACE_DESTROY                                      (VdpFuncId)27
04179 
04180 #define VDP_FUNC_ID_BITMAP_SURFACE_GET_PARAMETERS                               (VdpFuncId)28
04181 
04182 #define VDP_FUNC_ID_BITMAP_SURFACE_PUT_BITS_NATIVE                              (VdpFuncId)29
04183 
04184 #define VDP_FUNC_ID_OUTPUT_SURFACE_RENDER_OUTPUT_SURFACE                        (VdpFuncId)33
04185 
04186 #define VDP_FUNC_ID_OUTPUT_SURFACE_RENDER_BITMAP_SURFACE                        (VdpFuncId)34
04187 
04188 #define VDP_FUNC_ID_OUTPUT_SURFACE_RENDER_VIDEO_SURFACE_LUMA                    (VdpFuncId)35
04189 
04190 #define VDP_FUNC_ID_DECODER_QUERY_CAPABILITIES                                  (VdpFuncId)36
04191 
04192 #define VDP_FUNC_ID_DECODER_CREATE                                              (VdpFuncId)37
04193 
04194 #define VDP_FUNC_ID_DECODER_DESTROY                                             (VdpFuncId)38
04195 
04196 #define VDP_FUNC_ID_DECODER_GET_PARAMETERS                                      (VdpFuncId)39
04197 
04198 #define VDP_FUNC_ID_DECODER_RENDER                                              (VdpFuncId)40
04199 
04200 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_FEATURE_SUPPORT                           (VdpFuncId)41
04201 
04202 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_PARAMETER_SUPPORT                         (VdpFuncId)42
04203 
04204 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_ATTRIBUTE_SUPPORT                         (VdpFuncId)43
04205 
04206 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_PARAMETER_VALUE_RANGE                     (VdpFuncId)44
04207 
04208 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_ATTRIBUTE_VALUE_RANGE                     (VdpFuncId)45
04209 
04210 #define VDP_FUNC_ID_VIDEO_MIXER_CREATE                                          (VdpFuncId)46
04211 
04212 #define VDP_FUNC_ID_VIDEO_MIXER_SET_FEATURE_ENABLES                             (VdpFuncId)47
04213 
04214 #define VDP_FUNC_ID_VIDEO_MIXER_SET_ATTRIBUTE_VALUES                            (VdpFuncId)48
04215 
04216 #define VDP_FUNC_ID_VIDEO_MIXER_GET_FEATURE_SUPPORT                             (VdpFuncId)49
04217 
04218 #define VDP_FUNC_ID_VIDEO_MIXER_GET_FEATURE_ENABLES                             (VdpFuncId)50
04219 
04220 #define VDP_FUNC_ID_VIDEO_MIXER_GET_PARAMETER_VALUES                            (VdpFuncId)51
04221 
04222 #define VDP_FUNC_ID_VIDEO_MIXER_GET_ATTRIBUTE_VALUES                            (VdpFuncId)52
04223 
04224 #define VDP_FUNC_ID_VIDEO_MIXER_DESTROY                                         (VdpFuncId)53
04225 
04226 #define VDP_FUNC_ID_VIDEO_MIXER_RENDER                                          (VdpFuncId)54
04227 
04228 #define VDP_FUNC_ID_PRESENTATION_QUEUE_TARGET_DESTROY                           (VdpFuncId)55
04229 
04230 #define VDP_FUNC_ID_PRESENTATION_QUEUE_CREATE                                   (VdpFuncId)56
04231 
04232 #define VDP_FUNC_ID_PRESENTATION_QUEUE_DESTROY                                  (VdpFuncId)57
04233 
04234 #define VDP_FUNC_ID_PRESENTATION_QUEUE_SET_BACKGROUND_COLOR                     (VdpFuncId)58
04235 
04236 #define VDP_FUNC_ID_PRESENTATION_QUEUE_GET_BACKGROUND_COLOR                     (VdpFuncId)59
04237 
04238 #define VDP_FUNC_ID_PRESENTATION_QUEUE_GET_TIME                                 (VdpFuncId)62
04239 
04240 #define VDP_FUNC_ID_PRESENTATION_QUEUE_DISPLAY                                  (VdpFuncId)63
04241 
04242 #define VDP_FUNC_ID_PRESENTATION_QUEUE_BLOCK_UNTIL_SURFACE_IDLE                 (VdpFuncId)64
04243 
04244 #define VDP_FUNC_ID_PRESENTATION_QUEUE_QUERY_SURFACE_STATUS                     (VdpFuncId)65
04245 
04246 #define VDP_FUNC_ID_PREEMPTION_CALLBACK_REGISTER                                (VdpFuncId)66
04247 
04248 #define VDP_FUNC_ID_BASE_WINSYS 0x1000
04249 
04259 typedef VdpStatus VdpGetProcAddress(
04260     VdpDevice device,
04261     VdpFuncId function_id,
04262     /* output parameters follow */
04263     void * *  function_pointer
04264 );
04265 
04268 
04276 #ifdef __cplusplus
04277 }
04278 #endif
04279 
04280 #endif
04281 

Generated on Tue Sep 1 17:11:04 2009 for VDPAU by  doxygen 1.5.7.1