VDPAU
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
808
#define VDP_FALSE 0
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)
858
#define VDP_CHROMA_TYPE_422 ((VdpChromaType)1)
867
#define VDP_CHROMA_TYPE_444 ((VdpChromaType)2)
868
873
#define VDP_CHROMA_TYPE_420_FIELD ((VdpChromaType)3)
878
#define VDP_CHROMA_TYPE_422_FIELD ((VdpChromaType)4)
883
#define VDP_CHROMA_TYPE_444_FIELD ((VdpChromaType)5)
884
889
#define VDP_CHROMA_TYPE_420_FRAME ((VdpChromaType)6)
894
#define VDP_CHROMA_TYPE_422_FRAME ((VdpChromaType)7)
899
#define VDP_CHROMA_TYPE_444_FRAME ((VdpChromaType)8)
908
#define VDP_CHROMA_TYPE_420_16 ((VdpChromaType)9)
917
#define VDP_CHROMA_TYPE_422_16 ((VdpChromaType)10)
926
#define VDP_CHROMA_TYPE_444_16 ((VdpChromaType)11)
927
932
#define VDP_CHROMA_TYPE_420_FIELD_16 ((VdpChromaType)12)
937
#define VDP_CHROMA_TYPE_422_FIELD_16 ((VdpChromaType)13)
942
#define VDP_CHROMA_TYPE_444_FIELD_16 ((VdpChromaType)14)
943
948
#define VDP_CHROMA_TYPE_420_FRAME_16 ((VdpChromaType)15)
953
#define VDP_CHROMA_TYPE_422_FRAME_16 ((VdpChromaType)16)
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)
990
#define VDP_YCBCR_FORMAT_YV12 ((VdpYCbCrFormat)1)
1004
#define VDP_YCBCR_FORMAT_UYVY ((VdpYCbCrFormat)2)
1018
#define VDP_YCBCR_FORMAT_YUYV ((VdpYCbCrFormat)3)
1031
#define VDP_YCBCR_FORMAT_Y8U8V8A8 ((VdpYCbCrFormat)4)
1044
#define VDP_YCBCR_FORMAT_V8U8Y8A8 ((VdpYCbCrFormat)5)
1058
#define VDP_YCBCR_FORMAT_Y_UV_444 ((VdpYCbCrFormat)6)
1070
#define VDP_YCBCR_FORMAT_Y_U_V_444 ((VdpYCbCrFormat)7)
1088
#define VDP_YCBCR_FORMAT_P010 ((VdpYCbCrFormat)8)
1102
#define VDP_YCBCR_FORMAT_P016 ((VdpYCbCrFormat)9)
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)
1146
#define VDP_RGBA_FORMAT_R8G8B8A8 ((VdpRGBAFormat)1)
1159
#define VDP_RGBA_FORMAT_R10G10B10A2 ((VdpRGBAFormat)2)
1172
#define VDP_RGBA_FORMAT_B10G10R10A2 ((VdpRGBAFormat)3)
1183
#define VDP_RGBA_FORMAT_A8 ((VdpRGBAFormat)4)
1184
1188
typedef
uint32_t
VdpIndexedFormat
;
1189
1201
#define VDP_INDEXED_FORMAT_A4I4 ((VdpIndexedFormat)0)
1213
#define VDP_INDEXED_FORMAT_I4A4 ((VdpIndexedFormat)1)
1225
#define VDP_INDEXED_FORMAT_A8I8 ((VdpIndexedFormat)2)
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
{
1303
VDP_STATUS_OK
= 0,
1307
VDP_STATUS_NO_IMPLEMENTATION
,
1313
VDP_STATUS_DISPLAY_PREEMPTED
,
1320
VDP_STATUS_INVALID_HANDLE
,
1327
VDP_STATUS_INVALID_POINTER
,
1331
VDP_STATUS_INVALID_CHROMA_TYPE
,
1335
VDP_STATUS_INVALID_Y_CB_CR_FORMAT
,
1339
VDP_STATUS_INVALID_RGBA_FORMAT
,
1343
VDP_STATUS_INVALID_INDEXED_FORMAT
,
1347
VDP_STATUS_INVALID_COLOR_STANDARD
,
1351
VDP_STATUS_INVALID_COLOR_TABLE_FORMAT
,
1356
VDP_STATUS_INVALID_BLEND_FACTOR
,
1361
VDP_STATUS_INVALID_BLEND_EQUATION
,
1365
VDP_STATUS_INVALID_FLAG
,
1369
VDP_STATUS_INVALID_DECODER_PROFILE
,
1373
VDP_STATUS_INVALID_VIDEO_MIXER_FEATURE
,
1377
VDP_STATUS_INVALID_VIDEO_MIXER_PARAMETER
,
1381
VDP_STATUS_INVALID_VIDEO_MIXER_ATTRIBUTE
,
1386
VDP_STATUS_INVALID_VIDEO_MIXER_PICTURE_STRUCTURE
,
1390
VDP_STATUS_INVALID_FUNC_ID
,
1400
VDP_STATUS_INVALID_SIZE
,
1407
VDP_STATUS_INVALID_VALUE
,
1413
VDP_STATUS_INVALID_STRUCT_VERSION
,
1418
VDP_STATUS_RESOURCES
,
1428
VDP_STATUS_HANDLE_DEVICE_MISMATCH
,
1432
VDP_STATUS_ERROR
,
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)
1637
#define VDP_COLOR_STANDARD_ITUR_BT_709 ((VdpColorStandard)1)
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
1700
typedef
VdpStatus
VdpVideoSurfaceQueryCapabilities
(
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
1720
typedef
VdpStatus
VdpVideoSurfaceQueryGetPutBitsYCbCrCapabilities
(
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
1806
typedef
VdpStatus
VdpVideoSurfaceGetParameters
(
1807
VdpVideoSurface
surface,
1808
/* output parameters follow */
1809
VdpChromaType
* chroma_type,
1810
uint32_t * width,
1811
uint32_t * height
1812
);
1813
1832
typedef
VdpStatus
VdpVideoSurfaceGetBitsYCbCr
(
1833
VdpVideoSurface
surface,
1834
VdpYCbCrFormat
destination_ycbcr_format,
1835
void
*
const
* destination_data,
1836
uint32_t
const
* destination_pitches
1837
);
1838
1857
typedef
VdpStatus
VdpVideoSurfacePutBitsYCbCr
(
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
1926
typedef
VdpStatus
VdpOutputSurfaceQueryCapabilities
(
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
1945
typedef
VdpStatus
VdpOutputSurfaceQueryGetPutBitsNativeCapabilities
(
1946
VdpDevice
device,
1947
VdpRGBAFormat
surface_rgba_format,
1948
/* output parameters follow */
1949
VdpBool
* is_supported
1950
);
1951
1966
typedef
VdpStatus
VdpOutputSurfaceQueryPutBitsIndexedCapabilities
(
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
1987
typedef
VdpStatus
VdpOutputSurfaceQueryPutBitsYCbCrCapabilities
(
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
2040
typedef
VdpStatus
VdpOutputSurfaceGetParameters
(
2041
VdpOutputSurface
surface,
2042
/* output parameters follow */
2043
VdpRGBAFormat
* rgba_format,
2044
uint32_t * width,
2045
uint32_t * height
2046
);
2047
2067
typedef
VdpStatus
VdpOutputSurfaceGetBitsNative
(
2068
VdpOutputSurface
surface,
2069
VdpRect
const
* source_rect,
2070
void
*
const
* destination_data,
2071
uint32_t
const
* destination_pitches
2072
);
2073
2093
typedef
VdpStatus
VdpOutputSurfacePutBitsNative
(
2094
VdpOutputSurface
surface,
2095
void
const
*
const
* source_data,
2096
uint32_t
const
* source_pitches,
2097
VdpRect
const
* destination_rect
2098
);
2099
2125
typedef
VdpStatus
VdpOutputSurfacePutBitsIndexed
(
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
2160
typedef
VdpStatus
VdpOutputSurfacePutBitsYCbCr
(
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
2219
typedef
VdpStatus
VdpBitmapSurfaceQueryCapabilities
(
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
2281
typedef
VdpStatus
VdpBitmapSurfaceGetParameters
(
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
2309
typedef
VdpStatus
VdpBitmapSurfacePutBitsNative
(
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
{
2333
VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ZERO
= 0,
2334
VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE
= 1,
2335
VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_SRC_COLOR
= 2,
2336
VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_SRC_COLOR
= 3,
2337
VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_SRC_ALPHA
= 4,
2338
VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA
= 5,
2339
VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_DST_ALPHA
= 6,
2340
VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_DST_ALPHA
= 7,
2341
VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_DST_COLOR
= 8,
2342
VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_DST_COLOR
= 9,
2343
VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_SRC_ALPHA_SATURATE
= 10,
2344
VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_CONSTANT_COLOR
= 11,
2345
VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR
= 12,
2346
VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_CONSTANT_ALPHA
= 13,
2347
VDP_OUTPUT_SURFACE_RENDER_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA
= 14,
2348
}
VdpOutputSurfaceRenderBlendFactor
;
2349
2354
typedef
enum
{
2355
VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_SUBTRACT
= 0,
2356
VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_REVERSE_SUBTRACT
= 1,
2357
VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_ADD
= 2,
2358
VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_MIN
= 3,
2359
VDP_OUTPUT_SURFACE_RENDER_BLEND_EQUATION_MAX
= 4,
2360
}
VdpOutputSurfaceRenderBlendEquation
;
2361
2362
#define VDP_OUTPUT_SURFACE_RENDER_BLEND_STATE_VERSION 0
2363
2383
typedef
struct
{
2387
uint32_t
struct_version
;
2388
VdpOutputSurfaceRenderBlendFactor
blend_factor_source_color
;
2389
VdpOutputSurfaceRenderBlendFactor
blend_factor_destination_color
;
2390
VdpOutputSurfaceRenderBlendFactor
blend_factor_source_alpha
;
2391
VdpOutputSurfaceRenderBlendFactor
blend_factor_destination_alpha
;
2392
VdpOutputSurfaceRenderBlendEquation
blend_equation_color
;
2393
VdpOutputSurfaceRenderBlendEquation
blend_equation_alpha
;
2394
VdpColor
blend_constant
;
2395
}
VdpOutputSurfaceRenderBlendState
;
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
2503
typedef
VdpStatus
VdpOutputSurfaceRenderOutputSurface
(
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
2583
typedef
VdpStatus
VdpOutputSurfaceRenderBitmapSurface
(
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)
2618
#define VDP_DECODER_PROFILE_MPEG2_SIMPLE ((VdpDecoderProfile)1)
2620
#define VDP_DECODER_PROFILE_MPEG2_MAIN ((VdpDecoderProfile)2)
2623
#define VDP_DECODER_PROFILE_H264_BASELINE ((VdpDecoderProfile)6)
2625
#define VDP_DECODER_PROFILE_H264_MAIN ((VdpDecoderProfile)7)
2627
#define VDP_DECODER_PROFILE_H264_HIGH ((VdpDecoderProfile)8)
2629
#define VDP_DECODER_PROFILE_VC1_SIMPLE ((VdpDecoderProfile)9)
2631
#define VDP_DECODER_PROFILE_VC1_MAIN ((VdpDecoderProfile)10)
2633
#define VDP_DECODER_PROFILE_VC1_ADVANCED ((VdpDecoderProfile)11)
2635
#define VDP_DECODER_PROFILE_MPEG4_PART2_SP ((VdpDecoderProfile)12)
2637
#define VDP_DECODER_PROFILE_MPEG4_PART2_ASP ((VdpDecoderProfile)13)
2639
#define VDP_DECODER_PROFILE_DIVX4_QMOBILE ((VdpDecoderProfile)14)
2641
#define VDP_DECODER_PROFILE_DIVX4_MOBILE ((VdpDecoderProfile)15)
2643
#define VDP_DECODER_PROFILE_DIVX4_HOME_THEATER ((VdpDecoderProfile)16)
2645
#define VDP_DECODER_PROFILE_DIVX4_HD_1080P ((VdpDecoderProfile)17)
2647
#define VDP_DECODER_PROFILE_DIVX5_QMOBILE ((VdpDecoderProfile)18)
2649
#define VDP_DECODER_PROFILE_DIVX5_MOBILE ((VdpDecoderProfile)19)
2651
#define VDP_DECODER_PROFILE_DIVX5_HOME_THEATER ((VdpDecoderProfile)20)
2653
#define VDP_DECODER_PROFILE_DIVX5_HD_1080P ((VdpDecoderProfile)21)
2655
#define VDP_DECODER_PROFILE_H264_CONSTRAINED_BASELINE ((VdpDecoderProfile)22)
2657
#define VDP_DECODER_PROFILE_H264_EXTENDED ((VdpDecoderProfile)23)
2659
#define VDP_DECODER_PROFILE_H264_PROGRESSIVE_HIGH ((VdpDecoderProfile)24)
2661
#define VDP_DECODER_PROFILE_H264_CONSTRAINED_HIGH ((VdpDecoderProfile)25)
2664
#define VDP_DECODER_PROFILE_H264_HIGH_444_PREDICTIVE ((VdpDecoderProfile)26)
2666
#define VDP_DECODER_PROFILE_VP9_PROFILE_0 ((VdpDecoderProfile)27)
2668
#define VDP_DECODER_PROFILE_VP9_PROFILE_1 ((VdpDecoderProfile)28)
2670
#define VDP_DECODER_PROFILE_VP9_PROFILE_2 ((VdpDecoderProfile)29)
2672
#define VDP_DECODER_PROFILE_VP9_PROFILE_3 ((VdpDecoderProfile)30)
2675
#define VDP_DECODER_PROFILE_HEVC_MAIN ((VdpDecoderProfile)100)
2677
#define VDP_DECODER_PROFILE_HEVC_MAIN_10 ((VdpDecoderProfile)101)
2679
#define VDP_DECODER_PROFILE_HEVC_MAIN_STILL ((VdpDecoderProfile)102)
2681
#define VDP_DECODER_PROFILE_HEVC_MAIN_12 ((VdpDecoderProfile)103)
2683
#define VDP_DECODER_PROFILE_HEVC_MAIN_444 ((VdpDecoderProfile)104)
2685
#define VDP_DECODER_PROFILE_HEVC_MAIN_444_10 ((VdpDecoderProfile)105)
2687
#define VDP_DECODER_PROFILE_HEVC_MAIN_444_12 ((VdpDecoderProfile)106)
2689
#define VDP_DECODER_PROFILE_AV1_MAIN ((VdpDecoderProfile)107)
2691
#define VDP_DECODER_PROFILE_AV1_HIGH ((VdpDecoderProfile)108)
2693
#define VDP_DECODER_PROFILE_AV1_PROFESSIONAL ((VdpDecoderProfile)109)
2694
2696
#define VDP_DECODER_LEVEL_MPEG1_NA 0
2697
2699
#define VDP_DECODER_LEVEL_MPEG2_LL 0
2701
#define VDP_DECODER_LEVEL_MPEG2_ML 1
2703
#define VDP_DECODER_LEVEL_MPEG2_HL14 2
2705
#define VDP_DECODER_LEVEL_MPEG2_HL 3
2706
2708
#define VDP_DECODER_LEVEL_H264_1 10
2710
#define VDP_DECODER_LEVEL_H264_1b 9
2712
#define VDP_DECODER_LEVEL_H264_1_1 11
2714
#define VDP_DECODER_LEVEL_H264_1_2 12
2716
#define VDP_DECODER_LEVEL_H264_1_3 13
2718
#define VDP_DECODER_LEVEL_H264_2 20
2720
#define VDP_DECODER_LEVEL_H264_2_1 21
2722
#define VDP_DECODER_LEVEL_H264_2_2 22
2724
#define VDP_DECODER_LEVEL_H264_3 30
2726
#define VDP_DECODER_LEVEL_H264_3_1 31
2728
#define VDP_DECODER_LEVEL_H264_3_2 32
2730
#define VDP_DECODER_LEVEL_H264_4 40
2732
#define VDP_DECODER_LEVEL_H264_4_1 41
2734
#define VDP_DECODER_LEVEL_H264_4_2 42
2736
#define VDP_DECODER_LEVEL_H264_5 50
2738
#define VDP_DECODER_LEVEL_H264_5_1 51
2739
2741
#define VDP_DECODER_LEVEL_VC1_SIMPLE_LOW 0
2743
#define VDP_DECODER_LEVEL_VC1_SIMPLE_MEDIUM 1
2744
2746
#define VDP_DECODER_LEVEL_VC1_MAIN_LOW 0
2748
#define VDP_DECODER_LEVEL_VC1_MAIN_MEDIUM 1
2750
#define VDP_DECODER_LEVEL_VC1_MAIN_HIGH 2
2751
2753
#define VDP_DECODER_LEVEL_VC1_ADVANCED_L0 0
2755
#define VDP_DECODER_LEVEL_VC1_ADVANCED_L1 1
2757
#define VDP_DECODER_LEVEL_VC1_ADVANCED_L2 2
2759
#define VDP_DECODER_LEVEL_VC1_ADVANCED_L3 3
2761
#define VDP_DECODER_LEVEL_VC1_ADVANCED_L4 4
2762
2764
#define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L0 0
2766
#define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L1 1
2768
#define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L2 2
2770
#define VDP_DECODER_LEVEL_MPEG4_PART2_SP_L3 3
2771
2773
#define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L0 0
2775
#define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L1 1
2777
#define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L2 2
2779
#define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L3 3
2781
#define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L4 4
2783
#define VDP_DECODER_LEVEL_MPEG4_PART2_ASP_L5 5
2784
2786
#define VDP_DECODER_LEVEL_DIVX_NA 0
2787
2789
#define VDP_DECODER_LEVEL_VP9_L1 1
2790
2792
#define VDP_DECODER_LEVEL_AV1_2_0 0
2794
#define VDP_DECODER_LEVEL_AV1_2_1 1
2796
#define VDP_DECODER_LEVEL_AV1_2_2 2
2798
#define VDP_DECODER_LEVEL_AV1_2_3 3
2800
#define VDP_DECODER_LEVEL_AV1_3_0 4
2802
#define VDP_DECODER_LEVEL_AV1_3_1 5
2804
#define VDP_DECODER_LEVEL_AV1_3_2 6
2806
#define VDP_DECODER_LEVEL_AV1_3_3 7
2808
#define VDP_DECODER_LEVEL_AV1_4_0 8
2810
#define VDP_DECODER_LEVEL_AV1_4_1 9
2812
#define VDP_DECODER_LEVEL_AV1_4_2 10
2814
#define VDP_DECODER_LEVEL_AV1_4_3 11
2816
#define VDP_DECODER_LEVEL_AV1_5_0 12
2818
#define VDP_DECODER_LEVEL_AV1_5_1 13
2820
#define VDP_DECODER_LEVEL_AV1_5_2 14
2822
#define VDP_DECODER_LEVEL_AV1_5_3 15
2824
#define VDP_DECODER_LEVEL_AV1_6_0 16
2826
#define VDP_DECODER_LEVEL_AV1_6_1 17
2828
#define VDP_DECODER_LEVEL_AV1_6_2 18
2830
#define VDP_DECODER_LEVEL_AV1_6_3 19
2832
#define VDP_DECODER_LEVEL_AV1_7_0 20
2834
#define VDP_DECODER_LEVEL_AV1_7_1 21
2836
#define VDP_DECODER_LEVEL_AV1_7_2 22
2838
#define VDP_DECODER_LEVEL_AV1_7_3 23
2839
2846
#define VDP_DECODER_LEVEL_HEVC_1 30
2848
#define VDP_DECODER_LEVEL_HEVC_2 60
2850
#define VDP_DECODER_LEVEL_HEVC_2_1 63
2852
#define VDP_DECODER_LEVEL_HEVC_3 90
2854
#define VDP_DECODER_LEVEL_HEVC_3_1 93
2856
#define VDP_DECODER_LEVEL_HEVC_4 120
2858
#define VDP_DECODER_LEVEL_HEVC_4_1 123
2860
#define VDP_DECODER_LEVEL_HEVC_5 150
2862
#define VDP_DECODER_LEVEL_HEVC_5_1 153
2864
#define VDP_DECODER_LEVEL_HEVC_5_2 156
2866
#define VDP_DECODER_LEVEL_HEVC_6 180
2868
#define VDP_DECODER_LEVEL_HEVC_6_1 183
2870
#define VDP_DECODER_LEVEL_HEVC_6_2 186
2871
2872
typedef
enum
{
2873
VDP_VIDEO_SURFACE_FIELD_STRUCTURE
= (1 << 0),
2874
VDP_VIDEO_SURFACE_FRAME_STRUCTURE
= (1 << 1)
2875
}
VdpVideoSurfaceSupportedPictureStructure
;
2876
2877
typedef
enum
{
2878
VDP_DECODER_PROFILE_MAX_LEVEL
= 0,
2879
VDP_DECODER_PROFILE_MAX_MACROBLOCKS
= 1,
2880
VDP_DECODER_PROFILE_MAX_WIDTH
= 2,
2881
VDP_DECODER_PROFILE_MAX_HEIGHT
= 3,
2882
VDP_DECODER_PROFILE_SUPPORTED_PICTURE_STRUCTURE
= 4,
2890
VDP_DECODER_PROFILE_SUPPORTED_CHROMA_TYPES
= 5
2891
}
VdpDecoderCapability
;
2892
2904
typedef
VdpStatus
VdpDecoderQueryProfileCapability
(
2905
VdpDevice
device,
2906
VdpDecoderProfile
profile,
2907
/* output parameters follow */
2908
VdpDecoderCapability
capability,
2909
void
* capability_value
2910
);
2911
2930
typedef
VdpStatus
VdpDecoderQueryCapabilities
(
2931
VdpDevice
device,
2932
VdpDecoderProfile
profile,
2933
/* output parameters follow */
2934
VdpBool
* is_supported,
2935
uint32_t * max_level,
2936
uint32_t * max_macroblocks,
2937
uint32_t * max_width,
2938
uint32_t * max_height
2939
);
2940
2944
typedef
uint32_t
VdpDecoder
;
2945
2962
typedef
VdpStatus
VdpDecoderCreate
(
2963
VdpDevice
device,
2964
VdpDecoderProfile
profile,
2965
uint32_t width,
2966
uint32_t height,
2967
uint32_t max_references,
2968
/* output parameters follow */
2969
VdpDecoder
* decoder
2970
);
2971
2977
typedef
VdpStatus
VdpDecoderDestroy
(
2978
VdpDecoder
decoder
2979
);
2980
2993
typedef
VdpStatus
VdpDecoderGetParameters
(
2994
VdpDecoder
decoder,
2995
/* output parameters follow */
2996
VdpDecoderProfile
* profile,
2997
uint32_t * width,
2998
uint32_t * height
2999
);
3000
3001
#define VDP_BITSTREAM_BUFFER_VERSION 0
3002
3007
typedef
struct
{
3011
uint32_t
struct_version
;
3013
void
const
*
bitstream
;
3015
uint32_t
bitstream_bytes
;
3016
}
VdpBitstreamBuffer
;
3017
3028
typedef
void
VdpPictureInfo
;
3029
3038
typedef
struct
{
3043
VdpVideoSurface
forward_reference
;
3048
VdpVideoSurface
backward_reference
;
3050
uint32_t
slice_count
;
3051
3056
uint8_t
picture_structure
;
3057
uint8_t
picture_coding_type
;
3058
uint8_t
intra_dc_precision
;
3059
uint8_t
frame_pred_frame_dct
;
3060
uint8_t
concealment_motion_vectors
;
3061
uint8_t
intra_vlc_format
;
3062
uint8_t
alternate_scan
;
3063
uint8_t
q_scale_type
;
3064
uint8_t
top_field_first
;
3066
uint8_t
full_pel_forward_vector
;
3068
uint8_t
full_pel_backward_vector
;
3070
uint8_t f_code[2][2];
3072
uint8_t intra_quantizer_matrix[64];
3074
uint8_t non_intra_quantizer_matrix[64];
3076
}
VdpPictureInfoMPEG1Or2
;
3077
3085
typedef
struct
{
3090
VdpVideoSurface
surface
;
3092
VdpBool
is_long_term
;
3097
VdpBool
top_is_reference
;
3102
VdpBool
bottom_is_reference
;
3104
int32_t field_order_cnt[2];
3110
uint16_t
frame_idx
;
3111
}
VdpReferenceFrameH264
;
3112
3135
typedef
struct
{
3137
uint32_t
slice_count
;
3139
int32_t field_order_cnt[2];
3141
VdpBool
is_reference
;
3142
3147
uint16_t
frame_num
;
3148
uint8_t
field_pic_flag
;
3149
uint8_t
bottom_field_flag
;
3150
uint8_t
num_ref_frames
;
3151
uint8_t
mb_adaptive_frame_field_flag
;
3152
uint8_t
constrained_intra_pred_flag
;
3153
uint8_t
weighted_pred_flag
;
3154
uint8_t
weighted_bipred_idc
;
3155
uint8_t
frame_mbs_only_flag
;
3156
uint8_t
transform_8x8_mode_flag
;
3157
int8_t
chroma_qp_index_offset
;
3158
int8_t
second_chroma_qp_index_offset
;
3159
int8_t
pic_init_qp_minus26
;
3160
uint8_t
num_ref_idx_l0_active_minus1
;
3161
uint8_t
num_ref_idx_l1_active_minus1
;
3162
uint8_t
log2_max_frame_num_minus4
;
3163
uint8_t
pic_order_cnt_type
;
3164
uint8_t
log2_max_pic_order_cnt_lsb_minus4
;
3165
uint8_t
delta_pic_order_always_zero_flag
;
3166
uint8_t
direct_8x8_inference_flag
;
3167
uint8_t
entropy_coding_mode_flag
;
3168
uint8_t
pic_order_present_flag
;
3169
uint8_t
deblocking_filter_control_present_flag
;
3170
uint8_t
redundant_pic_cnt_present_flag
;
3172
uint8_t scaling_lists_4x4[6][16];
3174
uint8_t scaling_lists_8x8[2][64];
3178
VdpReferenceFrameH264
referenceFrames[16];
3179
}
VdpPictureInfoH264
;
3180
3191
typedef
struct
{
3193
VdpPictureInfoH264
pictureInfo
;
3194
3203
uint8_t
qpprime_y_zero_transform_bypass_flag
;
3208
uint8_t
separate_colour_plane_flag
;
3210
}
VdpPictureInfoH264Predictive
;
3211
3219
typedef
struct
{
3224
VdpVideoSurface
forward_reference
;
3229
VdpVideoSurface
backward_reference
;
3230
3232
uint32_t
slice_count
;
3234
uint8_t
picture_type
;
3236
uint8_t
frame_coding_mode
;
3237
3243
uint8_t
postprocflag
;
3245
uint8_t
pulldown
;
3247
uint8_t
interlace
;
3249
uint8_t
tfcntrflag
;
3251
uint8_t
finterpflag
;
3253
uint8_t
psf
;
3255
uint8_t
dquant
;
3257
uint8_t
panscan_flag
;
3259
uint8_t
refdist_flag
;
3261
uint8_t
quantizer
;
3263
uint8_t
extended_mv
;
3265
uint8_t
extended_dmv
;
3267
uint8_t
overlap
;
3269
uint8_t
vstransform
;
3271
uint8_t
loopfilter
;
3273
uint8_t
fastuvmc
;
3275
uint8_t
range_mapy_flag
;
3276
uint8_t
range_mapy
;
3278
uint8_t
range_mapuv_flag
;
3279
uint8_t
range_mapuv
;
3280
3285
uint8_t
multires
;
3290
uint8_t
syncmarker
;
3297
uint8_t
rangered
;
3302
uint8_t
maxbframes
;
3310
uint8_t
deblockEnable
;
3316
uint8_t
pquant
;
3317
}
VdpPictureInfoVC1
;
3318
3326
typedef
struct
{
3331
VdpVideoSurface
forward_reference
;
3336
VdpVideoSurface
backward_reference
;
3337
3342
int32_t trd[2];
3343
int32_t trb[2];
3344
uint16_t
vop_time_increment_resolution
;
3345
uint8_t
vop_coding_type
;
3346
uint8_t
vop_fcode_forward
;
3347
uint8_t
vop_fcode_backward
;
3348
uint8_t
resync_marker_disable
;
3349
uint8_t
interlaced
;
3350
uint8_t
quant_type
;
3351
uint8_t
quarter_sample
;
3352
uint8_t
short_video_header
;
3354
uint8_t
rounding_control
;
3355
uint8_t
alternate_vertical_scan_flag
;
3356
uint8_t
top_field_first
;
3357
uint8_t intra_quantizer_matrix[64];
3358
uint8_t non_intra_quantizer_matrix[64];
3360
}
VdpPictureInfoMPEG4Part2
;
3361
3368
typedef
VdpPictureInfoMPEG4Part2
VdpPictureInfoDivX4
;
3369
3376
typedef
VdpPictureInfoMPEG4Part2
VdpPictureInfoDivX5
;
3377
3378
typedef
struct
3379
{
3380
unsigned
int
width
;
3381
unsigned
int
height
;
3382
3383
//Frame Indices
3384
VdpVideoSurface
lastReference
;
3385
VdpVideoSurface
goldenReference
;
3386
VdpVideoSurface
altReference
;
3387
3388
unsigned
char
colorSpace
;
3389
3390
unsigned
short
profile
;
3391
unsigned
short
frameContextIdx
;
3392
unsigned
short
keyFrame
;
3393
unsigned
short
showFrame
;
3394
unsigned
short
errorResilient
;
3395
unsigned
short
frameParallelDecoding
;
3396
unsigned
short
subSamplingX
;
3397
unsigned
short
subSamplingY
;
3398
unsigned
short
intraOnly
;
3399
unsigned
short
allowHighPrecisionMv
;
3400
unsigned
short
refreshEntropyProbs
;
3401
3402
unsigned
char
refFrameSignBias[4];
3403
3404
unsigned
char
bitDepthMinus8Luma
;
3405
unsigned
char
bitDepthMinus8Chroma
;
3406
unsigned
char
loopFilterLevel
;
3407
unsigned
char
loopFilterSharpness
;
3408
3409
unsigned
char
modeRefLfEnabled
;
3410
unsigned
char
log2TileColumns
;
3411
unsigned
char
log2TileRows
;
3412
3413
unsigned
char
segmentEnabled
;
3414
unsigned
char
segmentMapUpdate
;
3415
unsigned
char
segmentMapTemporalUpdate
;
3416
unsigned
char
segmentFeatureMode
;
3417
3418
unsigned
char
segmentFeatureEnable[8][4];
3419
short
segmentFeatureData[8][4];
3420
unsigned
char
mbSegmentTreeProbs[7];
3421
unsigned
char
segmentPredProbs[3];
3422
unsigned
char
reservedSegment16Bits[2];
3423
3424
int
qpYAc
;
3425
int
qpYDc
;
3426
int
qpChDc
;
3427
int
qpChAc
;
3428
3429
unsigned
int
activeRefIdx[3];
3430
unsigned
int
resetFrameContext
;
3431
unsigned
int
mcompFilterType
;
3432
unsigned
int
mbRefLfDelta[4];
3433
unsigned
int
mbModeLfDelta[2];
3434
unsigned
int
uncompressedHeaderSize
;
3435
unsigned
int
compressedHeaderSize
;
3436
}
VdpPictureInfoVP9
;
3437
3455
typedef
struct
{
3460
uint8_t
chroma_format_idc
;
3462
uint8_t
separate_colour_plane_flag
;
3463
uint32_t
pic_width_in_luma_samples
;
3464
uint32_t
pic_height_in_luma_samples
;
3465
uint8_t
bit_depth_luma_minus8
;
3466
uint8_t
bit_depth_chroma_minus8
;
3467
uint8_t
log2_max_pic_order_cnt_lsb_minus4
;
3470
uint8_t
sps_max_dec_pic_buffering_minus1
;
3471
uint8_t
log2_min_luma_coding_block_size_minus3
;
3472
uint8_t
log2_diff_max_min_luma_coding_block_size
;
3473
uint8_t
log2_min_transform_block_size_minus2
;
3474
uint8_t
log2_diff_max_min_transform_block_size
;
3475
uint8_t
max_transform_hierarchy_depth_inter
;
3476
uint8_t
max_transform_hierarchy_depth_intra
;
3477
uint8_t
scaling_list_enabled_flag
;
3481
uint8_t ScalingList4x4[6][16];
3484
uint8_t ScalingList8x8[6][64];
3487
uint8_t ScalingList16x16[6][64];
3490
uint8_t ScalingList32x32[2][64];
3493
uint8_t ScalingListDCCoeff16x16[6];
3496
uint8_t ScalingListDCCoeff32x32[2];
3497
uint8_t
amp_enabled_flag
;
3498
uint8_t
sample_adaptive_offset_enabled_flag
;
3499
uint8_t
pcm_enabled_flag
;
3501
uint8_t
pcm_sample_bit_depth_luma_minus1
;
3503
uint8_t
pcm_sample_bit_depth_chroma_minus1
;
3505
uint8_t
log2_min_pcm_luma_coding_block_size_minus3
;
3507
uint8_t
log2_diff_max_min_pcm_luma_coding_block_size
;
3509
uint8_t
pcm_loop_filter_disabled_flag
;
3512
uint8_t
num_short_term_ref_pic_sets
;
3513
uint8_t
long_term_ref_pics_present_flag
;
3516
uint8_t
num_long_term_ref_pics_sps
;
3517
uint8_t
sps_temporal_mvp_enabled_flag
;
3518
uint8_t
strong_intra_smoothing_enabled_flag
;
3525
uint8_t
dependent_slice_segments_enabled_flag
;
3526
uint8_t
output_flag_present_flag
;
3527
uint8_t
num_extra_slice_header_bits
;
3528
uint8_t
sign_data_hiding_enabled_flag
;
3529
uint8_t
cabac_init_present_flag
;
3530
uint8_t
num_ref_idx_l0_default_active_minus1
;
3531
uint8_t
num_ref_idx_l1_default_active_minus1
;
3532
int8_t
init_qp_minus26
;
3533
uint8_t
constrained_intra_pred_flag
;
3534
uint8_t
transform_skip_enabled_flag
;
3535
uint8_t
cu_qp_delta_enabled_flag
;
3537
uint8_t
diff_cu_qp_delta_depth
;
3538
int8_t
pps_cb_qp_offset
;
3539
int8_t
pps_cr_qp_offset
;
3540
uint8_t
pps_slice_chroma_qp_offsets_present_flag
;
3541
uint8_t
weighted_pred_flag
;
3542
uint8_t
weighted_bipred_flag
;
3543
uint8_t
transquant_bypass_enabled_flag
;
3544
uint8_t
tiles_enabled_flag
;
3545
uint8_t
entropy_coding_sync_enabled_flag
;
3547
uint8_t
num_tile_columns_minus1
;
3549
uint8_t
num_tile_rows_minus1
;
3551
uint8_t
uniform_spacing_flag
;
3555
uint16_t column_width_minus1[20];
3559
uint16_t row_height_minus1[22];
3562
uint8_t
loop_filter_across_tiles_enabled_flag
;
3563
uint8_t
pps_loop_filter_across_slices_enabled_flag
;
3564
uint8_t
deblocking_filter_control_present_flag
;
3567
uint8_t
deblocking_filter_override_enabled_flag
;
3570
uint8_t
pps_deblocking_filter_disabled_flag
;
3573
int8_t
pps_beta_offset_div2
;
3576
int8_t
pps_tc_offset_div2
;
3577
uint8_t
lists_modification_present_flag
;
3578
uint8_t
log2_parallel_merge_level_minus2
;
3579
uint8_t
slice_segment_header_extension_present_flag
;
3589
uint8_t
IDRPicFlag
;
3592
uint8_t
RAPPicFlag
;
3594
uint8_t
CurrRpsIdx
;
3596
uint32_t
NumPocTotalCurr
;
3600
uint32_t
NumDeltaPocsOfRefRpsIdx
;
3608
uint32_t
NumShortTermPictureSliceHeaderBits
;
3613
uint32_t
NumLongTermPictureSliceHeaderBits
;
3619
int32_t
CurrPicOrderCntVal
;
3620
3624
VdpVideoSurface
RefPics[16];
3627
int32_t PicOrderCntVal[16];
3631
uint8_t IsLongTerm[16];
3634
uint8_t
NumPocStCurrBefore
;
3637
uint8_t
NumPocStCurrAfter
;
3640
uint8_t
NumPocLtCurr
;
3643
uint8_t RefPicSetStCurrBefore[8];
3646
uint8_t RefPicSetStCurrAfter[8];
3649
uint8_t RefPicSetLtCurr[8];
3650
}
VdpPictureInfoHEVC
;
3651
3659
typedef
struct
{
3661
VdpPictureInfoHEVC
pictureInfo
;
3662
3663
/* SPS Range Extensions for Main 444, Main 10, etc. */
3664
uint8_t
sps_range_extension_flag
;
3665
/* sps extension for transform_skip_rotation_enabled_flag */
3666
uint8_t
transformSkipRotationEnableFlag
;
3667
/* sps extension for transform_skip_context_enabled_flag */
3668
uint8_t
transformSkipContextEnableFlag
;
3669
/* sps implicit_rdpcm_enabled_flag */
3670
uint8_t
implicitRdpcmEnableFlag
;
3671
/* sps explicit_rdpcm_enabled_flag */
3672
uint8_t
explicitRdpcmEnableFlag
;
3673
/* sps extended_precision_processing_flag,always 0 in current profile */
3674
uint8_t
extendedPrecisionProcessingFlag
;
3675
/* sps intra_smoothing_disabled_flag */
3676
uint8_t
intraSmoothingDisabledFlag
;
3677
/* sps high_precision_offsets_enabled_flag */
3678
uint8_t
highPrecisionOffsetsEnableFlag
;
3679
/* sps persistent_rice_adaptation_enabled_flag */
3680
uint8_t
persistentRiceAdaptationEnableFlag
;
3681
/* sps cabac_bypass_alignment_enabled_flag, always 0 in current profile */
3682
uint8_t
cabacBypassAlignmentEnableFlag
;
3683
/* sps intraBlockCopyEnableFlag, always 0 not used by the spec as of now */
3684
uint8_t
intraBlockCopyEnableFlag
;
3685
3686
/* PPS Range Extensions for Main 444, Main 10, etc. */
3687
uint8_t
pps_range_extension_flag
;
3688
/* pps extension log2_max_transform_skip_block_size_minus2, 0...5 */
3689
uint8_t
log2MaxTransfo