113 lines
3.6 KiB
Diff
113 lines
3.6 KiB
Diff
From 4475d106fdd00d74ac84c78691b13db7bd323a8c Mon Sep 17 00:00:00 2001
|
|
From: ManojGuptaBonda <mbonda@nvidia.com>
|
|
Date: Wed, 17 Jul 2019 14:57:51 +0530
|
|
Subject: [PATCH] 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.
|
|
---
|
|
include/vdpau/vdpau.h | 71 +++++++++++++++++++++++++++++++++++++++++++
|
|
1 file changed, 71 insertions(+)
|
|
|
|
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.
|
|
*
|
|
--
|
|
2.20.1
|
|
|