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

Generated on 24 Oct 2016 for VDPAU by  doxygen 1.6.1