diff options
author | ManojGuptaBonda <mbonda@nvidia.com> | 2019-07-17 14:57:51 +0530 |
---|---|---|
committer | ManojGuptaBonda <mbonda@nvidia.com> | 2019-07-26 10:26:37 +0530 |
commit | 4475d106fdd00d74ac84c78691b13db7bd323a8c (patch) | |
tree | b30eba5fe5c1c9c07a8651ee2567715da7912685 | |
parent | f16d06267321e944da7b0ac17e00500faaaf7502 (diff) |
Add VP9 decode support in VDPAU API
Added VP9 decoder profiles and level to VDPAU header file.
VP9 specification has 4 profiles and 1 level defined.
A new VdpPictureInfoVP9 structure is defined to pass VP9 specific params
to the driver.
-rw-r--r-- | include/vdpau/vdpau.h | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/include/vdpau/vdpau.h b/include/vdpau/vdpau.h index 67aeacf..68a814d 100644 --- a/include/vdpau/vdpau.h +++ b/include/vdpau/vdpau.h @@ -2560,6 +2560,14 @@ typedef uint32_t VdpDecoderProfile; /** \brief Support for 8 bit depth only */ #define VDP_DECODER_PROFILE_H264_HIGH_444_PREDICTIVE ((VdpDecoderProfile)26) /** \hideinitializer */ +#define VDP_DECODER_PROFILE_VP9_PROFILE_0 ((VdpDecoderProfile)27) +/** \hideinitializer */ +#define VDP_DECODER_PROFILE_VP9_PROFILE_1 ((VdpDecoderProfile)28) +/** \hideinitializer */ +#define VDP_DECODER_PROFILE_VP9_PROFILE_2 ((VdpDecoderProfile)29) +/** \hideinitializer */ +#define VDP_DECODER_PROFILE_VP9_PROFILE_3 ((VdpDecoderProfile)30) +/** \hideinitializer */ /** \brief MPEG-H Part 2 == H.265 == HEVC */ #define VDP_DECODER_PROFILE_HEVC_MAIN ((VdpDecoderProfile)100) /** \hideinitializer */ @@ -2664,6 +2672,9 @@ typedef uint32_t VdpDecoderProfile; /** \hideinitializer */ #define VDP_DECODER_LEVEL_DIVX_NA 0 +/** \hideinitializer */ +#define VDP_DECODER_LEVEL_VP9_L1 1 + /** * The VDPAU H.265/HEVC decoder levels correspond to the values of * general_level_idc as described in the H.265 Specification, Annex A, @@ -3202,6 +3213,66 @@ typedef VdpPictureInfoMPEG4Part2 VdpPictureInfoDivX4; */ typedef VdpPictureInfoMPEG4Part2 VdpPictureInfoDivX5; +typedef struct +{ + unsigned int width; + unsigned int height; + + //Frame Indices + VdpVideoSurface lastReference; + VdpVideoSurface goldenReference; + VdpVideoSurface altReference; + + unsigned char colorSpace; + + unsigned short profile; + unsigned short frameContextIdx; + unsigned short keyFrame; + unsigned short showFrame; + unsigned short errorResilient; + unsigned short frameParallelDecoding; + unsigned short subSamplingX; + unsigned short subSamplingY; + unsigned short intraOnly; + unsigned short allowHighPrecisionMv; + unsigned short refreshEntropyProbs; + + unsigned char refFrameSignBias[4]; + + unsigned char bitDepthMinus8Luma; + unsigned char bitDepthMinus8Chroma; + unsigned char loopFilterLevel; + unsigned char loopFilterSharpness; + + unsigned char modeRefLfEnabled; + unsigned char log2TileColumns; + unsigned char log2TileRows; + + unsigned char segmentEnabled; + unsigned char segmentMapUpdate; + unsigned char segmentMapTemporalUpdate; + unsigned char segmentFeatureMode; + + unsigned char segmentFeatureEnable[8][4]; + short segmentFeatureData[8][4]; + unsigned char mbSegmentTreeProbs[7]; + unsigned char segmentPredProbs[3]; + unsigned char reservedSegment16Bits[2]; + + int qpYAc; + int qpYDc; + int qpChDc; + int qpChAc; + + unsigned int activeRefIdx[3]; + unsigned int resetFrameContext; + unsigned int mcompFilterType; + unsigned int mbRefLfDelta[4]; + unsigned int mbModeLfDelta[2]; + unsigned int uncompressedHeaderSize; + unsigned int compressedHeaderSize; +} VdpPictureInfoVP9; + /** * \brief Picture parameter information for an H.265/HEVC picture. * |