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

Generated on 29 Jan 2013 for VDPAU by  doxygen 1.6.1