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-2015 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 
779 #ifndef _VDPAU_H
780 #define _VDPAU_H
781 
782 #include <stdint.h>
783 
784 #ifdef __cplusplus
785 extern "C" {
786 #endif
787 
806 #define VDP_TRUE 1
807 
808 #define VDP_FALSE 0
809 
813 typedef int VdpBool;
814 
833 #define VDP_INVALID_HANDLE 0xffffffffU
834 
839 typedef uint32_t VdpChromaType;
840 
849 #define VDP_CHROMA_TYPE_420 ((VdpChromaType)0)
850 
858 #define VDP_CHROMA_TYPE_422 ((VdpChromaType)1)
859 
867 #define VDP_CHROMA_TYPE_444 ((VdpChromaType)2)
868 
873 #define VDP_CHROMA_TYPE_420_FIELD ((VdpChromaType)3)
874 
878 #define VDP_CHROMA_TYPE_422_FIELD ((VdpChromaType)4)
879 
883 #define VDP_CHROMA_TYPE_444_FIELD ((VdpChromaType)5)
884 
889 #define VDP_CHROMA_TYPE_420_FRAME ((VdpChromaType)6)
890 
894 #define VDP_CHROMA_TYPE_422_FRAME ((VdpChromaType)7)
895 
899 #define VDP_CHROMA_TYPE_444_FRAME ((VdpChromaType)8)
900 
908 #define VDP_CHROMA_TYPE_420_16 ((VdpChromaType)9)
909 
917 #define VDP_CHROMA_TYPE_422_16 ((VdpChromaType)10)
918 
926 #define VDP_CHROMA_TYPE_444_16 ((VdpChromaType)11)
927 
932 #define VDP_CHROMA_TYPE_420_FIELD_16 ((VdpChromaType)12)
933 
937 #define VDP_CHROMA_TYPE_422_FIELD_16 ((VdpChromaType)13)
938 
942 #define VDP_CHROMA_TYPE_444_FIELD_16 ((VdpChromaType)14)
943 
948 #define VDP_CHROMA_TYPE_420_FRAME_16 ((VdpChromaType)15)
949 
953 #define VDP_CHROMA_TYPE_422_FRAME_16 ((VdpChromaType)16)
954 
958 #define VDP_CHROMA_TYPE_444_FRAME_16 ((VdpChromaType)17)
959 
963 typedef uint32_t VdpYCbCrFormat;
964 
978 #define VDP_YCBCR_FORMAT_NV12 ((VdpYCbCrFormat)0)
979 
990 #define VDP_YCBCR_FORMAT_YV12 ((VdpYCbCrFormat)1)
991 
1004 #define VDP_YCBCR_FORMAT_UYVY ((VdpYCbCrFormat)2)
1005 
1018 #define VDP_YCBCR_FORMAT_YUYV ((VdpYCbCrFormat)3)
1019 
1031 #define VDP_YCBCR_FORMAT_Y8U8V8A8 ((VdpYCbCrFormat)4)
1032 
1044 #define VDP_YCBCR_FORMAT_V8U8Y8A8 ((VdpYCbCrFormat)5)
1045 
1058 #define VDP_YCBCR_FORMAT_Y_UV_444 ((VdpYCbCrFormat)6)
1059 
1070 #define VDP_YCBCR_FORMAT_Y_U_V_444 ((VdpYCbCrFormat)7)
1071 
1088 #define VDP_YCBCR_FORMAT_P010 ((VdpYCbCrFormat)8)
1089 
1102 #define VDP_YCBCR_FORMAT_P016 ((VdpYCbCrFormat)9)
1103 
1114  #define VDP_YCBCR_FORMAT_Y_U_V_444_16 ((VdpYCbCrFormat)11)
1115 
1119 typedef uint32_t VdpRGBAFormat;
1120 
1133 #define VDP_RGBA_FORMAT_B8G8R8A8 ((VdpRGBAFormat)0)
1134 
1146 #define VDP_RGBA_FORMAT_R8G8B8A8 ((VdpRGBAFormat)1)
1147 
1159 #define VDP_RGBA_FORMAT_R10G10B10A2 ((VdpRGBAFormat)2)
1160 
1172 #define VDP_RGBA_FORMAT_B10G10R10A2 ((VdpRGBAFormat)3)
1173 
1183 #define VDP_RGBA_FORMAT_A8 ((VdpRGBAFormat)4)
1184 
1188 typedef uint32_t VdpIndexedFormat;
1189 
1201 #define VDP_INDEXED_FORMAT_A4I4 ((VdpIndexedFormat)0)
1202 
1213 #define VDP_INDEXED_FORMAT_I4A4 ((VdpIndexedFormat)1)
1214 
1225 #define VDP_INDEXED_FORMAT_A8I8 ((VdpIndexedFormat)2)
1226 
1237 #define VDP_INDEXED_FORMAT_I8A8 ((VdpIndexedFormat)3)
1238 
1246 typedef struct {
1248  uint32_t x;
1250  uint32_t y;
1251 } VdpPoint;
1252 
1263 typedef struct {
1265  uint32_t x0;
1267  uint32_t y0;
1269  uint32_t x1;
1271  uint32_t y1;
1272 } VdpRect;
1273 
1282 typedef struct {
1283  float red;
1284  float green;
1285  float blue;
1286  float alpha;
1287 } VdpColor;
1288 
1301 typedef enum {
1433 } VdpStatus;
1434 
1444 typedef char const * VdpGetErrorString(
1445  VdpStatus status
1446 );
1447 
1472 #define VDPAU_INTERFACE_VERSION 1
1473 
1485 #define VDPAU_VERSION 1
1486 
1492 typedef VdpStatus VdpGetApiVersion(
1493  /* output parameters follow */
1494  uint32_t * api_version
1495 );
1496 
1514 typedef VdpStatus VdpGetInformationString(
1515  /* output parameters follow */
1516  char const * * information_string
1517 );
1518 
1538 typedef uint32_t VdpDevice;
1539 
1545 typedef VdpStatus VdpDeviceDestroy(
1546  VdpDevice device
1547 );
1548 
1587 typedef float VdpCSCMatrix[3][4];
1588 
1589 #define VDP_PROCAMP_VERSION 0
1590 
1599 typedef struct {
1603  uint32_t struct_version;
1608  float brightness;
1613  float contrast;
1618  float saturation;
1623  float hue;
1624 } VdpProcamp;
1625 
1632 typedef uint32_t VdpColorStandard;
1633 
1635 #define VDP_COLOR_STANDARD_ITUR_BT_601 ((VdpColorStandard)0)
1636 
1637 #define VDP_COLOR_STANDARD_ITUR_BT_709 ((VdpColorStandard)1)
1638 
1639 #define VDP_COLOR_STANDARD_SMPTE_240M ((VdpColorStandard)2)
1640 
1649 typedef VdpStatus VdpGenerateCSCMatrix(
1650  VdpProcamp * procamp,
1651  VdpColorStandard standard,
1652  /* output parameters follow */
1653  VdpCSCMatrix * csc_matrix
1654 );
1655 
1701  VdpDevice device,
1702  VdpChromaType surface_chroma_type,
1703  /* output parameters follow */
1704  VdpBool * is_supported,
1705  uint32_t * max_width,
1706  uint32_t * max_height
1707 );
1708 
1721  VdpDevice device,
1722  VdpChromaType surface_chroma_type,
1723  VdpYCbCrFormat bits_ycbcr_format,
1724  /* output parameters follow */
1725  VdpBool * is_supported
1726 );
1727 
1732 typedef uint32_t VdpVideoSurface;
1733 
1779 typedef VdpStatus VdpVideoSurfaceCreate(
1780  VdpDevice device,
1781  VdpChromaType chroma_type,
1782  uint32_t width,
1783  uint32_t height,
1784  /* output parameters follow */
1785  VdpVideoSurface * surface
1786 );
1787 
1793 typedef VdpStatus VdpVideoSurfaceDestroy(
1794  VdpVideoSurface surface
1795 );
1796 
1807  VdpVideoSurface surface,
1808  /* output parameters follow */
1809  VdpChromaType * chroma_type,
1810  uint32_t * width,
1811  uint32_t * height
1812 );
1813 
1833  VdpVideoSurface surface,
1834  VdpYCbCrFormat destination_ycbcr_format,
1835  void * const * destination_data,
1836  uint32_t const * destination_pitches
1837 );
1838 
1858  VdpVideoSurface surface,
1859  VdpYCbCrFormat source_ycbcr_format,
1860  void const * const * source_data,
1861  uint32_t const * source_pitches
1862 );
1863 
1898 typedef uint32_t VdpColorTableFormat;
1899 
1911 #define VDP_COLOR_TABLE_FORMAT_B8G8R8X8 ((VdpColorTableFormat)0)
1912 
1927  VdpDevice device,
1928  VdpRGBAFormat surface_rgba_format,
1929  /* output parameters follow */
1930  VdpBool * is_supported,
1931  uint32_t * max_width,
1932  uint32_t * max_height
1933 );
1934 
1946  VdpDevice device,
1947  VdpRGBAFormat surface_rgba_format,
1948  /* output parameters follow */
1949  VdpBool * is_supported
1950 );
1951 
1967  VdpDevice device,
1968  VdpRGBAFormat surface_rgba_format,
1969  VdpIndexedFormat bits_indexed_format,
1970  VdpColorTableFormat color_table_format,
1971  /* output parameters follow */
1972  VdpBool * is_supported
1973 );
1974 
1988  VdpDevice device,
1989  VdpRGBAFormat surface_rgba_format,
1990  VdpYCbCrFormat bits_ycbcr_format,
1991  /* output parameters follow */
1992  VdpBool * is_supported
1993 );
1994 
1999 typedef uint32_t VdpOutputSurface;
2000 
2013 typedef VdpStatus VdpOutputSurfaceCreate(
2014  VdpDevice device,
2015  VdpRGBAFormat rgba_format,
2016  uint32_t width,
2017  uint32_t height,
2018  /* output parameters follow */
2019  VdpOutputSurface * surface
2020 );
2021 
2027 typedef VdpStatus VdpOutputSurfaceDestroy(
2028  VdpOutputSurface surface
2029 );
2030 
2041  VdpOutputSurface surface,
2042  /* output parameters follow */
2043  VdpRGBAFormat * rgba_format,
2044  uint32_t * width,
2045  uint32_t * height
2046 );
2047 
2068  VdpOutputSurface surface,
2069  VdpRect const * source_rect,
2070  void * const * destination_data,
2071  uint32_t const * destination_pitches
2072 );
2073 
2094  VdpOutputSurface surface,
2095  void const * const * source_data,
2096  uint32_t const * source_pitches,
2097  VdpRect const * destination_rect
2098 );
2099 
2126  VdpOutputSurface surface,
2127  VdpIndexedFormat source_indexed_format,
2128  void const * const * source_data,
2129  uint32_t const * source_pitch,
2130  VdpRect const * destination_rect,
2131  VdpColorTableFormat color_table_format,
2132  void const * color_table
2133 );
2134 
2161  VdpOutputSurface surface,
2162  VdpYCbCrFormat source_ycbcr_format,
2163  void const * const * source_data,
2164  uint32_t const * source_pitches,
2165  VdpRect const * destination_rect,
2166  VdpCSCMatrix const * csc_matrix
2167 );
2168 
2220  VdpDevice device,
2221  VdpRGBAFormat surface_rgba_format,
2222  /* output parameters follow */
2223  VdpBool * is_supported,
2224  uint32_t * max_width,
2225  uint32_t * max_height
2226 );
2227 
2232 typedef uint32_t VdpBitmapSurface;
2233 
2251 typedef VdpStatus VdpBitmapSurfaceCreate(
2252  VdpDevice device,
2253  VdpRGBAFormat rgba_format,
2254  uint32_t width,
2255  uint32_t height,
2256  VdpBool frequently_accessed,
2257  /* output parameters follow */
2258  VdpBitmapSurface * surface
2259 );
2260 
2266 typedef VdpStatus VdpBitmapSurfaceDestroy(
2267  VdpBitmapSurface surface
2268 );
2269 
2282  VdpBitmapSurface surface,
2283  /* output parameters follow */
2284  VdpRGBAFormat * rgba_format,
2285  uint32_t * width,
2286  uint32_t * height,
2287  VdpBool * frequently_accessed
2288 );
2289 
2310  VdpBitmapSurface surface,
2311  void const * const * source_data,
2312  uint32_t const * source_pitches,
2313  VdpRect const * destination_rect
2314 );
2315 
2332 typedef enum {
2349 
2354 typedef enum {
2361 
2362 #define VDP_OUTPUT_SURFACE_RENDER_BLEND_STATE_VERSION 0
2363 
2383 typedef struct {
2387  uint32_t struct_version;
2396 
2401 #define VDP_OUTPUT_SURFACE_RENDER_ROTATE_0 0
2402 
2408 #define VDP_OUTPUT_SURFACE_RENDER_ROTATE_90 1
2409 
2415 #define VDP_OUTPUT_SURFACE_RENDER_ROTATE_180 2
2416 
2422 #define VDP_OUTPUT_SURFACE_RENDER_ROTATE_270 3
2423 
2431 #define VDP_OUTPUT_SURFACE_RENDER_COLOR_PER_VERTEX (1 << 2)
2432 
2504  VdpOutputSurface destination_surface,
2505  VdpRect const * destination_rect,
2506  VdpOutputSurface source_surface,
2507  VdpRect const * source_rect,
2508  VdpColor const * colors,
2509  VdpOutputSurfaceRenderBlendState const * blend_state,
2510  uint32_t flags
2511 );
2512 
2584  VdpOutputSurface destination_surface,
2585  VdpRect const * destination_rect,
2586  VdpBitmapSurface source_surface,
2587  VdpRect const * source_rect,
2588  VdpColor const * colors,
2589  VdpOutputSurfaceRenderBlendState const * blend_state,
2590  uint32_t flags
2591 );
2592 
2613 typedef uint32_t VdpDecoderProfile;
2614 
2616 #define VDP_DECODER_PROFILE_MPEG1 ((VdpDecoderProfile)0)
2617 
2618 #define VDP_DECODER_PROFILE_MPEG2_SIMPLE ((VdpDecoderProfile)1)
2619 
2620 #define VDP_DECODER_PROFILE_MPEG2_MAIN ((VdpDecoderProfile)2)
2621 
2623 #define VDP_DECODER_PROFILE_H264_BASELINE ((VdpDecoderProfile)6)
2624 
2625 #define VDP_DECODER_PROFILE_H264_MAIN ((VdpDecoderProfile)7)
2626 
2627 #define VDP_DECODER_PROFILE_H264_HIGH ((VdpDecoderProfile)8)
2628 
2629 #define VDP_DECODER_PROFILE_VC1_SIMPLE ((VdpDecoderProfile)9)
2630 
2631 #define VDP_DECODER_PROFILE_VC1_MAIN ((VdpDecoderProfile)10)
2632 
2633 #define VDP_DECODER_PROFILE_VC1_ADVANCED ((VdpDecoderProfile)11)
2634 
2635 #define VDP_DECODER_PROFILE_MPEG4_PART2_SP ((VdpDecoderProfile)12)
2636 
2637 #define VDP_DECODER_PROFILE_MPEG4_PART2_ASP ((VdpDecoderProfile)13)
2638 
2639 #define VDP_DECODER_PROFILE_DIVX4_QMOBILE ((VdpDecoderProfile)14)
2640 
2641 #define VDP_DECODER_PROFILE_DIVX4_MOBILE ((VdpDecoderProfile)15)
2642 
2643 #define VDP_DECODER_PROFILE_DIVX4_HOME_THEATER ((VdpDecoderProfile)16)
2644 
2645 #define VDP_DECODER_PROFILE_DIVX4_HD_1080P ((VdpDecoderProfile)17)
2646 
2647 #define VDP_DECODER_PROFILE_DIVX5_QMOBILE ((VdpDecoderProfile)18)
2648 
2649 #define VDP_DECODER_PROFILE_DIVX5_MOBILE ((VdpDecoderProfile)19)
2650 
2651 #define VDP_DECODER_PROFILE_DIVX5_HOME_THEATER ((VdpDecoderProfile)20)
2652 
2653 #define VDP_DECODER_PROFILE_DIVX5_HD_1080P ((VdpDecoderProfile)21)
2654 
2655 #define VDP_DECODER_PROFILE_H264_CONSTRAINED_BASELINE ((VdpDecoderProfile)22)
2656 
2657 #define VDP_DECODER_PROFILE_H264_EXTENDED ((VdpDecoderProfile)23)
2658 
2659 #define VDP_DECODER_PROFILE_H264_PROGRESSIVE_HIGH ((VdpDecoderProfile)24)
2660 
2661 #define VDP_DECODER_PROFILE_H264_CONSTRAINED_HIGH ((VdpDecoderProfile)25)
2662 
2664 #define VDP_DECODER_PROFILE_H264_HIGH_444_PREDICTIVE ((VdpDecoderProfile)26)
2665 
2666 #define VDP_DECODER_PROFILE_VP9_PROFILE_0 ((VdpDecoderProfile)27)
2667 
2668 #define VDP_DECODER_PROFILE_VP9_PROFILE_1 ((VdpDecoderProfile)28)
2669 
2670 #define VDP_DECODER_PROFILE_VP9_PROFILE_2 ((VdpDecoderProfile)29)
2671 
2672 #define VDP_DECODER_PROFILE_VP9_PROFILE_3 ((VdpDecoderProfile)30)
2673 
2675 #define VDP_DECODER_PROFILE_HEVC_MAIN ((VdpDecoderProfile)100)
2676 
2677 #define VDP_DECODER_PROFILE_HEVC_MAIN_10 ((VdpDecoderProfile)101)
2678 
2679 #define VDP_DECODER_PROFILE_HEVC_MAIN_STILL ((VdpDecoderProfile)102)
2680 
2681 #define VDP_DECODER_PROFILE_HEVC_MAIN_12 ((VdpDecoderProfile)103)
2682 
2683 #define VDP_DECODER_PROFILE_HEVC_MAIN_444 ((VdpDecoderProfile)104)
2684 
2685 #define VDP_DECODER_PROFILE_HEVC_MAIN_444_10 ((VdpDecoderProfile)105)
2686 
2687 #define VDP_DECODER_PROFILE_HEVC_MAIN_444_12 ((VdpDecoderProfile)106)
2688 
2690 #define VDP_DECODER_LEVEL_MPEG1_NA 0
2691 
2693 #define VDP_DECODER_LEVEL_MPEG2_LL 0
2694 
2695 #define VDP_DECODER_LEVEL_MPEG2_ML 1
2696 
2697 #define VDP_DECODER_LEVEL_MPEG2_HL14 2
2698 
2699 #define VDP_DECODER_LEVEL_MPEG2_HL 3
2700 
2702 #define VDP_DECODER_LEVEL_H264_1 10
2703 
2704 #define VDP_DECODER_LEVEL_H264_1b 9
2705 
2706 #define VDP_DECODER_LEVEL_H264_1_1 11
2707 
2708 #define VDP_DECODER_LEVEL_H264_1_2 12
2709 
2710 #define VDP_DECODER_LEVEL_H264_1_3 13
2711 
2712 #define VDP_DECODER_LEVEL_H264_2 20
2713 
2714 #define VDP_DECODER_LEVEL_H264_2_1 21
2715 
2716 #define VDP_DECODER_LEVEL_H264_2_2 22
2717 
2718 #define VDP_DECODER_LEVEL_H264_3 30
2719 
2720 #define VDP_DECODER_LEVEL_H264_3_1 31
2721 
2722 #define VDP_DECODER_LEVEL_H264_3_2 32
2723 
2724 #define VDP_DECODER_LEVEL_H264_4 40
2725 
2726 #define VDP_DECODER_LEVEL_H264_4_1 41
2727 
2728 #define VDP_DECODER_LEVEL_H264_4_2 42
2729 
2730 #define VDP_DECODER_LEVEL_H264_5 50
2731 
2732 #define VDP_DECODER_LEVEL_H264_5_1 51
2733 
2735 #define VDP_DECODER_LEVEL_VC1_SIMPLE_LOW 0
2736 
2737 #define VDP_DECODER_LEVEL_VC1_SIMPLE_MEDIUM 1
2738 
2740 #define VDP_DECODER_LEVEL_VC1_MAIN_LOW 0
2741 
2742 #define VDP_DECODER_LEVEL_VC1_MAIN_MEDIUM 1
2743 
2744 #define VDP_DECODER_LEVEL_VC1_MAIN_HIGH 2
2745 
2747 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L0 0
2748 
2749 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L1 1
2750 
2751 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L2 2
2752 
2753 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L3 3
2754 
2755 #define VDP_DECODER_LEVEL_VC1_ADVANCED_L4 4
2756 
2758 #define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L0 0
2759 
2760 #define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L1 1
2761 
2762 #define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L2 2
2763 
2764 #define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L3 3
2765 
2767 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L0 0
2768 
2769 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L1 1
2770 
2771 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L2 2
2772 
2773 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L3 3
2774 
2775 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L4 4
2776 
2777 #define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L5 5
2778 
2780 #define VDP_DECODER_LEVEL_DIVX_NA 0
2781 
2783 #define VDP_DECODER_LEVEL_VP9_L1 1
2784 
2791 #define VDP_DECODER_LEVEL_HEVC_1 30
2792 
2793 #define VDP_DECODER_LEVEL_HEVC_2 60
2794 
2795 #define VDP_DECODER_LEVEL_HEVC_2_1 63
2796 
2797 #define VDP_DECODER_LEVEL_HEVC_3 90
2798 
2799 #define VDP_DECODER_LEVEL_HEVC_3_1 93
2800 
2801 #define VDP_DECODER_LEVEL_HEVC_4 120
2802 
2803 #define VDP_DECODER_LEVEL_HEVC_4_1 123
2804 
2805 #define VDP_DECODER_LEVEL_HEVC_5 150
2806 
2807 #define VDP_DECODER_LEVEL_HEVC_5_1 153
2808 
2809 #define VDP_DECODER_LEVEL_HEVC_5_2 156
2810 
2811 #define VDP_DECODER_LEVEL_HEVC_6 180
2812 
2813 #define VDP_DECODER_LEVEL_HEVC_6_1 183
2814 
2815 #define VDP_DECODER_LEVEL_HEVC_6_2 186
2816 
2817 typedef enum {
2821 
2822 typedef enum {
2837 
2850  VdpDevice device,
2851  VdpDecoderProfile profile,
2852  /* output parameters follow */
2853  VdpDecoderCapability capability,
2854  void * capability_value
2855 );
2856 
2876  VdpDevice device,
2877  VdpDecoderProfile profile,
2878  /* output parameters follow */
2879  VdpBool * is_supported,
2880  uint32_t * max_level,
2881  uint32_t * max_macroblocks,
2882  uint32_t * max_width,
2883  uint32_t * max_height
2884 );
2885 
2889 typedef uint32_t VdpDecoder;
2890 
2907 typedef VdpStatus VdpDecoderCreate(
2908  VdpDevice device,
2909  VdpDecoderProfile profile,
2910  uint32_t width,
2911  uint32_t height,
2912  uint32_t max_references,
2913  /* output parameters follow */
2914  VdpDecoder * decoder
2915 );
2916 
2922 typedef VdpStatus VdpDecoderDestroy(
2923  VdpDecoder decoder
2924 );
2925 
2938 typedef VdpStatus VdpDecoderGetParameters(
2939  VdpDecoder decoder,
2940  /* output parameters follow */
2941  VdpDecoderProfile * profile,
2942  uint32_t * width,
2943  uint32_t * height
2944 );
2945 
2946 #define VDP_BITSTREAM_BUFFER_VERSION 0
2947 
2952 typedef struct {
2956  uint32_t struct_version;
2958  void const * bitstream;
2962 
2973 typedef void VdpPictureInfo;
2974 
2983 typedef struct {
2988  VdpVideoSurface forward_reference;
2993  VdpVideoSurface backward_reference;
2995  uint32_t slice_count;
2996 
3008  uint8_t q_scale_type;
3015  uint8_t f_code[2][2];
3017  uint8_t intra_quantizer_matrix[64];
3019  uint8_t non_intra_quantizer_matrix[64];
3022 
3030 typedef struct {
3035  VdpVideoSurface surface;
3037  VdpBool is_long_term;
3049  int32_t field_order_cnt[2];
3055  uint16_t frame_idx;
3057 
3080 typedef struct {
3082  uint32_t slice_count;
3084  int32_t field_order_cnt[2];
3086  VdpBool is_reference;
3087 
3092  uint16_t frame_num;
3117  uint8_t scaling_lists_4x4[6][16];
3119  uint8_t scaling_lists_8x8[2][64];
3123  VdpReferenceFrameH264 referenceFrames[16];
3125 
3136 typedef struct {
3139 
3156 
3164 typedef struct {
3169  VdpVideoSurface forward_reference;
3174  VdpVideoSurface backward_reference;
3175 
3177  uint32_t slice_count;
3179  uint8_t picture_type;
3182 
3188  uint8_t postprocflag;
3190  uint8_t pulldown;
3192  uint8_t interlace;
3194  uint8_t tfcntrflag;
3196  uint8_t finterpflag;
3198  uint8_t psf;
3200  uint8_t dquant;
3202  uint8_t panscan_flag;
3204  uint8_t refdist_flag;
3206  uint8_t quantizer;
3208  uint8_t extended_mv;
3210  uint8_t extended_dmv;
3212  uint8_t overlap;
3214  uint8_t vstransform;
3216  uint8_t loopfilter;
3218  uint8_t fastuvmc;
3221  uint8_t range_mapy;
3224  uint8_t range_mapuv;
3225 
3230  uint8_t multires;
3235  uint8_t syncmarker;
3242  uint8_t rangered;
3247  uint8_t maxbframes;
3255  uint8_t deblockEnable;
3261  uint8_t pquant;
3263 
3271 typedef struct {
3276  VdpVideoSurface forward_reference;
3281  VdpVideoSurface backward_reference;
3282 
3287  int32_t trd[2];
3288  int32_t trb[2];
3294  uint8_t interlaced;
3295  uint8_t quant_type;
3302  uint8_t intra_quantizer_matrix[64];
3303  uint8_t non_intra_quantizer_matrix[64];
3306 
3314 
3322 
3323 typedef struct
3324 {
3325  unsigned int width;
3326  unsigned int height;
3327 
3328  //Frame Indices
3329  VdpVideoSurface lastReference;
3330  VdpVideoSurface goldenReference;
3331  VdpVideoSurface altReference;
3332 
3333  unsigned char colorSpace;
3334 
3335  unsigned short profile;
3336  unsigned short frameContextIdx;
3337  unsigned short keyFrame;
3338  unsigned short showFrame;
3339  unsigned short errorResilient;
3340  unsigned short frameParallelDecoding;
3341  unsigned short subSamplingX;
3342  unsigned short subSamplingY;
3343  unsigned short intraOnly;
3344  unsigned short allowHighPrecisionMv;
3345  unsigned short refreshEntropyProbs;
3346 
3347  unsigned char refFrameSignBias[4];
3348 
3349  unsigned char bitDepthMinus8Luma;
3350  unsigned char bitDepthMinus8Chroma;
3351  unsigned char loopFilterLevel;
3352  unsigned char loopFilterSharpness;
3353 
3354  unsigned char modeRefLfEnabled;
3355  unsigned char log2TileColumns;
3356  unsigned char log2TileRows;
3357 
3358  unsigned char segmentEnabled;
3359  unsigned char segmentMapUpdate;
3361  unsigned char segmentFeatureMode;
3362 
3363  unsigned char segmentFeatureEnable[8][4];
3364  short segmentFeatureData[8][4];
3365  unsigned char mbSegmentTreeProbs[7];
3366  unsigned char segmentPredProbs[3];
3367  unsigned char reservedSegment16Bits[2];
3368 
3369  int qpYAc;
3370  int qpYDc;
3371  int qpChDc;
3372  int qpChAc;
3373 
3374  unsigned int activeRefIdx[3];
3375  unsigned int resetFrameContext;
3376  unsigned int mcompFilterType;
3377  unsigned int mbRefLfDelta[4];
3378  unsigned int mbModeLfDelta[2];
3380  unsigned int compressedHeaderSize;
3382 
3400 typedef struct {
3426  uint8_t ScalingList4x4[6][16];
3429  uint8_t ScalingList8x8[6][64];
3432  uint8_t ScalingList16x16[6][64];
3435  uint8_t ScalingList32x32[2][64];
3438  uint8_t ScalingListDCCoeff16x16[6];
3441  uint8_t ScalingListDCCoeff32x32[2];
3500  uint16_t column_width_minus1[20];
3504  uint16_t row_height_minus1[22];
3534  uint8_t IDRPicFlag;
3537  uint8_t RAPPicFlag;
3539  uint8_t CurrRpsIdx;
3565 
3569  VdpVideoSurface RefPics[16];
3572  int32_t PicOrderCntVal[16];
3576  uint8_t IsLongTerm[16];
3585  uint8_t NumPocLtCurr;
3588  uint8_t RefPicSetStCurrBefore[8];
3591  uint8_t RefPicSetStCurrAfter[8];
3594  uint8_t RefPicSetLtCurr[8];
3596 
3604 typedef struct {
3607 
3608  /* SPS Range Extensions for Main 444, Main 10, etc. */
3610  /* sps extension for transform_skip_rotation_enabled_flag */
3612  /* sps extension for transform_skip_context_enabled_flag */
3614  /* sps implicit_rdpcm_enabled_flag */
3616  /* sps explicit_rdpcm_enabled_flag */
3618  /* sps extended_precision_processing_flag,always 0 in current profile */
3620  /* sps intra_smoothing_disabled_flag */
3622  /* sps high_precision_offsets_enabled_flag */
3624  /* sps persistent_rice_adaptation_enabled_flag */
3626  /* sps cabac_bypass_alignment_enabled_flag, always 0 in current profile */
3628  /* sps intraBlockCopyEnableFlag, always 0 not used by the spec as of now */
3630 
3631  /* PPS Range Extensions for Main 444, Main 10, etc. */
3633  /* pps extension log2_max_transform_skip_block_size_minus2, 0...5 */
3635  /* pps cross_component_prediction_enabled_flag */
3637  /* pps chroma_qp_adjustment_enabled_flag */
3639  /* pps diff_cu_chroma_qp_adjustment_depth, 0...3 */
3641  /* pps chroma_qp_adjustment_table_size_minus1+1, 1...6 */
3643  /* pps log2_sao_offset_scale_luma, max(0,bitdepth-10), */
3644  /* maxBitdepth 16 for future. */
3646  /* pps log2_sao_offset_scale_chroma */
3648  /* -[12,+12] */
3649  int8_t cb_qp_adjustment[6];
3650  /* -[12,+12] */
3651  int8_t cr_qp_adjustment[6];
3652 
3654 
3664 
3683 typedef VdpStatus VdpDecoderRender(
3684  VdpDecoder decoder,
3685  VdpVideoSurface target,
3686  VdpPictureInfo const * picture_info,
3687  uint32_t bitstream_buffer_count,
3688  VdpBitstreamBuffer const * bitstream_buffers
3689 );
3690 
3769 typedef uint32_t VdpVideoMixerFeature;
3770 
3782 #define VDP_VIDEO_MIXER_FEATURE_DEINTERLACE_TEMPORAL ((VdpVideoMixerFeature)0)
3783 
3795 #define VDP_VIDEO_MIXER_FEATURE_DEINTERLACE_TEMPORAL_SPATIAL ((VdpVideoMixerFeature)1)
3796 
3804 #define VDP_VIDEO_MIXER_FEATURE_INVERSE_TELECINE ((VdpVideoMixerFeature)2)
3805 
3812 #define VDP_VIDEO_MIXER_FEATURE_NOISE_REDUCTION ((VdpVideoMixerFeature)3)
3813 
3820 #define VDP_VIDEO_MIXER_FEATURE_SHARPNESS ((VdpVideoMixerFeature)4)
3821 
3833 #define VDP_VIDEO_MIXER_FEATURE_LUMA_KEY ((VdpVideoMixerFeature)5)
3834 
3855 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1 ((VdpVideoMixerFeature)11)
3856 
3862 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L2 ((VdpVideoMixerFeature)12)
3863 
3869 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L3 ((VdpVideoMixerFeature)13)
3870 
3876 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L4 ((VdpVideoMixerFeature)14)
3877 
3883 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L5 ((VdpVideoMixerFeature)15)
3884 
3890 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L6 ((VdpVideoMixerFeature)16)
3891 
3897 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L7 ((VdpVideoMixerFeature)17)
3898 
3904 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L8 ((VdpVideoMixerFeature)18)
3905 
3911 #define VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L9 ((VdpVideoMixerFeature)19)
3912 
3925 typedef uint32_t VdpVideoMixerParameter;
3926 
3939 #define VDP_VIDEO_MIXER_PARAMETER_VIDEO_SURFACE_WIDTH ((VdpVideoMixerParameter)0)
3940 
3952 #define VDP_VIDEO_MIXER_PARAMETER_VIDEO_SURFACE_HEIGHT ((VdpVideoMixerParameter)1)
3953 
3966 #define VDP_VIDEO_MIXER_PARAMETER_CHROMA_TYPE ((VdpVideoMixerParameter)2)
3967 
3985 #define VDP_VIDEO_MIXER_PARAMETER_LAYERS ((VdpVideoMixerParameter)3)
3986 
3999 typedef uint32_t VdpVideoMixerAttribute;
4000 
4014 #define VDP_VIDEO_MIXER_ATTRIBUTE_BACKGROUND_COLOR ((VdpVideoMixerAttribute)0)
4015 
4042 #define VDP_VIDEO_MIXER_ATTRIBUTE_CSC_MATRIX ((VdpVideoMixerAttribute)1)
4043 
4055 #define VDP_VIDEO_MIXER_ATTRIBUTE_NOISE_REDUCTION_LEVEL ((VdpVideoMixerAttribute)2)
4056 
4071 #define VDP_VIDEO_MIXER_ATTRIBUTE_SHARPNESS_LEVEL ((VdpVideoMixerAttribute)3)
4072 
4083 #define VDP_VIDEO_MIXER_ATTRIBUTE_LUMA_KEY_MIN_LUMA ((VdpVideoMixerAttribute)4)
4084 
4095 #define VDP_VIDEO_MIXER_ATTRIBUTE_LUMA_KEY_MAX_LUMA ((VdpVideoMixerAttribute)5)
4096 
4110 #define VDP_VIDEO_MIXER_ATTRIBUTE_SKIP_CHROMA_DEINTERLACE ((VdpVideoMixerAttribute)6)
4111 
4122  VdpDevice device,
4123  VdpVideoMixerFeature feature,
4124  /* output parameters follow */
4125  VdpBool * is_supported
4126 );
4127 
4139  VdpDevice device,
4140  VdpVideoMixerParameter parameter,
4141  /* output parameters follow */
4142  VdpBool * is_supported
4143 );
4144 
4155  VdpDevice device,
4156  VdpVideoMixerAttribute attribute,
4157  /* output parameters follow */
4158  VdpBool * is_supported
4159 );
4160 
4172  VdpDevice device,
4173  VdpVideoMixerParameter parameter,
4174  /* output parameters follow */
4175  void * min_value,
4176  void * max_value
4177 );
4178 
4190  VdpDevice device,
4191  VdpVideoMixerAttribute attribute,
4192  /* output parameters follow */
4193  void * min_value,
4194  void * max_value
4195 );
4196 
4200 typedef uint32_t VdpVideoMixer;
4201 
4222 typedef VdpStatus VdpVideoMixerCreate(
4223  VdpDevice device,
4224  // The set of features to request
4225  uint32_t feature_count,
4226  VdpVideoMixerFeature const * features,
4227  // The parameters used during creation
4228  uint32_t parameter_count,
4229  VdpVideoMixerParameter const * parameters,
4230  void const * const * parameter_values,
4231  /* output parameters follow */
4232  VdpVideoMixer * mixer
4233 );
4234 
4246  VdpVideoMixer mixer,
4247  uint32_t feature_count,
4248  VdpVideoMixerFeature const * features,
4249  VdpBool const * feature_enables
4250 );
4251 
4265  VdpVideoMixer mixer,
4266  uint32_t attribute_count,
4267  VdpVideoMixerAttribute const * attributes,
4268  void const * const * attribute_values
4269 );
4270 
4283  VdpVideoMixer mixer,
4284  uint32_t feature_count,
4285  VdpVideoMixerFeature const * features,
4286  /* output parameters follow */
4287  VdpBool * feature_supports
4288 );
4289 
4300  VdpVideoMixer mixer,
4301  uint32_t feature_count,
4302  VdpVideoMixerFeature const * features,
4303  /* output parameters follow */
4304  VdpBool * feature_enables
4305 );
4306 
4320  VdpVideoMixer mixer,
4321  uint32_t parameter_count,
4322  VdpVideoMixerParameter const * parameters,
4323  /* output parameters follow */
4324  void * const * parameter_values
4325 );
4326 
4340  VdpVideoMixer mixer,
4341  uint32_t attribute_count,
4342  VdpVideoMixerAttribute const * attributes,
4343  /* output parameters follow */
4344  void * const * attribute_values
4345 );
4346 
4352 typedef VdpStatus VdpVideoMixerDestroy(
4353  VdpVideoMixer mixer
4354 );
4355 
4361 typedef enum {
4376 
4377 #define VDP_LAYER_VERSION 0
4378 
4383 typedef struct {
4387  uint32_t struct_version;
4391  VdpOutputSurface source_surface;
4406 } VdpLayer;
4407 
4474 typedef VdpStatus VdpVideoMixerRender(
4475  VdpVideoMixer mixer,
4476  VdpOutputSurface background_surface,
4477  VdpRect const * background_source_rect,
4478  VdpVideoMixerPictureStructure current_picture_structure,
4479  uint32_t video_surface_past_count,
4480  VdpVideoSurface const * video_surface_past,
4481  VdpVideoSurface video_surface_current,
4482  uint32_t video_surface_future_count,
4483  VdpVideoSurface const * video_surface_future,
4484  VdpRect const * video_source_rect,
4485  VdpOutputSurface destination_surface,
4486  VdpRect const * destination_rect,
4487  VdpRect const * destination_video_rect,
4488  uint32_t layer_count,
4489  VdpLayer const * layers
4490 );
4491 
4542 typedef uint64_t VdpTime;
4543 
4553 
4560  VdpPresentationQueueTarget presentation_queue_target
4561 );
4562 
4567 typedef uint32_t VdpPresentationQueue;
4568 
4580 typedef VdpStatus VdpPresentationQueueCreate(
4581  VdpDevice device,
4582  VdpPresentationQueueTarget presentation_queue_target,
4583  /* output parameters follow */
4584  VdpPresentationQueue * presentation_queue
4585 );
4586 
4593  VdpPresentationQueue presentation_queue
4594 );
4595 
4606  VdpPresentationQueue presentation_queue,
4607  VdpColor * const background_color
4608 );
4609 
4616  VdpPresentationQueue presentation_queue,
4617  VdpColor * background_color
4618 );
4619 
4628  VdpPresentationQueue presentation_queue,
4629  /* output parameters follow */
4630  VdpTime * current_time
4631 );
4632 
4674  VdpPresentationQueue presentation_queue,
4675  VdpOutputSurface surface,
4676  uint32_t clip_width,
4677  uint32_t clip_height,
4678  VdpTime earliest_presentation_time
4679 );
4680 
4697  VdpPresentationQueue presentation_queue,
4698  VdpOutputSurface surface,
4699  /* output parameters follow */
4700  VdpTime * first_presentation_time
4701 );
4702 
4707 typedef enum {
4715 
4728  VdpPresentationQueue presentation_queue,
4729  VdpOutputSurface surface,
4730  /* output parameters follow */
4731  VdpPresentationQueueStatus * status,
4732  VdpTime * first_presentation_time
4733 );
4734 
4790  VdpDevice device,
4791  void * context
4792 );
4793 
4805  VdpDevice device,
4806  VdpPreemptionCallback callback,
4807  void * context
4808 );
4809 
4827 typedef uint32_t VdpFuncId;
4828 
4830 #define VDP_FUNC_ID_GET_ERROR_STRING ((VdpFuncId)0)
4831 
4832 #define VDP_FUNC_ID_GET_PROC_ADDRESS ((VdpFuncId)1)
4833 
4834 #define VDP_FUNC_ID_GET_API_VERSION ((VdpFuncId)2)
4835 
4836 #define VDP_FUNC_ID_GET_INFORMATION_STRING ((VdpFuncId)4)
4837 
4838 #define VDP_FUNC_ID_DEVICE_DESTROY ((VdpFuncId)5)
4839 
4840 #define VDP_FUNC_ID_GENERATE_CSC_MATRIX ((VdpFuncId)6)
4841 
4842 #define VDP_FUNC_ID_VIDEO_SURFACE_QUERY_CAPABILITIES ((VdpFuncId)7)
4843 
4844 #define VDP_FUNC_ID_VIDEO_SURFACE_QUERY_GET_PUT_BITS_Y_CB_CR_CAPABILITIES ((VdpFuncId)8)
4845 
4846 #define VDP_FUNC_ID_VIDEO_SURFACE_CREATE ((VdpFuncId)9)
4847 
4848 #define VDP_FUNC_ID_VIDEO_SURFACE_DESTROY ((VdpFuncId)10)
4849 
4850 #define VDP_FUNC_ID_VIDEO_SURFACE_GET_PARAMETERS ((VdpFuncId)11)
4851 
4852 #define VDP_FUNC_ID_VIDEO_SURFACE_GET_BITS_Y_CB_CR ((VdpFuncId)12)
4853 
4854 #define VDP_FUNC_ID_VIDEO_SURFACE_PUT_BITS_Y_CB_CR ((VdpFuncId)13)
4855 
4856 #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_CAPABILITIES ((VdpFuncId)14)
4857 
4858 #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_GET_PUT_BITS_NATIVE_CAPABILITIES ((VdpFuncId)15)
4859 
4860 #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_PUT_BITS_INDEXED_CAPABILITIES ((VdpFuncId)16)
4861 
4862 #define VDP_FUNC_ID_OUTPUT_SURFACE_QUERY_PUT_BITS_Y_CB_CR_CAPABILITIES ((VdpFuncId)17)
4863 
4864 #define VDP_FUNC_ID_OUTPUT_SURFACE_CREATE ((VdpFuncId)18)
4865 
4866 #define VDP_FUNC_ID_OUTPUT_SURFACE_DESTROY ((VdpFuncId)19)
4867 
4868 #define VDP_FUNC_ID_OUTPUT_SURFACE_GET_PARAMETERS ((VdpFuncId)20)
4869 
4870 #define VDP_FUNC_ID_OUTPUT_SURFACE_GET_BITS_NATIVE ((VdpFuncId)21)
4871 
4872 #define VDP_FUNC_ID_OUTPUT_SURFACE_PUT_BITS_NATIVE ((VdpFuncId)22)
4873 
4874 #define VDP_FUNC_ID_OUTPUT_SURFACE_PUT_BITS_INDEXED ((VdpFuncId)23)
4875 
4876 #define VDP_FUNC_ID_OUTPUT_SURFACE_PUT_BITS_Y_CB_CR ((VdpFuncId)24)
4877 
4878 #define VDP_FUNC_ID_BITMAP_SURFACE_QUERY_CAPABILITIES ((VdpFuncId)25)
4879 
4880 #define VDP_FUNC_ID_BITMAP_SURFACE_CREATE ((VdpFuncId)26)
4881 
4882 #define VDP_FUNC_ID_BITMAP_SURFACE_DESTROY ((VdpFuncId)27)
4883 
4884 #define VDP_FUNC_ID_BITMAP_SURFACE_GET_PARAMETERS ((VdpFuncId)28)
4885 
4886 #define VDP_FUNC_ID_BITMAP_SURFACE_PUT_BITS_NATIVE ((VdpFuncId)29)
4887 
4888 #define VDP_FUNC_ID_OUTPUT_SURFACE_RENDER_OUTPUT_SURFACE ((VdpFuncId)33)
4889 
4890 #define VDP_FUNC_ID_OUTPUT_SURFACE_RENDER_BITMAP_SURFACE ((VdpFuncId)34)
4891 
4892 #define VDP_FUNC_ID_OUTPUT_SURFACE_RENDER_VIDEO_SURFACE_LUMA ((VdpFuncId)35)
4893 
4894 #define VDP_FUNC_ID_DECODER_QUERY_CAPABILITIES ((VdpFuncId)36)
4895 
4896 #define VDP_FUNC_ID_DECODER_CREATE ((VdpFuncId)37)
4897 
4898 #define VDP_FUNC_ID_DECODER_DESTROY ((VdpFuncId)38)
4899 
4900 #define VDP_FUNC_ID_DECODER_GET_PARAMETERS ((VdpFuncId)39)
4901 
4902 #define VDP_FUNC_ID_DECODER_RENDER ((VdpFuncId)40)
4903 
4904 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_FEATURE_SUPPORT ((VdpFuncId)41)
4905 
4906 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_PARAMETER_SUPPORT ((VdpFuncId)42)
4907 
4908 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_ATTRIBUTE_SUPPORT ((VdpFuncId)43)
4909 
4910 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_PARAMETER_VALUE_RANGE ((VdpFuncId)44)
4911 
4912 #define VDP_FUNC_ID_VIDEO_MIXER_QUERY_ATTRIBUTE_VALUE_RANGE ((VdpFuncId)45)
4913 
4914 #define VDP_FUNC_ID_VIDEO_MIXER_CREATE ((VdpFuncId)46)
4915 
4916 #define VDP_FUNC_ID_VIDEO_MIXER_SET_FEATURE_ENABLES ((VdpFuncId)47)
4917 
4918 #define VDP_FUNC_ID_VIDEO_MIXER_SET_ATTRIBUTE_VALUES ((VdpFuncId)48)
4919 
4920 #define VDP_FUNC_ID_VIDEO_MIXER_GET_FEATURE_SUPPORT ((VdpFuncId)49)
4921 
4922 #define VDP_FUNC_ID_VIDEO_MIXER_GET_FEATURE_ENABLES ((VdpFuncId)50)
4923 
4924 #define VDP_FUNC_ID_VIDEO_MIXER_GET_PARAMETER_VALUES ((VdpFuncId)51)
4925 
4926 #define VDP_FUNC_ID_VIDEO_MIXER_GET_ATTRIBUTE_VALUES ((VdpFuncId)52)
4927 
4928 #define VDP_FUNC_ID_VIDEO_MIXER_DESTROY ((VdpFuncId)53)
4929 
4930 #define VDP_FUNC_ID_VIDEO_MIXER_RENDER ((VdpFuncId)54)
4931 
4932 #define VDP_FUNC_ID_PRESENTATION_QUEUE_TARGET_DESTROY ((VdpFuncId)55)
4933 
4934 #define VDP_FUNC_ID_PRESENTATION_QUEUE_CREATE ((VdpFuncId)56)
4935 
4936 #define VDP_FUNC_ID_PRESENTATION_QUEUE_DESTROY ((VdpFuncId)57)
4937 
4938 #define VDP_FUNC_ID_PRESENTATION_QUEUE_SET_BACKGROUND_COLOR ((VdpFuncId)58)
4939 
4940 #define VDP_FUNC_ID_PRESENTATION_QUEUE_GET_BACKGROUND_COLOR ((VdpFuncId)59)
4941 
4942 #define VDP_FUNC_ID_PRESENTATION_QUEUE_GET_TIME ((VdpFuncId)62)
4943 
4944 #define VDP_FUNC_ID_PRESENTATION_QUEUE_DISPLAY ((VdpFuncId)63)
4945 
4946 #define VDP_FUNC_ID_PRESENTATION_QUEUE_BLOCK_UNTIL_SURFACE_IDLE ((VdpFuncId)64)
4947 
4948 #define VDP_FUNC_ID_PRESENTATION_QUEUE_QUERY_SURFACE_STATUS ((VdpFuncId)65)
4949 
4950 #define VDP_FUNC_ID_PREEMPTION_CALLBACK_REGISTER ((VdpFuncId)66)
4951 
4952 #define VDP_FUNC_ID_DECODER_QUERY_CAPABILITY ((VdpFuncId)67)
4953 
4954 #define VDP_FUNC_ID_BASE_WINSYS 0x1000
4955 
4965 typedef VdpStatus VdpGetProcAddress(
4966  VdpDevice device,
4967  VdpFuncId function_id,
4968  /* output parameters follow */
4969  void * * function_pointer
4970 );
4971 
4982 #ifdef __cplusplus
4983 }
4984 #endif
4985 
4986 #endif
4987 
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:1832
Definition: vdpau.h:1400
float saturation
Definition: vdpau.h:1618
VdpPictureInfoMPEG4Part2 VdpPictureInfoDivX4
Picture parameter information for a DivX 4 picture.
Definition: vdpau.h:3313
VdpOutputSurfaceRenderBlendEquation
The blending equations.
Definition: vdpau.h:2354
Definition: vdpau.h:2823
VdpVideoSurface goldenReference
Definition: vdpau.h:3330
uint32_t VdpYCbCrFormat
The set of all known YCbCr surface formats.
Definition: vdpau.h:963
Definition: vdpau.h:1339
uint32_t bitstream_bytes
Definition: vdpau.h:2960
unsigned char modeRefLfEnabled
Definition: vdpau.h:3354
unsigned short allowHighPrecisionMv
Definition: vdpau.h:3344
uint8_t pcm_sample_bit_depth_luma_minus1
Definition: vdpau.h:3446
uint8_t quarter_sample
Definition: vdpau.h:3296
uint8_t frame_pred_frame_dct
Definition: vdpau.h:3004
uint8_t extended_dmv
Definition: vdpau.h:3210
VdpStatus VdpGetProcAddress(VdpDevice device, VdpFuncId function_id, void **function_pointer)
Retrieve a VDPAU function pointer.
Definition: vdpau.h:4965
VdpStatus VdpDecoderGetParameters(VdpDecoder decoder, VdpDecoderProfile *profile, uint32_t *width, uint32_t *height)
Retrieve the parameters used to create a VdpDecoder.
Definition: vdpau.h:2938
uint8_t pquant
Definition: vdpau.h:3261
Definition: vdpau.h:1282
Application data buffer containing compressed video data.
Definition: vdpau.h:2952
uint8_t NumPocStCurrAfter
Definition: vdpau.h:3582
VdpOutputSurfaceRenderBlendFactor
The blending equation factors.
Definition: vdpau.h:2332
float hue
Definition: vdpau.h:1623
VdpBool is_long_term
Definition: vdpau.h:3037
uint32_t VdpIndexedFormat
The set of all known indexed surface formats.
Definition: vdpau.h:1188
uint8_t q_scale_type
Definition: vdpau.h:3008
uint8_t sps_temporal_mvp_enabled_flag
Definition: vdpau.h:3462
uint8_t strong_intra_smoothing_enabled_flag
Definition: vdpau.h:3463
uint8_t intraSmoothingDisabledFlag
Definition: vdpau.h:3621
uint32_t VdpRGBAFormat
The set of all known RGB surface formats.
Definition: vdpau.h:1119
VdpStatus VdpGetApiVersion(uint32_t *api_version)
Retrieve the VDPAU version implemented by the backend.
Definition: vdpau.h:1492
unsigned char bitDepthMinus8Luma
Definition: vdpau.h:3349
uint8_t num_tile_rows_minus1
Definition: vdpau.h:3494
uint8_t range_mapy
Definition: vdpau.h:3221
VdpVideoSurface altReference
Definition: vdpau.h:3331
Definition: vdpau.h:4709
void const * bitstream
Definition: vdpau.h:2958
VdpStatus VdpPresentationQueueBlockUntilSurfaceIdle(VdpPresentationQueue presentation_queue, VdpOutputSurface surface, VdpTime *first_presentation_time)
Wait for a surface to finish being displayed.
Definition: vdpau.h:4696
int qpYAc
Definition: vdpau.h:3369
uint8_t bit_depth_chroma_minus8
Definition: vdpau.h:3411
uint8_t frame_mbs_only_flag
Definition: vdpau.h:3100
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:2093
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:4282
uint8_t postprocflag
Definition: vdpau.h:3188
uint32_t struct_version
Definition: vdpau.h:2387
VdpPictureInfoMPEG4Part2 VdpPictureInfoDivX5
Picture parameter information for a DivX 5 picture.
Definition: vdpau.h:3321
uint8_t deblocking_filter_override_enabled_flag
Definition: vdpau.h:3512
uint8_t max_transform_hierarchy_depth_inter
Definition: vdpau.h:3420
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:1700
uint8_t output_flag_present_flag
Definition: vdpau.h:3471
uint8_t constrained_intra_pred_flag
Definition: vdpau.h:3097
Definition: vdpau.h:1343
uint8_t long_term_ref_pics_present_flag
Definition: vdpau.h:3458
uint8_t transformSkipRotationEnableFlag
Definition: vdpau.h:3611
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:2125
VdpRect const * source_rect
Definition: vdpau.h:4396
uint32_t NumShortTermPictureSliceHeaderBits
Definition: vdpau.h:3553
uint32_t VdpVideoMixer
An opaque handle representing a VdpVideoMixer object.
Definition: vdpau.h:4200
float contrast
Definition: vdpau.h:1613
uint32_t VdpOutputSurface
An opaque handle representing a VdpOutputSurface object.
Definition: vdpau.h:1999
uint8_t pps_slice_chroma_qp_offsets_present_flag
Definition: vdpau.h:3485
uint8_t transform_skip_enabled_flag
Definition: vdpau.h:3479
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:1720
unsigned int mcompFilterType
Definition: vdpau.h:3376
VdpStatus VdpVideoMixerSetAttributeValues(VdpVideoMixer mixer, uint32_t attribute_count, VdpVideoMixerAttribute const *attributes, void const *const *attribute_values)
Set attribute values.
Definition: vdpau.h:4264
uint8_t pps_range_extension_flag
Definition: vdpau.h:3632
uint8_t log2_parallel_merge_level_minus2
Definition: vdpau.h:3523
uint32_t y1
Definition: vdpau.h:1271
Definition: vdpau.h:1335
Definition: vdpau.h:1347
uint8_t num_ref_idx_l1_default_active_minus1
Definition: vdpau.h:3476
VdpVideoSurface forward_reference
Definition: vdpau.h:3276
unsigned char colorSpace
Definition: vdpau.h:3333
VdpOutputSurface source_surface
Definition: vdpau.h:4391
Definition: vdpau.h:1356
uint8_t tiles_enabled_flag
Definition: vdpau.h:3489
uint32_t VdpPresentationQueue
An opaque handle representing a presentation queue object.
Definition: vdpau.h:4567
Definition: vdpau.h:2818
int8_t pps_tc_offset_div2
Definition: vdpau.h:3521
unsigned int height
Definition: vdpau.h:3326
uint8_t dependent_slice_segments_enabled_flag
Definition: vdpau.h:3470
uint8_t pcm_loop_filter_disabled_flag
Definition: vdpau.h:3454
Picture parameter information for an H.265/HEVC picture.
Definition: vdpau.h:3400
VdpBool bottom_is_reference
Definition: vdpau.h:3047
VdpStatus VdpPresentationQueueGetBackgroundColor(VdpPresentationQueue presentation_queue, VdpColor *background_color)
Retrieve the current background color setting.
Definition: vdpau.h:4615
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:1945
unsigned short intraOnly
Definition: vdpau.h:3343
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:2067
VdpStatus VdpOutputSurfaceGetParameters(VdpOutputSurface surface, VdpRGBAFormat *rgba_format, uint32_t *width, uint32_t *height)
Retrieve the parameters used to create a VdpOutputSurface.
Definition: vdpau.h:2040
VdpVideoSurfaceSupportedPictureStructure
Definition: vdpau.h:2817
uint8_t direct_8x8_inference_flag
Definition: vdpau.h:3111
uint32_t pic_height_in_luma_samples
Definition: vdpau.h:3409
uint32_t slice_count
Definition: vdpau.h:2995
uint32_t VdpBitmapSurface
An opaque handle representing a VdpBitmapSurface object.
Definition: vdpau.h:2232
unsigned int resetFrameContext
Definition: vdpau.h:3375
uint32_t struct_version
Definition: vdpau.h:1603
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:2219
VdpVideoMixerPictureStructure
The structure of the picture present in a VdpVideoSurface.
Definition: vdpau.h:4361
uint8_t deblockEnable
Definition: vdpau.h:3255
uint8_t cabac_init_present_flag
Definition: vdpau.h:3474
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:4222
VdpStatus VdpBitmapSurfaceDestroy(VdpBitmapSurface surface)
Destroy a VdpBitmapSurface.
Definition: vdpau.h:2266
unsigned short frameParallelDecoding
Definition: vdpau.h:3340
uint32_t NumDeltaPocsOfRefRpsIdx
Definition: vdpau.h:3545
uint8_t num_long_term_ref_pics_sps
Definition: vdpau.h:3461
uint8_t sps_range_extension_flag
Definition: vdpau.h:3609
Definition: vdpau.h:1303
VdpOutputSurfaceRenderBlendFactor blend_factor_source_alpha
Definition: vdpau.h:2390
uint8_t NumPocLtCurr
Definition: vdpau.h:3585
Definition: vdpau.h:2826
uint8_t vop_fcode_backward
Definition: vdpau.h:3292
uint8_t diffCuChromaQpAdjustmentDepth
Definition: vdpau.h:3640
int8_t second_chroma_qp_index_offset
Definition: vdpau.h:3103
uint8_t num_short_term_ref_pic_sets
Definition: vdpau.h:3457
VdpStatus VdpVideoMixerQueryFeatureSupport(VdpDevice device, VdpVideoMixerFeature feature, VdpBool *is_supported)
Query the implementation&#39;s support for a specific feature.
Definition: vdpau.h:4121
VdpStatus VdpOutputSurfaceCreate(VdpDevice device, VdpRGBAFormat rgba_format, uint32_t width, uint32_t height, VdpOutputSurface *surface)
Create a VdpOutputSurface.
Definition: vdpau.h:2013
uint8_t separate_colour_plane_flag
Definition: vdpau.h:3407
uint8_t interlaced
Definition: vdpau.h:3294
uint32_t x0
Definition: vdpau.h:1265
VdpStatus VdpGetInformationString(char const **information_string)
Retrieve an implementation-specific string description of the implementation. This typically includes...
Definition: vdpau.h:1514
VdpStatus VdpBitmapSurfaceCreate(VdpDevice device, VdpRGBAFormat rgba_format, uint32_t width, uint32_t height, VdpBool frequently_accessed, VdpBitmapSurface *surface)
Create a VdpBitmapSurface.
Definition: vdpau.h:2251
uint8_t sign_data_hiding_enabled_flag
Definition: vdpau.h:3473
uint32_t VdpColorTableFormat
The set of all known color table formats, for use with VdpOutputSurfacePutBitsIndexed.
Definition: vdpau.h:1898
uint8_t log2_diff_max_min_transform_block_size
Definition: vdpau.h:3419
uint8_t short_video_header
Definition: vdpau.h:3297
uint32_t VdpVideoMixerParameter
A VdpVideoMixer creation parameter.
Definition: vdpau.h:3925
uint32_t VdpDecoderProfile
The set of all known compressed video formats, and associated profiles, that may be decoded...
Definition: vdpau.h:2613
Definition: vdpau.h:1331
uint8_t pic_order_cnt_type
Definition: vdpau.h:3108
VdpStatus VdpDeviceDestroy(VdpDevice device)
Destroy a VdpDevice.
Definition: vdpau.h:1545
uint8_t bit_depth_luma_minus8
Definition: vdpau.h:3410
uint8_t deblocking_filter_control_present_flag
Definition: vdpau.h:3509
VdpStatus VdpVideoMixerSetFeatureEnables(VdpVideoMixer mixer, uint32_t feature_count, VdpVideoMixerFeature const *features, VdpBool const *feature_enables)
Enable or disable features.
Definition: vdpau.h:4245
uint8_t pic_order_present_flag
Definition: vdpau.h:3113
uint8_t amp_enabled_flag
Definition: vdpau.h:3442
uint8_t implicitRdpcmEnableFlag
Definition: vdpau.h:3615
VdpStatus VdpDecoderCreate(VdpDevice device, VdpDecoderProfile profile, uint32_t width, uint32_t height, uint32_t max_references, VdpDecoder *decoder)
Create a VdpDecoder.
Definition: vdpau.h:2907
unsigned int uncompressedHeaderSize
Definition: vdpau.h:3379
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:1987
VdpStatus VdpVideoMixerDestroy(VdpVideoMixer mixer)
Destroy a VdpVideoMixer.
Definition: vdpau.h:4352
VdpColor blend_constant
Definition: vdpau.h:2394
uint32_t slice_count
Definition: vdpau.h:3177
uint8_t num_ref_idx_l0_active_minus1
Definition: vdpau.h:3105
uint8_t transform_8x8_mode_flag
Definition: vdpau.h:3101
uint8_t interlace
Definition: vdpau.h:3192
uint8_t log2_min_pcm_luma_coding_block_size_minus3
Definition: vdpau.h:3450
uint32_t VdpDevice
An opaque handle representing a VdpDevice object.
Definition: vdpau.h:1538
VdpBool is_reference
Definition: vdpau.h:3086
uint8_t range_mapuv_flag
Definition: vdpau.h:3223
uint8_t alternate_vertical_scan_flag
Definition: vdpau.h:3300
VdpVideoSurface surface
Definition: vdpau.h:3035
uint8_t constrained_intra_pred_flag
Definition: vdpau.h:3478
Definition: vdpau.h:2819
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:3683
uint8_t cabacBypassAlignmentEnableFlag
Definition: vdpau.h:3627
uint8_t vop_fcode_forward
Definition: vdpau.h:3291
unsigned int width
Definition: vdpau.h:3325
int qpChAc
Definition: vdpau.h:3372
unsigned short refreshEntropyProbs
Definition: vdpau.h:3345
uint8_t fastuvmc
Definition: vdpau.h:3218
uint8_t resync_marker_disable
Definition: vdpau.h:3293
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:4789
float green
Definition: vdpau.h:1284
uint8_t NumPocStCurrBefore
Definition: vdpau.h:3579
unsigned char loopFilterLevel
Definition: vdpau.h:3351
VdpVideoSurface forward_reference
Definition: vdpau.h:3169
VdpStatus VdpPresentationQueueCreate(VdpDevice device, VdpPresentationQueueTarget presentation_queue_target, VdpPresentationQueue *presentation_queue)
Create a VdpPresentationQueue.
Definition: vdpau.h:4580
uint8_t slice_segment_header_extension_present_flag
Definition: vdpau.h:3524
VdpStatus VdpVideoMixerGetFeatureEnables(VdpVideoMixer mixer, uint32_t feature_count, VdpVideoMixerFeature const *features, VdpBool *feature_enables)
Retrieve whether features are enabled.
Definition: vdpau.h:4299
uint8_t intra_vlc_format
Definition: vdpau.h:3006
VdpStatus VdpPresentationQueueGetTime(VdpPresentationQueue presentation_queue, VdpTime *current_time)
Retrieve the presentation queue&#39;s "current" time.
Definition: vdpau.h:4627
uint8_t log2_min_luma_coding_block_size_minus3
Definition: vdpau.h:3416
uint8_t num_ref_idx_l1_active_minus1
Definition: vdpau.h:3106
uint32_t NumLongTermPictureSliceHeaderBits
Definition: vdpau.h:3558
uint8_t transquant_bypass_enabled_flag
Definition: vdpau.h:3488
uint8_t entropy_coding_sync_enabled_flag
Definition: vdpau.h:3490
uint32_t y
Definition: vdpau.h:1250
uint8_t num_extra_slice_header_bits
Definition: vdpau.h:3472
uint8_t weighted_bipred_idc
Definition: vdpau.h:3099
VdpStatus VdpPreemptionCallbackRegister(VdpDevice device, VdpPreemptionCallback callback, void *context)
Configure the display preemption callback.
Definition: vdpau.h:4804
uint8_t pps_loop_filter_across_slices_enabled_flag
Definition: vdpau.h:3508
uint8_t full_pel_forward_vector
Definition: vdpau.h:3011
uint8_t range_mapuv
Definition: vdpau.h:3224
uint8_t quant_type
Definition: vdpau.h:3295
int8_t pps_cr_qp_offset
Definition: vdpau.h:3484
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:2160
A location within a surface.
Definition: vdpau.h:1246
unsigned short keyFrame
Definition: vdpau.h:3337
uint32_t x1
Definition: vdpau.h:1269
uint32_t NumPocTotalCurr
Definition: vdpau.h:3541
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:2281
uint8_t vop_coding_type
Definition: vdpau.h:3290
uint8_t max_transform_hierarchy_depth_intra
Definition: vdpau.h:3421
uint8_t chromaQpAdjustmentEnableFlag
Definition: vdpau.h:3638
VdpStatus VdpVideoMixerQueryAttributeSupport(VdpDevice device, VdpVideoMixerAttribute attribute, VdpBool *is_supported)
Query the implementation&#39;s support for a specific attribute.
Definition: vdpau.h:4154
void VdpPictureInfo
A generic "picture information" type.
Definition: vdpau.h:2973
uint8_t entropy_coding_mode_flag
Definition: vdpau.h:3112
uint8_t pcm_sample_bit_depth_chroma_minus1
Definition: vdpau.h:3448
Definition of an additional VdpOutputSurface layer in the composting model.
Definition: vdpau.h:4383
Definition: vdpau.h:1413
unsigned int compressedHeaderSize
Definition: vdpau.h:3380
uint8_t picture_type
Definition: vdpau.h:3179
unsigned short frameContextIdx
Definition: vdpau.h:3336
uint8_t log2_max_pic_order_cnt_lsb_minus4
Definition: vdpau.h:3412
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:4673
uint32_t x
Definition: vdpau.h:1248
VdpOutputSurfaceRenderBlendEquation blend_equation_alpha
Definition: vdpau.h:2393
Definition: vdpau.h:1327
VdpStatus VdpVideoSurfaceDestroy(VdpVideoSurface surface)
Destroy a VdpVideoSurface.
Definition: vdpau.h:1793
int8_t pic_init_qp_minus26
Definition: vdpau.h:3104
uint8_t alternate_scan
Definition: vdpau.h:3007
uint8_t weighted_bipred_flag
Definition: vdpau.h:3487
uint8_t qpprime_y_zero_transform_bypass_flag
Definition: vdpau.h:3148
uint8_t log2_max_frame_num_minus4
Definition: vdpau.h:3107
uint32_t VdpChromaType
The set of all chroma formats for VdpVideoSurfaces.
Definition: vdpau.h:839
Definition: vdpau.h:1369
float blue
Definition: vdpau.h:1285
VdpStatus VdpDecoderDestroy(VdpDecoder decoder)
Destroy a VdpDecoder.
Definition: vdpau.h:2922
Definition: vdpau.h:1320
uint8_t overlap
Definition: vdpau.h:3212
Picture parameter information for a VC1 picture.
Definition: vdpau.h:3164
uint8_t weighted_pred_flag
Definition: vdpau.h:3098
VdpStatus VdpVideoMixerGetAttributeValues(VdpVideoMixer mixer, uint32_t attribute_count, VdpVideoMixerAttribute const *attributes, void *const *attribute_values)
Retrieve current attribute values.
Definition: vdpau.h:4339
uint8_t diff_cu_qp_delta_depth
Definition: vdpau.h:3482
unsigned char segmentEnabled
Definition: vdpau.h:3358
Definition: vdpau.h:1313
uint8_t concealment_motion_vectors
Definition: vdpau.h:3005
Definition: vdpau.h:3323
Complete blending operation definition.
Definition: vdpau.h:2383
uint32_t VdpVideoMixerFeature
A VdpVideoMixer feature that must be requested at creation time to be used.
Definition: vdpau.h:3769
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:2583
Picture parameter information for an MPEG-4 Part 2 picture.
Definition: vdpau.h:3271
uint8_t crossComponentPredictionEnableFlag
Definition: vdpau.h:3636
uint8_t persistentRiceAdaptationEnableFlag
Definition: vdpau.h:3625
uint32_t VdpDecoder
An opaque handle representing a VdpDecoder object.
Definition: vdpau.h:2889
Definition: vdpau.h:1365
uint8_t finterpflag
Definition: vdpau.h:3196
Definition: vdpau.h:1390
uint8_t loop_filter_across_tiles_enabled_flag
Definition: vdpau.h:3507
uint8_t log2_max_pic_order_cnt_lsb_minus4
Definition: vdpau.h:3109
uint8_t cu_qp_delta_enabled_flag
Definition: vdpau.h:3480
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:4171
uint8_t rounding_control
Definition: vdpau.h:3299
uint32_t pic_width_in_luma_samples
Definition: vdpau.h:3408
int VdpBool
A boolean value, holding VDP_TRUE or VDP_FALSE.
Definition: vdpau.h:813
A rectangular region of a surface.
Definition: vdpau.h:1263
uint32_t VdpFuncId
A type suitable for VdpGetProcAddress&#39;s function_id parameter.
Definition: vdpau.h:4827
uint32_t VdpPresentationQueueTarget
An opaque handle representing the location where video will be presented.
Definition: vdpau.h:4552
uint8_t num_ref_frames
Definition: vdpau.h:3095
VdpStatus VdpPresentationQueueDestroy(VdpPresentationQueue presentation_queue)
Destroy a VdpPresentationQueue.
Definition: vdpau.h:4592
uint8_t multires
Definition: vdpau.h:3230
uint8_t sample_adaptive_offset_enabled_flag
Definition: vdpau.h:3443
uint8_t dquant
Definition: vdpau.h:3200
VdpPresentationQueueStatus
The status of a surface within a presentation queue.
Definition: vdpau.h:4707
uint8_t intra_dc_precision
Definition: vdpau.h:3003
uint8_t pps_deblocking_filter_disabled_flag
Definition: vdpau.h:3515
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:4189
int qpYDc
Definition: vdpau.h:3370
uint32_t struct_version
Definition: vdpau.h:2956
uint32_t struct_version
Definition: vdpau.h:4387
uint32_t slice_count
Definition: vdpau.h:3082
int8_t pps_cb_qp_offset
Definition: vdpau.h:3483
uint8_t refdist_flag
Definition: vdpau.h:3204
uint8_t sps_max_dec_pic_buffering_minus1
Definition: vdpau.h:3415
uint8_t uniform_spacing_flag
Definition: vdpau.h:3496
uint8_t quantizer
Definition: vdpau.h:3206
VdpStatus VdpDecoderQueryProfileCapability(VdpDevice device, VdpDecoderProfile profile, VdpDecoderCapability capability, void *capability_value)
Query the supported value of the requested capability, for the specified profile on the specified dev...
Definition: vdpau.h:2849
float VdpCSCMatrix[3][4]
Storage for a color space conversion matrix.
Definition: vdpau.h:1587
uint8_t IDRPicFlag
Definition: vdpau.h:3534
uint8_t pulldown
Definition: vdpau.h:3190
Definition: vdpau.h:4711
uint8_t transformSkipContextEnableFlag
Definition: vdpau.h:3613
uint8_t rangered
Definition: vdpau.h:3242
uint8_t RAPPicFlag
Definition: vdpau.h:3537
uint8_t deblocking_filter_control_present_flag
Definition: vdpau.h:3114
uint8_t vstransform
Definition: vdpau.h:3214
uint8_t frame_coding_mode
Definition: vdpau.h:3181
unsigned short subSamplingX
Definition: vdpau.h:3341
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:2309
Definition: vdpau.h:1432
uint16_t vop_time_increment_resolution
Definition: vdpau.h:3289
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:4319
VdpPictureInfoHEVC444 VdpPictureInfoHEVCRangeExt
Picture parameter information for HEVC FormatRangeExtensions picture.
Definition: vdpau.h:3663
uint8_t top_field_first
Definition: vdpau.h:3009
uint8_t maxbframes
Definition: vdpau.h:3247
VdpVideoSurface backward_reference
Definition: vdpau.h:3281
VdpOutputSurfaceRenderBlendFactor blend_factor_source_color
Definition: vdpau.h:2388
uint8_t weighted_pred_flag
Definition: vdpau.h:3486
uint16_t frame_idx
Definition: vdpau.h:3055
unsigned char log2TileRows
Definition: vdpau.h:3356
Picture parameter information for an MPEG 1 or MPEG 2 picture.
Definition: vdpau.h:2983
VdpPictureInfoH264 pictureInfo
Definition: vdpau.h:3138
VdpPictureInfoHEVC pictureInfo
Definition: vdpau.h:3606
Definition: vdpau.h:1307
uint32_t VdpColorStandard
YCbCr color space specification.
Definition: vdpau.h:1632
Procamp operation parameterization data.
Definition: vdpau.h:1599
float alpha
Definition: vdpau.h:1286
VdpStatus VdpPresentationQueueQuerySurfaceStatus(VdpPresentationQueue presentation_queue, VdpOutputSurface surface, VdpPresentationQueueStatus *status, VdpTime *first_presentation_time)
Poll the current queue status of a surface.
Definition: vdpau.h:4727
unsigned char segmentFeatureMode
Definition: vdpau.h:3361
Definition: vdpau.h:2825
uint8_t full_pel_backward_vector
Definition: vdpau.h:3013
unsigned char bitDepthMinus8Chroma
Definition: vdpau.h:3350
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:2875
uint32_t VdpVideoMixerAttribute
An adjustable attribute of VdpVideoMixer operation.
Definition: vdpau.h:3999
uint8_t CurrRpsIdx
Definition: vdpau.h:3539
VdpVideoSurface forward_reference
Definition: vdpau.h:2988
uint8_t chromaQpAdjustmentTableSize
Definition: vdpau.h:3642
uint8_t log2SaoOffsetScaleLuma
Definition: vdpau.h:3645
VdpVideoSurface backward_reference
Definition: vdpau.h:3174
uint8_t top_field_first
Definition: vdpau.h:3301
VdpRect const * destination_rect
Definition: vdpau.h:4405
int8_t chroma_qp_index_offset
Definition: vdpau.h:3102
VdpOutputSurfaceRenderBlendFactor blend_factor_destination_color
Definition: vdpau.h:2389
uint8_t redundant_pic_cnt_present_flag
Definition: vdpau.h:3115
int8_t init_qp_minus26
Definition: vdpau.h:3477
Definition: vdpau.h:1428
VdpStatus VdpGenerateCSCMatrix(VdpProcamp *procamp, VdpColorStandard standard, VdpCSCMatrix *csc_matrix)
Generate a color space conversion matrix.
Definition: vdpau.h:1649
VdpStatus
The set of all possible error codes.
Definition: vdpau.h:1301
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:2503
uint8_t field_pic_flag
Definition: vdpau.h:3093
VdpStatus VdpVideoMixerQueryParameterSupport(VdpDevice device, VdpVideoMixerParameter parameter, VdpBool *is_supported)
Query the implementation&#39;s support for a specific parameter.
Definition: vdpau.h:4138
Information about an H.264 reference frame.
Definition: vdpau.h:3030
uint8_t log2MaxTransformSkipSize
Definition: vdpau.h:3634
uint8_t bottom_field_flag
Definition: vdpau.h:3094
Picture parameter information for an H.264 picture.
Definition: vdpau.h:3080
VdpDecoderCapability
Definition: vdpau.h:2822
uint64_t VdpTime
The representation of a point in time.
Definition: vdpau.h:4542
uint8_t extended_mv
Definition: vdpau.h:3208
unsigned char segmentMapUpdate
Definition: vdpau.h:3359
uint16_t frame_num
Definition: vdpau.h:3092
uint8_t pcm_enabled_flag
Definition: vdpau.h:3444
uint8_t log2SaoOffsetScaleChroma
Definition: vdpau.h:3647
float brightness
Definition: vdpau.h:1608
uint8_t chroma_format_idc
Definition: vdpau.h:3405
VdpBool top_is_reference
Definition: vdpau.h:3042
unsigned char log2TileColumns
Definition: vdpau.h:3355
VdpVideoSurface backward_reference
Definition: vdpau.h:2993
uint8_t log2_diff_max_min_luma_coding_block_size
Definition: vdpau.h:3417
Picture parameter information for an H.264 Hi444PP picture.
Definition: vdpau.h:3136
uint32_t y0
Definition: vdpau.h:1267
uint8_t log2_diff_max_min_pcm_luma_coding_block_size
Definition: vdpau.h:3452
VdpStatus VdpVideoSurfaceGetParameters(VdpVideoSurface surface, VdpChromaType *chroma_type, uint32_t *width, uint32_t *height)
Retrieve the parameters used to create a VdpVideoSurface.
Definition: vdpau.h:1806
unsigned char segmentMapTemporalUpdate
Definition: vdpau.h:3360
unsigned char loopFilterSharpness
Definition: vdpau.h:3352
Picture parameter information for an HEVC 444 picture.
Definition: vdpau.h:3604
uint32_t VdpVideoSurface
An opaque handle representing a VdpVideoSurface object.
Definition: vdpau.h:1732
uint8_t num_ref_idx_l0_default_active_minus1
Definition: vdpau.h:3475
Definition: vdpau.h:1407
unsigned short errorResilient
Definition: vdpau.h:3339
char const * VdpGetErrorString(VdpStatus status)
Retrieve a string describing an error code.
Definition: vdpau.h:1444
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:1926
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:4474
Definition: vdpau.h:2824
uint8_t psf
Definition: vdpau.h:3198
Definition: vdpau.h:1418
uint8_t syncmarker
Definition: vdpau.h:3235
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:1857
uint8_t delta_pic_order_always_zero_flag
Definition: vdpau.h:3110
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:1966
unsigned short profile
Definition: vdpau.h:3335
unsigned short showFrame
Definition: vdpau.h:3338
uint8_t tfcntrflag
Definition: vdpau.h:3194
int32_t CurrPicOrderCntVal
Definition: vdpau.h:3564
uint8_t log2_min_transform_block_size_minus2
Definition: vdpau.h:3418
Definition: vdpau.h:1361
VdpStatus VdpOutputSurfaceDestroy(VdpOutputSurface surface)
Destroy a VdpOutputSurface.
Definition: vdpau.h:2027
uint8_t loopfilter
Definition: vdpau.h:3216
uint8_t lists_modification_present_flag
Definition: vdpau.h:3522
uint8_t panscan_flag
Definition: vdpau.h:3202
float red
Definition: vdpau.h:1283
VdpOutputSurfaceRenderBlendFactor blend_factor_destination_alpha
Definition: vdpau.h:2391
uint8_t explicitRdpcmEnableFlag
Definition: vdpau.h:3617
uint8_t picture_coding_type
Definition: vdpau.h:3002
uint8_t range_mapy_flag
Definition: vdpau.h:3220
uint8_t num_tile_columns_minus1
Definition: vdpau.h:3492
uint8_t extendedPrecisionProcessingFlag
Definition: vdpau.h:3619
uint8_t intraBlockCopyEnableFlag
Definition: vdpau.h:3629
int qpChDc
Definition: vdpau.h:3371
uint8_t picture_structure
Definition: vdpau.h:3001
uint8_t highPrecisionOffsetsEnableFlag
Definition: vdpau.h:3623
int8_t pps_beta_offset_div2
Definition: vdpau.h:3518
VdpStatus VdpPresentationQueueTargetDestroy(VdpPresentationQueueTarget presentation_queue_target)
Destroy a VdpPresentationQueueTarget.
Definition: vdpau.h:4559
uint8_t scaling_list_enabled_flag
Definition: vdpau.h:3422
VdpVideoSurface lastReference
Definition: vdpau.h:3329
unsigned short subSamplingY
Definition: vdpau.h:3342
VdpStatus VdpVideoSurfaceCreate(VdpDevice device, VdpChromaType chroma_type, uint32_t width, uint32_t height, VdpVideoSurface *surface)
Create a VdpVideoSurface.
Definition: vdpau.h:1779
VdpStatus VdpPresentationQueueSetBackgroundColor(VdpPresentationQueue presentation_queue, VdpColor *const background_color)
Configure the background color setting.
Definition: vdpau.h:4605
VdpOutputSurfaceRenderBlendEquation blend_equation_color
Definition: vdpau.h:2392
uint8_t mb_adaptive_frame_field_flag
Definition: vdpau.h:3096
uint8_t separate_colour_plane_flag
Definition: vdpau.h:3153