VDPAU
vdpau.h
Go to the documentation of this file.
1 /*
2  * This source file is documented using Doxygen markup.
3  * See http://www.stack.nl/~dimitri/doxygen/
4  */
5 
6 /*
7  * This copyright notice applies to this header file:
8  *
9  * Copyright (c) 2008-2009 NVIDIA Corporation
10  *
11  * Permission is hereby granted, free of charge, to any person
12  * obtaining a copy of this software and associated documentation
13  * files (the "Software"), to deal in the Software without
14  * restriction, including without limitation the rights to use,
15  * copy, modify, merge, publish, distribute, sublicense, and/or sell
16  * copies of the Software, and to permit persons to whom the
17  * Software is furnished to do so, subject to the following
18  * conditions:
19  *
20  * The above copyright notice and this permission notice shall be
21  * included in all copies or substantial portions of the Software.
22  *
23  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
25  * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26  * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
27  * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
28  * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
29  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
30  * OTHER DEALINGS IN THE SOFTWARE.
31  */
32 
739 #ifndef _VDPAU_H
740 #define _VDPAU_H
741 
742 #include <stdint.h>
743 
744 #ifdef __cplusplus
745 extern "C" {
746 #endif
747 
766 #define VDP_TRUE 1
767 
768 #define VDP_FALSE 0
769 
773 typedef int VdpBool;
774 
793 #define VDP_INVALID_HANDLE 0xffffffffU
794 
799 typedef uint32_t VdpChromaType;
800 
802 #define VDP_CHROMA_TYPE_420 (VdpChromaType)0
803 
804 #define VDP_CHROMA_TYPE_422 (VdpChromaType)1
805 
806 #define VDP_CHROMA_TYPE_444 (VdpChromaType)2
807 
811 typedef uint32_t VdpYCbCrFormat;
812 
826 #define VDP_YCBCR_FORMAT_NV12 (VdpYCbCrFormat)0
827 
838 #define VDP_YCBCR_FORMAT_YV12 (VdpYCbCrFormat)1
839 
852 #define VDP_YCBCR_FORMAT_UYVY (VdpYCbCrFormat)2
853 
866 #define VDP_YCBCR_FORMAT_YUYV (VdpYCbCrFormat)3
867 
879 #define VDP_YCBCR_FORMAT_Y8U8V8A8 (VdpYCbCrFormat)4
880 
892 #define VDP_YCBCR_FORMAT_V8U8Y8A8 (VdpYCbCrFormat)5
893 
897 typedef uint32_t VdpRGBAFormat;
898 
911 #define VDP_RGBA_FORMAT_B8G8R8A8 (VdpRGBAFormat)0
912 
924 #define VDP_RGBA_FORMAT_R8G8B8A8 (VdpRGBAFormat)1
925 
937 #define VDP_RGBA_FORMAT_R10G10B10A2 (VdpRGBAFormat)2
938 
950 #define VDP_RGBA_FORMAT_B10G10R10A2 (VdpRGBAFormat)3
951 
961 #define VDP_RGBA_FORMAT_A8 (VdpRGBAFormat)4
962 
966 typedef uint32_t VdpIndexedFormat;
967 
979 #define VDP_INDEXED_FORMAT_A4I4 (VdpIndexedFormat)0
980 
991 #define VDP_INDEXED_FORMAT_I4A4 (VdpIndexedFormat)1
992 
1003 #define VDP_INDEXED_FORMAT_A8I8 (VdpIndexedFormat)2
1004 
1015 #define VDP_INDEXED_FORMAT_I8A8 (VdpIndexedFormat)3
1016 
1024 typedef struct {
1026  uint32_t x;
1028  uint32_t y;
1029 } VdpPoint;
1030 
1041 typedef struct {
1043  uint32_t x0;
1045  uint32_t y0;
1047  uint32_t x1;
1049  uint32_t y1;
1050 } VdpRect;
1051 
1060 typedef struct {
1061  float red;
1062  float green;
1063  float blue;
1064  float alpha;
1065 } VdpColor;
1066 
1079 typedef enum {
1211 } VdpStatus;
1212 
1222 typedef char const * VdpGetErrorString(
1223  VdpStatus status
1224 );
1225 
1250 #define VDPAU_INTERFACE_VERSION 1
1251 
1263 #define VDPAU_VERSION 1
1264 
1270 typedef VdpStatus VdpGetApiVersion(
1271  /* output parameters follow */
1272  uint32_t * api_version
1273 );
1274 
1292 typedef VdpStatus VdpGetInformationString(
1293  /* output parameters follow */
1294  char const * * information_string
1295 );
1296 
1316 typedef uint32_t VdpDevice;
1317 
1323 typedef VdpStatus VdpDeviceDestroy(
1324  VdpDevice device
1325 );
1326 
1365 typedef float VdpCSCMatrix[3][4];
1366 
1367 #define VDP_PROCAMP_VERSION 0
1368 
1377 typedef struct {
1381  uint32_t struct_version;
1386  float brightness;
1391  float contrast;
1396  float saturation;
1401  float hue;
1402 } VdpProcamp;
1403 
1410 typedef uint32_t VdpColorStandard;
1411 
1413 #define VDP_COLOR_STANDARD_ITUR_BT_601 (VdpColorStandard)0
1414 
1415 #define VDP_COLOR_STANDARD_ITUR_BT_709 (VdpColorStandard)1
1416 
1417 #define VDP_COLOR_STANDARD_SMPTE_240M (VdpColorStandard)2
1418 
1427 typedef VdpStatus VdpGenerateCSCMatrix(
1428  VdpProcamp * procamp,
1429  VdpColorStandard standard,
1430  /* output parameters follow */
1431  VdpCSCMatrix * csc_matrix
1432 );
1433 
1479  VdpDevice device,
1480  VdpChromaType surface_chroma_type,
1481  /* output parameters follow */
1482  VdpBool * is_supported,
1483  uint32_t * max_width,
1484  uint32_t * max_height
1485 );
1486 
1499  VdpDevice device,
1500  VdpChromaType surface_chroma_type,
1501  VdpYCbCrFormat bits_ycbcr_format,
1502  /* output parameters follow */
1503  VdpBool * is_supported
1504 );
1505 
1510 typedef uint32_t VdpVideoSurface;
1511 
1557 typedef VdpStatus VdpVideoSurfaceCreate(
1558  VdpDevice device,
1559  VdpChromaType chroma_type,
1560  uint32_t width,
1561  uint32_t height,
1562  /* output parameters follow */
1563  VdpVideoSurface * surface
1564 );
1565 
1571 typedef VdpStatus VdpVideoSurfaceDestroy(
1572  VdpVideoSurface surface
1573 );
1574 
1585  VdpVideoSurface surface,
1586  /* output parameters follow */
1587  VdpChromaType * chroma_type,
1588  uint32_t * width,
1589  uint32_t * height
1590 );
1591 
1611  VdpVideoSurface surface,
1612  VdpYCbCrFormat destination_ycbcr_format,
1613  void * const * destination_data,
1614  uint32_t const * destination_pitches
1615 );
1616 
1636  VdpVideoSurface surface,
1637  VdpYCbCrFormat source_ycbcr_format,
1638  void const * const * source_data,
1639  uint32_t const * source_pitches
1640 );
1641 
1677 typedef uint32_t VdpColorTableFormat;
1678 
1690 #define VDP_COLOR_TABLE_FORMAT_B8G8R8X8 (VdpColorTableFormat)0
1691 
1706  VdpDevice device,
1707  VdpRGBAFormat surface_rgba_format,
1708  /* output parameters follow */
1709  VdpBool * is_supported,
1710  uint32_t * max_width,
1711  uint32_t * max_height
1712 );
1713 
1725  VdpDevice device,
1726  VdpRGBAFormat surface_rgba_format,
1727  /* output parameters follow */
1728  VdpBool * is_supported
1729 );
1730 
1746  VdpDevice device,
1747  VdpRGBAFormat surface_rgba_format,
1748  VdpIndexedFormat bits_indexed_format,
1749  VdpColorTableFormat color_table_format,
1750  /* output parameters follow */
1751  VdpBool * is_supported
1752 );
1753 
1767  VdpDevice device,
1768  VdpRGBAFormat surface_rgba_format,
1769  VdpYCbCrFormat bits_ycbcr_format,
1770  /* output parameters follow */
1771  VdpBool * is_supported
1772 );
1773 
1778 typedef uint32_t VdpOutputSurface;
1779 
1792 typedef VdpStatus VdpOutputSurfaceCreate(
1793  VdpDevice device,
1794  VdpRGBAFormat rgba_format,
1795  uint32_t width,
1796  uint32_t height,
1797  /* output parameters follow */
1798  VdpOutputSurface * surface
1799 );
1800 
1806 typedef VdpStatus VdpOutputSurfaceDestroy(
1807  VdpOutputSurface surface
1808 );
1809 
1820  VdpOutputSurface surface,
1821  /* output parameters follow */
1822  VdpRGBAFormat * rgba_format,
1823  uint32_t * width,
1824  uint32_t * height
1825 );
1826 
1847  VdpOutputSurface surface,
1848  VdpRect const * source_rect,
1849  void * const * destination_data,
1850  uint32_t const * destination_pitches
1851 );
1852 
1873  VdpOutputSurface surface,
1874  void const * const * source_data,
1875  uint32_t const * source_pitches,
1876  VdpRect const * destination_rect
1877 );
1878 
1905  VdpOutputSurface surface,
1906  VdpIndexedFormat source_indexed_format,
1907  void const * const * source_data,
1908  uint32_t const * source_pitch,
1909  VdpRect const * destination_rect,
1910  VdpColorTableFormat color_table_format,
1911  void const * color_table
1912 );
1913 
1940  VdpOutputSurface surface,
1941  VdpYCbCrFormat source_ycbcr_format,
1942  void const * const * source_data,
1943  uint32_t const * source_pitches,
1944  VdpRect const * destination_rect,
1945  VdpCSCMatrix const * csc_matrix
1946 );
1947 
2000  VdpDevice device,
2001  VdpRGBAFormat surface_rgba_format,
2002  /* output parameters follow */
2003  VdpBool * is_supported,
2004  uint32_t * max_width,
2005  uint32_t * max_height
2006 );
2007 
2012 typedef uint32_t VdpBitmapSurface;
2013 
2031 typedef VdpStatus VdpBitmapSurfaceCreate(
2032  VdpDevice device,
2033  VdpRGBAFormat rgba_format,
2034  uint32_t width,
2035  uint32_t height,
2036  VdpBool frequently_accessed,
2037  /* output parameters follow */
2038  VdpBitmapSurface * surface
2039 );
2040 
2046 typedef VdpStatus VdpBitmapSurfaceDestroy(
2047  VdpBitmapSurface surface
2048 );
2049 
2062  VdpBitmapSurface surface,
2063  /* output parameters follow */
2064  VdpRGBAFormat * rgba_format,
2065  uint32_t * width,
2066  uint32_t * height,
2067  VdpBool * frequently_accessed
2068 );
2069 
2090  VdpBitmapSurface surface,
2091  void const * const * source_data,
2092  uint32_t const * source_pitches,
2093  VdpRect const * destination_rect
2094 );
2095 
2113 typedef enum {
2130 
2135 typedef enum {
2142 
2143 #define VDP_OUTPUT_SURFACE_RENDER_BLEND_STATE_VERSION 0
2144 
2164 typedef struct {
2168  uint32_t struct_version;
2177 
2182 #define VDP_OUTPUT_SURFACE_RENDER_ROTATE_0 0
2183 
2189 #define VDP_OUTPUT_SURFACE_RENDER_ROTATE_90 1
2190 
2196 #define VDP_OUTPUT_SURFACE_RENDER_ROTATE_180 2
2197 
2203 #define VDP_OUTPUT_SURFACE_RENDER_ROTATE_270 3
2204 
2212 #define VDP_OUTPUT_SURFACE_RENDER_COLOR_PER_VERTEX (1 << 2)
2213 
2285  VdpOutputSurface destination_surface,
2286  VdpRect const * destination_rect,
2287  VdpOutputSurface source_surface,
2288  VdpRect const * source_rect,
2289  VdpColor const * colors,
2290  VdpOutputSurfaceRenderBlendState const * blend_state,
2291  uint32_t flags
2292 );
2293 
2365  VdpOutputSurface destination_surface,
2366  VdpRect const * destination_rect,
2367  VdpBitmapSurface source_surface,
2368  VdpRect const * source_rect,
2369  VdpColor const * colors,
2370  VdpOutputSurfaceRenderBlendState const * blend_state,
2371  uint32_t flags
2372 );
2373 
2394 typedef uint32_t VdpDecoderProfile;
2395 
2397 #define VDP_DECODER_PROFILE_MPEG1 (VdpDecoderProfile)0
2398 
2399 #define VDP_DECODER_PROFILE_MPEG2_SIMPLE (VdpDecoderProfile)1
2400 
2401 #define VDP_DECODER_PROFILE_MPEG2_MAIN (VdpDecoderProfile)2
2402 
2404 #define VDP_DECODER_PROFILE_H264_BASELINE (VdpDecoderProfile)6
2405 
2406 #define VDP_DECODER_PROFILE_H264_MAIN (VdpDecoderProfile)7
2407 
2408 #define VDP_DECODER_PROFILE_H264_HIGH (VdpDecoderProfile)8
2409 
2410 #define VDP_DECODER_PROFILE_VC1_SIMPLE (VdpDecoderProfile)9
2411 
2412 #define VDP_DECODER_PROFILE_VC1_MAIN (VdpDecoderProfile)10
2413 
2414 #define VDP_DECODER_PROFILE_VC1_ADVANCED (VdpDecoderProfile)11
2415 
2416 #define VDP_DECODER_PROFILE_MPEG4_PART2_SP (VdpDecoderProfile)12
2417 
2418 #define VDP_DECODER_PROFILE_MPEG4_PART2_ASP (VdpDecoderProfile)13
2419 
2420 #define VDP_DECODER_PROFILE_DIVX4_QMOBILE (VdpDecoderProfile)14
2421 
2422 #define VDP_DECODER_PROFILE_DIVX4_MOBILE (VdpDecoderProfile)15
2423 
2424 #define VDP_DECODER_PROFILE_DIVX4_HOME_THEATER (VdpDecoderProfile)16
2425 
2426 #define VDP_DECODER_PROFILE_DIVX4_HD_1080P (VdpDecoderProfile)17
2427 
2428 #define VDP_DECODER_PROFILE_DIVX5_QMOBILE (VdpDecoderProfile)18
2429 
2430 #define VDP_DECODER_PROFILE_DIVX5_MOBILE (VdpDecoderProfile)19
2431 
2432 #define VDP_DECODER_PROFILE_DIVX5_HOME_THEATER (VdpDecoderProfile)20
2433 
2434 #define VDP_DECODER_PROFILE_DIVX5_HD_1080P (VdpDecoderProfile)21
2435 
2437 #define VDP_DECODER_LEVEL_MPEG1_NA 0
2438 
2440 #define VDP_DECODER_LEVEL_MPEG2_LL 0
2441 
2442 #define VDP_DECODER_LEVEL_MPEG2_ML 1
2443 
2444 #define VDP_DECODER_LEVEL_MPEG2_HL14 2
2445 
2446 #define VDP_DECODER_LEVEL_MPEG2_HL 3
2447 
2449 #define VDP_DECODER_LEVEL_H264_1 10
2450 
2451 #define VDP_DECODER_LEVEL_H264_1b 9
2452 
2453 #define VDP_DECODER_LEVEL_H264_1_1 11
2454 
2455 #define VDP_DECODER_LEVEL_H264_1_2 12
2456 
2457 #define VDP_DECODER_LEVEL_H264_1_3 13
2458 
2459 #define VDP_DECODER_LEVEL_H264_2 20
2460 
2461 #define VDP_DECODER_LEVEL_H264_2_1 21
2462 
2463 #define VDP_DECODER_LEVEL_H264_2_2 22
2464 
2465 #define VDP_DECODER_LEVEL_H264_3 30
2466 
2467 #define VDP_DECODER_LEVEL_H264_3_1 31
2468 
2469 #define VDP_DECODER_LEVEL_H264_3_2 32
2470 
2471 #define VDP_DECODER_LEVEL_H264_4 40
2472 
2473 #define VDP_DECODER_LEVEL_H264_4_1 41
2474 
2475 #define VDP_DECODER_LEVEL_H264_4_2 42
2476 
2477 #define VDP_DECODER_LEVEL_H264_5 50
2478 
2479 #define VDP_DECODER_LEVEL_H264_5_1 51
2480 
2482 #define VDP_DECODER_LEVEL_VC1_SIMPLE_LOW 0
2483 
2484 #define VDP_DECODER_LEVEL_VC1_SIMPLE_MEDIUM 1
2485 
2487 #define VDP_DECODER_LEVEL_VC1_MAIN_LOW 0
2488 
2489 #define VDP_DECODER_LEVEL_VC1_MAIN_MEDIUM 1
2490 
2491 #define VDP_DECODER_LEVEL_VC1_MAIN_HIGH 2
2492 
2494 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L0 0
2495 
2496 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L1 1
2497 
2498 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L2 2
2499 
2500 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L3 3
2501 
2502 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L4 4
2503 
2505 #define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L0 0
2506 
2507 #define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L1 1
2508 
2509 #define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L2 2
2510 
2511 #define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L3 3
2512 
2514 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L0 0
2515 
2516 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L1 1
2517 
2518 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L2 2
2519 
2520 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L3 3
2521 
2522 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L4 4
2523 
2524 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L5 5
2525 
2527 #define VDP_DECODER_LEVEL_DIVX_NA 0
2528 
2548  VdpDevice device,
2549  VdpDecoderProfile profile,
2550  /* output parameters follow */
2551  VdpBool * is_supported,
2552  uint32_t * max_level,
2553  uint32_t * max_macroblocks,
2554  uint32_t * max_width,
2555  uint32_t * max_height
2556 );
2557 
2561 typedef uint32_t VdpDecoder;
2562 
2579 typedef VdpStatus VdpDecoderCreate(
2580  VdpDevice device,
2581  VdpDecoderProfile profile,
2582  uint32_t width,
2583  uint32_t height,
2584  uint32_t max_references,
2585  /* output parameters follow */
2586  VdpDecoder * decoder
2587 );
2588 
2594 typedef VdpStatus VdpDecoderDestroy(
2595  VdpDecoder decoder
2596 );
2597 
2610 typedef VdpStatus VdpDecoderGetParameters(
2611  VdpDecoder decoder,
2612  /* output parameters follow */
2613  VdpDecoderProfile * profile,
2614  uint32_t * width,
2615  uint32_t * height
2616 );
2617 
2618 #define VDP_BITSTREAM_BUFFER_VERSION 0
2619 
2624 typedef struct {
2628  uint32_t struct_version;
2630  void const * bitstream;
2634 
2645 typedef void * VdpPictureInfo;
2646 
2655 typedef struct {
2660  VdpVideoSurface forward_reference;
2665  VdpVideoSurface backward_reference;
2667  uint32_t slice_count;
2668 
2684  uint8_t q_scale_type;
2695  uint8_t f_code[2][2];
2697  uint8_t intra_quantizer_matrix[64];
2699  uint8_t non_intra_quantizer_matrix[64];
2701 
2709 typedef struct {
2714  VdpVideoSurface surface;
2716  VdpBool is_long_term;
2728  int32_t field_order_cnt[2];
2734  uint16_t frame_idx;
2736 
2755 typedef struct {
2757  uint32_t slice_count;
2759  int32_t field_order_cnt[2];
2761  VdpBool is_reference;
2762 
2764  uint16_t frame_num;
2811 
2813  uint8_t scaling_lists_4x4[6][16];
2815  uint8_t scaling_lists_8x8[2][64];
2816 
2818  VdpReferenceFrameH264 referenceFrames[16];
2820 
2828 typedef struct {
2833  VdpVideoSurface forward_reference;
2838  VdpVideoSurface backward_reference;
2839 
2841  uint32_t slice_count;
2843  uint8_t picture_type;
2846 
2848  uint8_t postprocflag;
2850  uint8_t pulldown;
2852  uint8_t interlace;
2854  uint8_t tfcntrflag;
2856  uint8_t finterpflag;
2858  uint8_t psf;
2860  uint8_t dquant;
2862  uint8_t panscan_flag;
2864  uint8_t refdist_flag;
2866  uint8_t quantizer;
2868  uint8_t extended_mv;
2870  uint8_t extended_dmv;
2872  uint8_t overlap;
2874  uint8_t vstransform;
2876  uint8_t loopfilter;
2878  uint8_t fastuvmc;
2882  uint8_t range_mapy;
2886  uint8_t range_mapuv;
2887 
2892  uint8_t multires;
2897  uint8_t syncmarker;
2904  uint8_t rangered;
2909  uint8_t maxbframes;
2910 
2916  uint8_t deblockEnable;
2922  uint8_t pquant;
2924 
2932 typedef struct {
2937  VdpVideoSurface forward_reference;
2942  VdpVideoSurface backward_reference;
2943 
2945  int32_t trd[2];
2947  int32_t trb[2];
2959  uint8_t interlaced;
2961  uint8_t quant_type;
2973  uint8_t intra_quantizer_matrix[64];
2975  uint8_t non_intra_quantizer_matrix[64];
2977 
2985 
2993 
3012 typedef VdpStatus VdpDecoderRender(
3013  VdpDecoder decoder,
3014  VdpVideoSurface target,
3015  VdpPictureInfo const * picture_info,
3016  uint32_t bitstream_buffer_count,
3017  VdpBitstreamBuffer const * bitstream_buffers
3018 );
3019 
3099 typedef uint32_t VdpVideoMixerFeature;
3100 
3112 #define VDP_VIDEO_MIXER_FEATURE_DEINTERLACE_TEMPORAL (VdpVideoMixerFeature)0
3113 
3125 #define VDP_VIDEO_MIXER_FEATURE_DEINTERLACE_TEMPORAL_SPATIAL (VdpVideoMixerFeature)1
3126 
3134 #define VDP_VIDEO_MIXER_FEATURE_INVERSE_TELECINE (VdpVideoMixerFeature)2
3135 
3142 #define VDP_VIDEO_MIXER_FEATURE_NOISE_REDUCTION (VdpVideoMixerFeature)3
3143 
3150 #define VDP_VIDEO_MIXER_FEATURE_SHARPNESS (VdpVideoMixerFeature)4
3151 
3163 #define VDP_VIDEO_MIXER_FEATURE_LUMA_KEY (VdpVideoMixerFeature)5
3164 
3185 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1 (VdpVideoMixerFeature)11
3186 
3192 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L2 (VdpVideoMixerFeature)12
3193 
3199 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L3 (VdpVideoMixerFeature)13
3200 
3206 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L4 (VdpVideoMixerFeature)14
3207 
3213 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L5 (VdpVideoMixerFeature)15
3214 
3220 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L6 (VdpVideoMixerFeature)16
3221 
3227 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L7 (VdpVideoMixerFeature)17
3228 
3234 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L8 (VdpVideoMixerFeature)18
3235 
3241 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L9 (VdpVideoMixerFeature)19
3242 
3255 typedef uint32_t VdpVideoMixerParameter;
3256 
3269 #define VDP_VIDEO_MIXER_PARAMETER_VIDEO_SURFACE_WIDTH (VdpVideoMixerParameter)0
3270 
3282 #define VDP_VIDEO_MIXER_PARAMETER_VIDEO_SURFACE_HEIGHT (VdpVideoMixerParameter)1
3283 
3296 #define VDP_VIDEO_MIXER_PARAMETER_CHROMA_TYPE (VdpVideoMixerParameter)2
3297 
3315 #define VDP_VIDEO_MIXER_PARAMETER_LAYERS (VdpVideoMixerParameter)3
3316 
3329 typedef uint32_t VdpVideoMixerAttribute;
3330 
3344 #define VDP_VIDEO_MIXER_ATTRIBUTE_BACKGROUND_COLOR (VdpVideoMixerAttribute)0
3345 
3372 #define VDP_VIDEO_MIXER_ATTRIBUTE_CSC_MATRIX (VdpVideoMixerAttribute)1
3373 
3385 #define VDP_VIDEO_MIXER_ATTRIBUTE_NOISE_REDUCTION_LEVEL (VdpVideoMixerAttribute)2
3386 
3401 #define VDP_VIDEO_MIXER_ATTRIBUTE_SHARPNESS_LEVEL (VdpVideoMixerAttribute)3
3402 
3413 #define VDP_VIDEO_MIXER_ATTRIBUTE_LUMA_KEY_MIN_LUMA (VdpVideoMixerAttribute)4
3414 
3425 #define VDP_VIDEO_MIXER_ATTRIBUTE_LUMA_KEY_MAX_LUMA (VdpVideoMixerAttribute)5
3426 
3440 #define VDP_VIDEO_MIXER_ATTRIBUTE_SKIP_CHROMA_DEINTERLACE (VdpVideoMixerAttribute)6
3441 
3452  VdpDevice device,
3453  VdpVideoMixerFeature feature,
3454  /* output parameters follow */
3455  VdpBool * is_supported
3456 );
3457 
3469  VdpDevice device,
3470  VdpVideoMixerParameter parameter,
3471  /* output parameters follow */
3472  VdpBool * is_supported
3473 );
3474 
3485  VdpDevice device,
3486  VdpVideoMixerAttribute attribute,
3487  /* output parameters follow */
3488  VdpBool * is_supported
3489 );
3490 
3502  VdpDevice device,
3503  VdpVideoMixerParameter parameter,
3504  /* output parameters follow */
3505  void * min_value,
3506  void * max_value
3507 );
3508 
3520  VdpDevice device,
3521  VdpVideoMixerAttribute attribute,
3522  /* output parameters follow */
3523  void * min_value,
3524  void * max_value
3525 );
3526 
3530 typedef uint32_t VdpVideoMixer;
3531 
3552 typedef VdpStatus VdpVideoMixerCreate(
3553  VdpDevice device,
3554  // The set of features to request
3555  uint32_t feature_count,
3556  VdpVideoMixerFeature const * features,
3557  // The parameters used during creation
3558  uint32_t parameter_count,
3559  VdpVideoMixerParameter const * parameters,
3560  void const * const * parameter_values,
3561  /* output parameters follow */
3562  VdpVideoMixer * mixer
3563 );
3564 
3576  VdpVideoMixer mixer,
3577  uint32_t feature_count,
3578  VdpVideoMixerFeature const * features,
3579  VdpBool const * feature_enables
3580 );
3581 
3595  VdpVideoMixer mixer,
3596  uint32_t attribute_count,
3597  VdpVideoMixerAttribute const * attributes,
3598  void const * const * attribute_values
3599 );
3600 
3613  VdpVideoMixer mixer,
3614  uint32_t feature_count,
3615  VdpVideoMixerFeature const * features,
3616  /* output parameters follow */
3617  VdpBool * feature_supports
3618 );
3619 
3630  VdpVideoMixer mixer,
3631  uint32_t feature_count,
3632  VdpVideoMixerFeature const * features,
3633  /* output parameters follow */
3634  VdpBool * feature_enables
3635 );
3636 
3650  VdpVideoMixer mixer,
3651  uint32_t parameter_count,
3652  VdpVideoMixerParameter const * parameters,
3653  /* output parameters follow */
3654  void * const * parameter_values
3655 );
3656 
3670  VdpVideoMixer mixer,
3671  uint32_t attribute_count,
3672  VdpVideoMixerAttribute const * attributes,
3673  /* output parameters follow */
3674  void * const * attribute_values
3675 );
3676 
3682 typedef VdpStatus VdpVideoMixerDestroy(
3683  VdpVideoMixer mixer
3684 );
3685 
3691 typedef enum {
3706 
3707 #define VDP_LAYER_VERSION 0
3708 
3713 typedef struct {
3717  uint32_t struct_version;
3721  VdpOutputSurface source_surface;
3736 } VdpLayer;
3737 
3804 typedef VdpStatus VdpVideoMixerRender(
3805  VdpVideoMixer mixer,
3806  VdpOutputSurface background_surface,
3807  VdpRect const * background_source_rect,
3808  VdpVideoMixerPictureStructure current_picture_structure,
3809  uint32_t video_surface_past_count,
3810  VdpVideoSurface const * video_surface_past,
3811  VdpVideoSurface video_surface_current,
3812  uint32_t video_surface_future_count,
3813  VdpVideoSurface const * video_surface_future,
3814  VdpRect const * video_source_rect,
3815  VdpOutputSurface destination_surface,
3816  VdpRect const * destination_rect,
3817  VdpRect const * destination_video_rect,
3818  uint32_t layer_count,
3819  VdpLayer const * layers
3820 );
3821 
3873 typedef uint64_t VdpTime;
3874 
3884 
3891  VdpPresentationQueueTarget presentation_queue_target
3892 );
3893 
3898 typedef uint32_t VdpPresentationQueue;
3899 
3911 typedef VdpStatus VdpPresentationQueueCreate(
3912  VdpDevice device,
3913  VdpPresentationQueueTarget presentation_queue_target,
3914  /* output parameters follow */
3915  VdpPresentationQueue * presentation_queue
3916 );
3917 
3924  VdpPresentationQueue presentation_queue
3925 );
3926 
3937  VdpPresentationQueue presentation_queue,
3938  VdpColor * const background_color
3939 );
3940 
3947  VdpPresentationQueue presentation_queue,
3948  VdpColor * background_color
3949 );
3950 
3959  VdpPresentationQueue presentation_queue,
3960  /* output parameters follow */
3961  VdpTime * current_time
3962 );
3963 
4005  VdpPresentationQueue presentation_queue,
4006  VdpOutputSurface surface,
4007  uint32_t clip_width,
4008  uint32_t clip_height,
4009  VdpTime earliest_presentation_time
4010 );
4011 
4028  VdpPresentationQueue presentation_queue,
4029  VdpOutputSurface surface,
4030  /* output parameters follow */
4031  VdpTime * first_presentation_time
4032 );
4033 
4038 typedef enum {
4046 
4059  VdpPresentationQueue presentation_queue,
4060  VdpOutputSurface surface,
4061  /* output parameters follow */
4062  VdpPresentationQueueStatus * status,
4063  VdpTime * first_presentation_time
4064 );
4065 
4121  VdpDevice device,
4122  void * context
4123 );
4124 
4136  VdpDevice device,
4137  VdpPreemptionCallback callback,
4138  void * context
4139 );
4140 
4158 typedef uint32_t VdpFuncId;
4159 
4161 #define VDP_FUNC_ID_GET_ERROR_STRING (VdpFuncId)0
4162 
4163 #define VDP_FUNC_ID_GET_PROC_ADDRESS (VdpFuncId)1
4164 
4165 #define VDP_FUNC_ID_GET_API_VERSION (VdpFuncId)2
4166 
4167 #define VDP_FUNC_ID_GET_INFORMATION_STRING (VdpFuncId)4
4168 
4169 #define VDP_FUNC_ID_DEVICE_DESTROY (VdpFuncId)5
4170 
4171 #define VDP_FUNC_ID_GENERATE_CSC_MATRIX (VdpFuncId)6
4172 
4173 #define VDP_FUNC_ID_VIDEO_SURFACE_QUERY_CAPABILITIES (VdpFuncId)7
4174 
4175 #define VDP_FUNC_ID_VIDEO_SURFACE_QUERY_GET_PUT_BITS_Y_CB_CR_CAPABILITIES (VdpFuncId)8
4176 
4177 #define VDP_FUNC_ID_VIDEO_SURFACE_CREATE (VdpFuncId)9
4178 
4179 #define VDP_FUNC_ID_VIDEO_SURFACE_DESTROY (VdpFuncId)10
4180 
4181 #define VDP_FUNC_ID_VIDEO_SURFACE_GET_PARAMETERS (VdpFuncId)11
4182 
4183 #define VDP_FUNC_ID_VIDEO_SURFACE_GET_BITS_Y_CB_CR (VdpFuncId)12
4184 
4185 #define VDP_FUNC_ID_VIDEO_SURFACE_PUT_BITS_Y_CB_CR (VdpFuncId)13
4186 
4187 #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_CAPABILITIES (VdpFuncId)14
4188 
4189 #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_GET_PUT_BITS_NATIVE_CAPABILITIES (VdpFuncId)15
4190 
4191 #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_PUT_BITS_INDEXED_CAPABILITIES (VdpFuncId)16
4192 
4193 #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_PUT_BITS_Y_CB_CR_CAPABILITIES (VdpFuncId)17
4194 
4195 #define VDP_FUNC_ID_OUTPUT_SURFACE_CREATE (VdpFuncId)18
4196 
4197 #define VDP_FUNC_ID_OUTPUT_SURFACE_DESTROY (VdpFuncId)19
4198 
4199 #define VDP_FUNC_ID_OUTPUT_SURFACE_GET_PARAMETERS (VdpFuncId)20
4200 
4201 #define VDP_FUNC_ID_OUTPUT_SURFACE_GET_BITS_NATIVE (VdpFuncId)21
4202 
4203 #define VDP_FUNC_ID_OUTPUT_SURFACE_PUT_BITS_NATIVE (VdpFuncId)22
4204 
4205 #define VDP_FUNC_ID_OUTPUT_SURFACE_PUT_BITS_INDEXED (VdpFuncId)23
4206 
4207 #define VDP_FUNC_ID_OUTPUT_SURFACE_PUT_BITS_Y_CB_CR (VdpFuncId)24
4208 
4209 #define VDP_FUNC_ID_BITMAP_SURFACE_QUERY_CAPABILITIES (VdpFuncId)25
4210 
4211 #define VDP_FUNC_ID_BITMAP_SURFACE_CREATE (VdpFuncId)26
4212 
4213 #define VDP_FUNC_ID_BITMAP_SURFACE_DESTROY (VdpFuncId)27
4214 
4215 #define VDP_FUNC_ID_BITMAP_SURFACE_GET_PARAMETERS (VdpFuncId)28
4216 
4217 #define VDP_FUNC_ID_BITMAP_SURFACE_PUT_BITS_NATIVE (VdpFuncId)29
4218 
4219 #define VDP_FUNC_ID_OUTPUT_SURFACE_RENDER_OUTPUT_SURFACE (VdpFuncId)33
4220 
4221 #define VDP_FUNC_ID_OUTPUT_SURFACE_RENDER_BITMAP_SURFACE (VdpFuncId)34
4222 
4223 #define VDP_FUNC_ID_OUTPUT_SURFACE_RENDER_VIDEO_SURFACE_LUMA (VdpFuncId)35
4224 
4225 #define VDP_FUNC_ID_DECODER_QUERY_CAPABILITIES (VdpFuncId)36
4226 
4227 #define VDP_FUNC_ID_DECODER_CREATE (VdpFuncId)37
4228 
4229 #define VDP_FUNC_ID_DECODER_DESTROY (VdpFuncId)38
4230 
4231 #define VDP_FUNC_ID_DECODER_GET_PARAMETERS (VdpFuncId)39
4232 
4233 #define VDP_FUNC_ID_DECODER_RENDER (VdpFuncId)40
4234 
4235 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_FEATURE_SUPPORT (VdpFuncId)41
4236 
4237 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_PARAMETER_SUPPORT (VdpFuncId)42
4238 
4239 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_ATTRIBUTE_SUPPORT (VdpFuncId)43
4240 
4241 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_PARAMETER_VALUE_RANGE (VdpFuncId)44
4242 
4243 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_ATTRIBUTE_VALUE_RANGE (VdpFuncId)45
4244 
4245 #define VDP_FUNC_ID_VIDEO_MIXER_CREATE (VdpFuncId)46
4246 
4247 #define VDP_FUNC_ID_VIDEO_MIXER_SET_FEATURE_ENABLES (VdpFuncId)47
4248 
4249 #define VDP_FUNC_ID_VIDEO_MIXER_SET_ATTRIBUTE_VALUES (VdpFuncId)48
4250 
4251 #define VDP_FUNC_ID_VIDEO_MIXER_GET_FEATURE_SUPPORT (VdpFuncId)49
4252 
4253 #define VDP_FUNC_ID_VIDEO_MIXER_GET_FEATURE_ENABLES (VdpFuncId)50
4254 
4255 #define VDP_FUNC_ID_VIDEO_MIXER_GET_PARAMETER_VALUES (VdpFuncId)51
4256 
4257 #define VDP_FUNC_ID_VIDEO_MIXER_GET_ATTRIBUTE_VALUES (VdpFuncId)52
4258 
4259 #define VDP_FUNC_ID_VIDEO_MIXER_DESTROY (VdpFuncId)53
4260 
4261 #define VDP_FUNC_ID_VIDEO_MIXER_RENDER (VdpFuncId)54
4262 
4263 #define VDP_FUNC_ID_PRESENTATION_QUEUE_TARGET_DESTROY (VdpFuncId)55
4264 
4265 #define VDP_FUNC_ID_PRESENTATION_QUEUE_CREATE (VdpFuncId)56
4266 
4267 #define VDP_FUNC_ID_PRESENTATION_QUEUE_DESTROY (VdpFuncId)57
4268 
4269 #define VDP_FUNC_ID_PRESENTATION_QUEUE_SET_BACKGROUND_COLOR (VdpFuncId)58
4270 
4271 #define VDP_FUNC_ID_PRESENTATION_QUEUE_GET_BACKGROUND_COLOR (VdpFuncId)59
4272 
4273 #define VDP_FUNC_ID_PRESENTATION_QUEUE_GET_TIME (VdpFuncId)62
4274 
4275 #define VDP_FUNC_ID_PRESENTATION_QUEUE_DISPLAY (VdpFuncId)63
4276 
4277 #define VDP_FUNC_ID_PRESENTATION_QUEUE_BLOCK_UNTIL_SURFACE_IDLE (VdpFuncId)64
4278 
4279 #define VDP_FUNC_ID_PRESENTATION_QUEUE_QUERY_SURFACE_STATUS (VdpFuncId)65
4280 
4281 #define VDP_FUNC_ID_PREEMPTION_CALLBACK_REGISTER (VdpFuncId)66
4282 
4283 #define VDP_FUNC_ID_BASE_WINSYS 0x1000
4284 
4294 typedef VdpStatus VdpGetProcAddress(
4295  VdpDevice device,
4296  VdpFuncId function_id,
4297  /* output parameters follow */
4298  void * * function_pointer
4299 );
4300 
4303 
4311 #ifdef __cplusplus
4312 }
4313 #endif
4314 
4315 #endif
4316 
VdpStatus VdpVideoSurfaceGetBitsYCbCr(VdpVideoSurface surface, VdpYCbCrFormat destination_ycbcr_format, void *const *destination_data, uint32_t const *destination_pitches)
Copy image data from a VdpVideoSurface to application memory in a specified YCbCr format...
Definition: vdpau.h:1610
Definition: vdpau.h:1178
float saturation
Definition: vdpau.h:1396
VdpPictureInfoMPEG4Part2 VdpPictureInfoDivX4
Picture parameter information for a DivX 4 picture.
Definition: vdpau.h:2984
VdpOutputSurfaceRenderBlendEquation
The blending equations.
Definition: vdpau.h:2135
uint32_t VdpYCbCrFormat
The set of all known YCbCr surface formats.
Definition: vdpau.h:811
Definition: vdpau.h:1117
uint32_t bitstream_bytes
Definition: vdpau.h:2632
uint8_t quarter_sample
Definition: vdpau.h:2963
uint8_t frame_pred_frame_dct
Definition: vdpau.h:2676
uint8_t extended_dmv
Definition: vdpau.h:2870
VdpStatus VdpGetProcAddress(VdpDevice device, VdpFuncId function_id, void **function_pointer)
Retrieve a VDPAU function pointer.
Definition: vdpau.h:4294
VdpStatus VdpDecoderGetParameters(VdpDecoder decoder, VdpDecoderProfile *profile, uint32_t *width, uint32_t *height)
Retrieve the parameters used to create a VdpDecoder.
Definition: vdpau.h:2610
uint8_t pquant
Definition: vdpau.h:2922
Definition: vdpau.h:1060
Application data buffer containing compressed video data.
Definition: vdpau.h:2624
VdpOutputSurfaceRenderBlendFactor
The blending equation factors.
Definition: vdpau.h:2113
float hue
Definition: vdpau.h:1401
VdpBool is_long_term
Definition: vdpau.h:2716
uint32_t VdpIndexedFormat
The set of all known indexed surface formats.
Definition: vdpau.h:966
uint8_t q_scale_type
Definition: vdpau.h:2684
uint32_t VdpRGBAFormat
The set of all known RGB surface formats.
Definition: vdpau.h:897
VdpStatus VdpGetApiVersion(uint32_t *api_version)
Retrieve the VDPAU version implemented by the backend.
Definition: vdpau.h:1270
uint8_t range_mapy
Definition: vdpau.h:2882
Definition: vdpau.h:4040
void const * bitstream
Definition: vdpau.h:2630
VdpStatus VdpPresentationQueueBlockUntilSurfaceIdle(VdpPresentationQueue presentation_queue, VdpOutputSurface surface, VdpTime *first_presentation_time)
Wait for a surface to finish being displayed.
Definition: vdpau.h:4027
uint8_t frame_mbs_only_flag
Definition: vdpau.h:2780
VdpStatus VdpOutputSurfacePutBitsNative(VdpOutputSurface surface, void const *const *source_data, uint32_t const *source_pitches, VdpRect const *destination_rect)
Copy image data from application memory in the surface&#39;s native format to a VdpOutputSurface.
Definition: vdpau.h:1872
VdpStatus VdpVideoMixerGetFeatureSupport(VdpVideoMixer mixer, uint32_t feature_count, VdpVideoMixerFeature const *features, VdpBool *feature_supports)
Retrieve whether features were requested at creation time.
Definition: vdpau.h:3612
uint8_t postprocflag
Definition: vdpau.h:2848
uint32_t struct_version
Definition: vdpau.h:2168
VdpPictureInfoMPEG4Part2 VdpPictureInfoDivX5
Picture parameter information for a DivX 5 picture.
Definition: vdpau.h:2992
VdpStatus VdpVideoSurfaceQueryCapabilities(VdpDevice device, VdpChromaType surface_chroma_type, VdpBool *is_supported, uint32_t *max_width, uint32_t *max_height)
Query the implementation&#39;s VdpVideoSurface capabilities.
Definition: vdpau.h:1478
uint8_t constrained_intra_pred_flag
Definition: vdpau.h:2774
Definition: vdpau.h:1121
VdpStatus VdpOutputSurfacePutBitsIndexed(VdpOutputSurface surface, VdpIndexedFormat source_indexed_format, void const *const *source_data, uint32_t const *source_pitch, VdpRect const *destination_rect, VdpColorTableFormat color_table_format, void const *color_table)
Copy image data from application memory in a specific indexed format to a VdpOutputSurface.
Definition: vdpau.h:1904
VdpRect const * source_rect
Definition: vdpau.h:3726
uint32_t VdpVideoMixer
An opaque handle representing a VdpVideoMixer object.
Definition: vdpau.h:3530
float contrast
Definition: vdpau.h:1391
uint32_t VdpOutputSurface
An opaque handle representing a VdpOutputSurface object.
Definition: vdpau.h:1778
VdpStatus VdpVideoSurfaceQueryGetPutBitsYCbCrCapabilities(VdpDevice device, VdpChromaType surface_chroma_type, VdpYCbCrFormat bits_ycbcr_format, VdpBool *is_supported)
Query the implementation&#39;s VdpVideoSurface GetBits/PutBits capabilities.
Definition: vdpau.h:1498
VdpStatus VdpVideoMixerSetAttributeValues(VdpVideoMixer mixer, uint32_t attribute_count, VdpVideoMixerAttribute const *attributes, void const *const *attribute_values)
Set attribute values.
Definition: vdpau.h:3594
uint32_t y1
Definition: vdpau.h:1049
Definition: vdpau.h:1113
Definition: vdpau.h:1125
VdpVideoSurface forward_reference
Definition: vdpau.h:2937
VdpOutputSurface source_surface
Definition: vdpau.h:3721
Definition: vdpau.h:1134
uint32_t VdpPresentationQueue
An opaque handle representing a presentation queue object.
Definition: vdpau.h:3898
VdpBool bottom_is_reference
Definition: vdpau.h:2726
VdpStatus VdpPresentationQueueGetBackgroundColor(VdpPresentationQueue presentation_queue, VdpColor *background_color)
Retrieve the current background color setting.
Definition: vdpau.h:3946
VdpStatus VdpOutputSurfaceQueryGetPutBitsNativeCapabilities(VdpDevice device, VdpRGBAFormat surface_rgba_format, VdpBool *is_supported)
Query the implementation&#39;s capability to perform a PutBits operation using application data matching ...
Definition: vdpau.h:1724
VdpStatus VdpOutputSurfaceGetBitsNative(VdpOutputSurface surface, VdpRect const *source_rect, void *const *destination_data, uint32_t const *destination_pitches)
Copy image data from a VdpOutputSurface to application memory in the surface&#39;s native format...
Definition: vdpau.h:1846
VdpStatus VdpOutputSurfaceGetParameters(VdpOutputSurface surface, VdpRGBAFormat *rgba_format, uint32_t *width, uint32_t *height)
Retrieve the parameters used to create a VdpOutputSurface.
Definition: vdpau.h:1819
uint8_t direct_8x8_inference_flag
Definition: vdpau.h:2802
uint32_t slice_count
Definition: vdpau.h:2667
uint32_t VdpBitmapSurface
An opaque handle representing a VdpBitmapSurface object.
Definition: vdpau.h:2012
uint32_t struct_version
Definition: vdpau.h:1381
VdpStatus VdpBitmapSurfaceQueryCapabilities(VdpDevice device, VdpRGBAFormat surface_rgba_format, VdpBool *is_supported, uint32_t *max_width, uint32_t *max_height)
Query the implementation&#39;s VdpBitmapSurface capabilities.
Definition: vdpau.h:1999
VdpVideoMixerPictureStructure
The structure of the picture present in a VdpVideoSurface.
Definition: vdpau.h:3691
uint8_t deblockEnable
Definition: vdpau.h:2916
VdpStatus VdpVideoMixerCreate(VdpDevice device, uint32_t feature_count, VdpVideoMixerFeature const *features, uint32_t parameter_count, VdpVideoMixerParameter const *parameters, void const *const *parameter_values, VdpVideoMixer *mixer)
Create a VdpVideoMixer.
Definition: vdpau.h:3552
VdpStatus VdpBitmapSurfaceDestroy(VdpBitmapSurface surface)
Destroy a VdpBitmapSurface.
Definition: vdpau.h:2046
Definition: vdpau.h:1081
VdpOutputSurfaceRenderBlendFactor blend_factor_source_alpha
Definition: vdpau.h:2171
uint8_t vop_fcode_backward
Definition: vdpau.h:2955
int8_t second_chroma_qp_index_offset
Definition: vdpau.h:2786
VdpStatus VdpVideoMixerQueryFeatureSupport(VdpDevice device, VdpVideoMixerFeature feature, VdpBool *is_supported)
Query the implementation&#39;s support for a specific feature.
Definition: vdpau.h:3451
VdpStatus VdpOutputSurfaceCreate(VdpDevice device, VdpRGBAFormat rgba_format, uint32_t width, uint32_t height, VdpOutputSurface *surface)
Create a VdpOutputSurface.
Definition: vdpau.h:1792
uint8_t interlaced
Definition: vdpau.h:2959
uint32_t x0
Definition: vdpau.h:1043
VdpStatus VdpGetInformationString(char const **information_string)
Retrieve an implementation-specific string description of the implementation. This typically includes...
Definition: vdpau.h:1292
VdpStatus VdpBitmapSurfaceCreate(VdpDevice device, VdpRGBAFormat rgba_format, uint32_t width, uint32_t height, VdpBool frequently_accessed, VdpBitmapSurface *surface)
Create a VdpBitmapSurface.
Definition: vdpau.h:2031
uint32_t VdpColorTableFormat
The set of all known color table formats, for use with VdpOutputSurfacePutBitsIndexed.
Definition: vdpau.h:1677
uint8_t short_video_header
Definition: vdpau.h:2965
uint32_t VdpVideoMixerParameter
A VdpVideoMixer creation parameter.
Definition: vdpau.h:3255
uint32_t VdpDecoderProfile
The set of all known compressed video formats, and associated profiles, that may be decoded...
Definition: vdpau.h:2394
Definition: vdpau.h:1109
uint8_t pic_order_cnt_type
Definition: vdpau.h:2796
VdpStatus VdpDeviceDestroy(VdpDevice device)
Destroy a VdpDevice.
Definition: vdpau.h:1323
VdpStatus VdpVideoMixerSetFeatureEnables(VdpVideoMixer mixer, uint32_t feature_count, VdpVideoMixerFeature const *features, VdpBool const *feature_enables)
Enable or disable features.
Definition: vdpau.h:3575
uint8_t pic_order_present_flag
Definition: vdpau.h:2806
VdpStatus VdpDecoderCreate(VdpDevice device, VdpDecoderProfile profile, uint32_t width, uint32_t height, uint32_t max_references, VdpDecoder *decoder)
Create a VdpDecoder.
Definition: vdpau.h:2579
VdpStatus VdpOutputSurfaceQueryPutBitsYCbCrCapabilities(VdpDevice device, VdpRGBAFormat surface_rgba_format, VdpYCbCrFormat bits_ycbcr_format, VdpBool *is_supported)
Query the implementation&#39;s capability to perform a PutBits operation using application data in a spec...
Definition: vdpau.h:1766
VdpStatus VdpVideoMixerDestroy(VdpVideoMixer mixer)
Destroy a VdpVideoMixer.
Definition: vdpau.h:3682
VdpColor blend_constant
Definition: vdpau.h:2175
uint32_t slice_count
Definition: vdpau.h:2841
uint8_t num_ref_idx_l0_active_minus1
Definition: vdpau.h:2790
uint8_t transform_8x8_mode_flag
Definition: vdpau.h:2782
uint8_t interlace
Definition: vdpau.h:2852
uint32_t VdpDevice
An opaque handle representing a VdpDevice object.
Definition: vdpau.h:1316
VdpBool is_reference
Definition: vdpau.h:2761
uint8_t range_mapuv_flag
Definition: vdpau.h:2884
uint8_t alternate_vertical_scan_flag
Definition: vdpau.h:2969
VdpVideoSurface surface
Definition: vdpau.h:2714
VdpStatus VdpDecoderRender(VdpDecoder decoder, VdpVideoSurface target, VdpPictureInfo const *picture_info, uint32_t bitstream_buffer_count, VdpBitstreamBuffer const *bitstream_buffers)
Decode a compressed field/frame and render the result into a VdpVideoSurface.
Definition: vdpau.h:3012
uint8_t vop_fcode_forward
Definition: vdpau.h:2953
uint8_t fastuvmc
Definition: vdpau.h:2878
uint8_t resync_marker_disable
Definition: vdpau.h:2957
void VdpPreemptionCallback(VdpDevice device, void *context)
A callback to notify the client application that a device&#39;s display has been preempted.
Definition: vdpau.h:4120
float green
Definition: vdpau.h:1062
VdpVideoSurface forward_reference
Definition: vdpau.h:2833
VdpStatus VdpPresentationQueueCreate(VdpDevice device, VdpPresentationQueueTarget presentation_queue_target, VdpPresentationQueue *presentation_queue)
Create a VdpPresentationQueue.
Definition: vdpau.h:3911
VdpStatus VdpVideoMixerGetFeatureEnables(VdpVideoMixer mixer, uint32_t feature_count, VdpVideoMixerFeature const *features, VdpBool *feature_enables)
Retrieve whether features are enabled.
Definition: vdpau.h:3629
uint8_t intra_vlc_format
Definition: vdpau.h:2680
VdpStatus VdpPresentationQueueGetTime(VdpPresentationQueue presentation_queue, VdpTime *current_time)
Retrieve the presentation queue&#39;s "current" time.
Definition: vdpau.h:3958
uint8_t num_ref_idx_l1_active_minus1
Definition: vdpau.h:2792
uint32_t y
Definition: vdpau.h:1028
uint8_t weighted_bipred_idc
Definition: vdpau.h:2778
VdpStatus VdpPreemptionCallbackRegister(VdpDevice device, VdpPreemptionCallback callback, void *context)
Configure the display preemption callback.
Definition: vdpau.h:4135
uint8_t full_pel_forward_vector
Definition: vdpau.h:2688
uint8_t range_mapuv
Definition: vdpau.h:2886
uint8_t quant_type
Definition: vdpau.h:2961
VdpStatus VdpOutputSurfacePutBitsYCbCr(VdpOutputSurface surface, VdpYCbCrFormat source_ycbcr_format, void const *const *source_data, uint32_t const *source_pitches, VdpRect const *destination_rect, VdpCSCMatrix const *csc_matrix)
Copy image data from application memory in a specific YCbCr format to a VdpOutputSurface.
Definition: vdpau.h:1939
A location within a surface.
Definition: vdpau.h:1024
uint32_t x1
Definition: vdpau.h:1047
VdpStatus VdpBitmapSurfaceGetParameters(VdpBitmapSurface surface, VdpRGBAFormat *rgba_format, uint32_t *width, uint32_t *height, VdpBool *frequently_accessed)
Retrieve the parameters used to create a VdpBitmapSurface.
Definition: vdpau.h:2061
uint8_t vop_coding_type
Definition: vdpau.h:2951
VdpStatus VdpVideoMixerQueryAttributeSupport(VdpDevice device, VdpVideoMixerAttribute attribute, VdpBool *is_supported)
Query the implementation&#39;s support for a specific attribute.
Definition: vdpau.h:3484
uint8_t entropy_coding_mode_flag
Definition: vdpau.h:2804
Definition of an additional VdpOutputSurface layer in the composting model.
Definition: vdpau.h:3713
Definition: vdpau.h:1191
uint8_t picture_type
Definition: vdpau.h:2843
VdpStatus VdpPresentationQueueDisplay(VdpPresentationQueue presentation_queue, VdpOutputSurface surface, uint32_t clip_width, uint32_t clip_height, VdpTime earliest_presentation_time)
Enter a surface into the presentation queue.
Definition: vdpau.h:4004
uint32_t x
Definition: vdpau.h:1026
VdpOutputSurfaceRenderBlendEquation blend_equation_alpha
Definition: vdpau.h:2174
Definition: vdpau.h:1105
VdpStatus VdpVideoSurfaceDestroy(VdpVideoSurface surface)
Destroy a VdpVideoSurface.
Definition: vdpau.h:1571
int8_t pic_init_qp_minus26
Definition: vdpau.h:2788
uint8_t alternate_scan
Definition: vdpau.h:2682
uint8_t log2_max_frame_num_minus4
Definition: vdpau.h:2794
uint32_t VdpChromaType
The set of all chroma formats for VdpVideoSurfaces.
Definition: vdpau.h:799
Definition: vdpau.h:1147
float blue
Definition: vdpau.h:1063
VdpStatus VdpDecoderDestroy(VdpDecoder decoder)
Destroy a VdpDecoder.
Definition: vdpau.h:2594
Definition: vdpau.h:1098
uint8_t overlap
Definition: vdpau.h:2872
Picture parameter information for a VC1 picture.
Definition: vdpau.h:2828
uint8_t weighted_pred_flag
Definition: vdpau.h:2776
VdpStatus VdpVideoMixerGetAttributeValues(VdpVideoMixer mixer, uint32_t attribute_count, VdpVideoMixerAttribute const *attributes, void *const *attribute_values)
Retrieve current attribute values.
Definition: vdpau.h:3669
Definition: vdpau.h:1091
uint8_t concealment_motion_vectors
Definition: vdpau.h:2678
Complete blending operation definition.
Definition: vdpau.h:2164
uint32_t VdpVideoMixerFeature
A VdpVideoMixer feature that must be requested at creation time to be used.
Definition: vdpau.h:3099
VdpStatus VdpOutputSurfaceRenderBitmapSurface(VdpOutputSurface destination_surface, VdpRect const *destination_rect, VdpBitmapSurface source_surface, VdpRect const *source_rect, VdpColor const *colors, VdpOutputSurfaceRenderBlendState const *blend_state, uint32_t flags)
Composite a sub-rectangle of a VdpBitmapSurface into a sub-rectangle of a VdpOutputSurface; Output Su...
Definition: vdpau.h:2364
Picture parameter information for an MPEG-4 Part 2 picture.
Definition: vdpau.h:2932
uint32_t VdpDecoder
An opaque handle representing a VdpDecoder object.
Definition: vdpau.h:2561
Definition: vdpau.h:1143
uint8_t finterpflag
Definition: vdpau.h:2856
Definition: vdpau.h:1168
uint8_t log2_max_pic_order_cnt_lsb_minus4
Definition: vdpau.h:2798
VdpStatus VdpVideoMixerQueryParameterValueRange(VdpDevice device, VdpVideoMixerParameter parameter, void *min_value, void *max_value)
Query the implementation&#39;s supported for a specific parameter.
Definition: vdpau.h:3501
void * VdpPictureInfo
A generic "picture information" pointer type.
Definition: vdpau.h:2645
uint8_t rounding_control
Definition: vdpau.h:2967
int VdpBool
A boolean value, holding VDP_TRUE or VDP_FALSE.
Definition: vdpau.h:773
A rectangular region of a surface.
Definition: vdpau.h:1041
uint32_t VdpFuncId
A type suitable for VdpGetProcAddress&#39;s function_id parameter.
Definition: vdpau.h:4158
uint32_t VdpPresentationQueueTarget
An opaque handle representing the location where video will be presented.
Definition: vdpau.h:3883
uint8_t num_ref_frames
Definition: vdpau.h:2770
VdpStatus VdpPresentationQueueDestroy(VdpPresentationQueue presentation_queue)
Destroy a VdpPresentationQueue.
Definition: vdpau.h:3923
uint8_t multires
Definition: vdpau.h:2892
uint8_t dquant
Definition: vdpau.h:2860
VdpPresentationQueueStatus
The status of a surface within a presentation queue.
Definition: vdpau.h:4038
uint8_t intra_dc_precision
Definition: vdpau.h:2674
VdpStatus VdpVideoMixerQueryAttributeValueRange(VdpDevice device, VdpVideoMixerAttribute attribute, void *min_value, void *max_value)
Query the implementation&#39;s supported for a specific attribute.
Definition: vdpau.h:3519
uint32_t struct_version
Definition: vdpau.h:2628
uint32_t struct_version
Definition: vdpau.h:3717
uint32_t slice_count
Definition: vdpau.h:2757
uint8_t refdist_flag
Definition: vdpau.h:2864
uint8_t quantizer
Definition: vdpau.h:2866
float VdpCSCMatrix[3][4]
Storage for a color space conversion matrix.
Definition: vdpau.h:1365
uint8_t pulldown
Definition: vdpau.h:2850
Definition: vdpau.h:4042
uint8_t rangered
Definition: vdpau.h:2904
uint8_t deblocking_filter_control_present_flag
Definition: vdpau.h:2808
uint8_t vstransform
Definition: vdpau.h:2874
uint8_t frame_coding_mode
Definition: vdpau.h:2845
VdpStatus VdpBitmapSurfacePutBitsNative(VdpBitmapSurface surface, void const *const *source_data, uint32_t const *source_pitches, VdpRect const *destination_rect)
Copy image data from application memory in the surface&#39;s native format to a VdpBitmapSurface.
Definition: vdpau.h:2089
Definition: vdpau.h:1210
uint16_t vop_time_increment_resolution
Definition: vdpau.h:2949
VdpStatus VdpVideoMixerGetParameterValues(VdpVideoMixer mixer, uint32_t parameter_count, VdpVideoMixerParameter const *parameters, void *const *parameter_values)
Retrieve parameter values given at creation time.
Definition: vdpau.h:3649
uint8_t top_field_first
Definition: vdpau.h:2686
uint8_t maxbframes
Definition: vdpau.h:2909
VdpVideoSurface backward_reference
Definition: vdpau.h:2942
VdpOutputSurfaceRenderBlendFactor blend_factor_source_color
Definition: vdpau.h:2169
uint16_t frame_idx
Definition: vdpau.h:2734
Picture parameter information for an MPEG 1 or MPEG 2 picture.
Definition: vdpau.h:2655
Definition: vdpau.h:1085
uint32_t VdpColorStandard
YCbCr color space specification.
Definition: vdpau.h:1410
Procamp operation parameterization data.
Definition: vdpau.h:1377
float alpha
Definition: vdpau.h:1064
VdpStatus VdpPresentationQueueQuerySurfaceStatus(VdpPresentationQueue presentation_queue, VdpOutputSurface surface, VdpPresentationQueueStatus *status, VdpTime *first_presentation_time)
Poll the current queue status of a surface.
Definition: vdpau.h:4058
uint8_t full_pel_backward_vector
Definition: vdpau.h:2690
VdpStatus VdpDecoderQueryCapabilities(VdpDevice device, VdpDecoderProfile profile, VdpBool *is_supported, uint32_t *max_level, uint32_t *max_macroblocks, uint32_t *max_width, uint32_t *max_height)
Query the implementation&#39;s VdpDecoder capabilities.
Definition: vdpau.h:2547
uint32_t VdpVideoMixerAttribute
An adjustable attribute of VdpVideoMixer operation.
Definition: vdpau.h:3329
VdpVideoSurface forward_reference
Definition: vdpau.h:2660
VdpVideoSurface backward_reference
Definition: vdpau.h:2838
uint8_t top_field_first
Definition: vdpau.h:2971
VdpRect const * destination_rect
Definition: vdpau.h:3735
int8_t chroma_qp_index_offset
Definition: vdpau.h:2784
VdpOutputSurfaceRenderBlendFactor blend_factor_destination_color
Definition: vdpau.h:2170
uint8_t redundant_pic_cnt_present_flag
Definition: vdpau.h:2810
Definition: vdpau.h:1206
VdpStatus VdpGenerateCSCMatrix(VdpProcamp *procamp, VdpColorStandard standard, VdpCSCMatrix *csc_matrix)
Generate a color space conversion matrix.
Definition: vdpau.h:1427
VdpStatus
The set of all possible error codes.
Definition: vdpau.h:1079
VdpStatus VdpOutputSurfaceRenderOutputSurface(VdpOutputSurface destination_surface, VdpRect const *destination_rect, VdpOutputSurface source_surface, VdpRect const *source_rect, VdpColor const *colors, VdpOutputSurfaceRenderBlendState const *blend_state, uint32_t flags)
Composite a sub-rectangle of a VdpOutputSurface into a sub-rectangle of another VdpOutputSurface; Out...
Definition: vdpau.h:2284
uint8_t field_pic_flag
Definition: vdpau.h:2766
VdpStatus VdpVideoMixerQueryParameterSupport(VdpDevice device, VdpVideoMixerParameter parameter, VdpBool *is_supported)
Query the implementation&#39;s support for a specific parameter.
Definition: vdpau.h:3468
Information about an H.264 reference frame.
Definition: vdpau.h:2709
uint8_t bottom_field_flag
Definition: vdpau.h:2768
Picture parameter information for an H.264 picture.
Definition: vdpau.h:2755
uint64_t VdpTime
The representation of a point in time.
Definition: vdpau.h:3873
uint8_t extended_mv
Definition: vdpau.h:2868
uint16_t frame_num
Definition: vdpau.h:2764
float brightness
Definition: vdpau.h:1386
VdpBool top_is_reference
Definition: vdpau.h:2721
VdpVideoSurface backward_reference
Definition: vdpau.h:2665
uint32_t y0
Definition: vdpau.h:1045
VdpStatus VdpVideoSurfaceGetParameters(VdpVideoSurface surface, VdpChromaType *chroma_type, uint32_t *width, uint32_t *height)
Retrieve the parameters used to create a VdpVideoSurface.
Definition: vdpau.h:1584
uint32_t VdpVideoSurface
An opaque handle representing a VdpVideoSurface object.
Definition: vdpau.h:1510
Definition: vdpau.h:1185
char const * VdpGetErrorString(VdpStatus status)
Retrieve a string describing an error code.
Definition: vdpau.h:1222
VdpStatus VdpOutputSurfaceQueryCapabilities(VdpDevice device, VdpRGBAFormat surface_rgba_format, VdpBool *is_supported, uint32_t *max_width, uint32_t *max_height)
Query the implementation&#39;s VdpOutputSurface capabilities.
Definition: vdpau.h:1705
VdpStatus VdpVideoMixerRender(VdpVideoMixer mixer, VdpOutputSurface background_surface, VdpRect const *background_source_rect, VdpVideoMixerPictureStructure current_picture_structure, uint32_t video_surface_past_count, VdpVideoSurface const *video_surface_past, VdpVideoSurface video_surface_current, uint32_t video_surface_future_count, VdpVideoSurface const *video_surface_future, VdpRect const *video_source_rect, VdpOutputSurface destination_surface, VdpRect const *destination_rect, VdpRect const *destination_video_rect, uint32_t layer_count, VdpLayer const *layers)
Perform a video post-processing and compositing operation.
Definition: vdpau.h:3804
uint8_t psf
Definition: vdpau.h:2858
Definition: vdpau.h:1196
uint8_t syncmarker
Definition: vdpau.h:2897
VdpStatus VdpVideoSurfacePutBitsYCbCr(VdpVideoSurface surface, VdpYCbCrFormat source_ycbcr_format, void const *const *source_data, uint32_t const *source_pitches)
Copy image data from application memory in a specific YCbCr format to a VdpVideoSurface.
Definition: vdpau.h:1635
uint8_t delta_pic_order_always_zero_flag
Definition: vdpau.h:2800
VdpStatus VdpOutputSurfaceQueryPutBitsIndexedCapabilities(VdpDevice device, VdpRGBAFormat surface_rgba_format, VdpIndexedFormat bits_indexed_format, VdpColorTableFormat color_table_format, VdpBool *is_supported)
Query the implementation&#39;s capability to perform a PutBits operation using application data in a spec...
Definition: vdpau.h:1745
uint8_t tfcntrflag
Definition: vdpau.h:2854
Definition: vdpau.h:1139
VdpStatus VdpOutputSurfaceDestroy(VdpOutputSurface surface)
Destroy a VdpOutputSurface.
Definition: vdpau.h:1806
uint8_t loopfilter
Definition: vdpau.h:2876
uint8_t panscan_flag
Definition: vdpau.h:2862
float red
Definition: vdpau.h:1061
VdpOutputSurfaceRenderBlendFactor blend_factor_destination_alpha
Definition: vdpau.h:2172
uint8_t picture_coding_type
Definition: vdpau.h:2672
uint8_t range_mapy_flag
Definition: vdpau.h:2880
uint8_t picture_structure
Definition: vdpau.h:2670
VdpStatus VdpPresentationQueueTargetDestroy(VdpPresentationQueueTarget presentation_queue_target)
Destroy a VdpPresentationQueueTarget.
Definition: vdpau.h:3890
VdpStatus VdpVideoSurfaceCreate(VdpDevice device, VdpChromaType chroma_type, uint32_t width, uint32_t height, VdpVideoSurface *surface)
Create a VdpVideoSurface.
Definition: vdpau.h:1557
VdpStatus VdpPresentationQueueSetBackgroundColor(VdpPresentationQueue presentation_queue, VdpColor *const background_color)
Configure the background color setting.
Definition: vdpau.h:3936
VdpOutputSurfaceRenderBlendEquation blend_equation_color
Definition: vdpau.h:2173
uint8_t mb_adaptive_frame_field_flag
Definition: vdpau.h:2772