summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarthikeyan Sreenivasan <ksreenivasan@nvidia.com>2014-12-11 13:09:03 -0800
committerAaron Plattner <aplattner@nvidia.com>2014-12-12 12:33:58 -0800
commit3282da12b84ee9eb73e6a93988e419c6d2f43d4e (patch)
treecfc93490c2ca25cca3eac47eb82565d13a759060
parent3e191f7d4524a077adce5e54742347ffa49fee24 (diff)
Add support for H.264 Hi444PP in VDPAU API
The current patch adds a new struct VdpPictureInfoH264Predictive which contains the necessary fields to support High 444 Predictive Profile. The patch adds VDP_DECODER_PROFILE_H264_HIGH_444_PREDICTIVE (currently only with 8 bit depth support). Additional profiles and levels will be added in a future update. Videos of VDP_DECODER_PROFILE_H264_HIGH_444_PREDICTIVE profile must use VdpPictureInfoH264Predictive. This patch adds lossless decode support to VDPAU API via the qpprimey_zero_transform_bypass_flag in struct VdpPictureInfoH264Predictive. Signed-off-by: Aaron Plattner <aplattner@nvidia.com> Reviewed-by: José Hiram Soltren <jsoltren@nvidia.com> Reviewed-by: Christian König <christian.koenig@amd.com> Acked-by: Rémi Denis-Courmont <remi@remlab.net>
-rw-r--r--include/vdpau/vdpau.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/include/vdpau/vdpau.h b/include/vdpau/vdpau.h
index 41bdf2d..b386825 100644
--- a/include/vdpau/vdpau.h
+++ b/include/vdpau/vdpau.h
@@ -2460,6 +2460,9 @@ typedef uint32_t VdpDecoderProfile;
#define VDP_DECODER_PROFILE_H264_PROGRESSIVE_HIGH ((VdpDecoderProfile)24)
/** \hideinitializer */
#define VDP_DECODER_PROFILE_H264_CONSTRAINED_HIGH ((VdpDecoderProfile)25)
+/** \hideinitializer */
+/** \brief Support for 8 bit depth only */
+#define VDP_DECODER_PROFILE_H264_HIGH_444_PREDICTIVE ((VdpDecoderProfile)26)
/** \hideinitializer */
#define VDP_DECODER_LEVEL_MPEG1_NA 0
@@ -2779,6 +2782,10 @@ typedef struct {
* Note: References to "copy of bitstream field" in the field descriptions
* may refer to data literally parsed from the bitstream, or derived from
* the bitstream using a mechanism described in the specification.
+ *
+ * Note: VDPAU clients must use VdpPictureInfoH264Predictive to describe the
+ * attributes of a frame being decoded with
+ * VDP_DECODER_PROFILE_H264_HIGH_444_PREDICTIVE.
*/
typedef struct {
/** Number of slices in the bitstream provided. */
@@ -2847,6 +2854,33 @@ typedef struct {
} VdpPictureInfoH264;
/**
+ * \brief Picture parameter information for an H.264 Hi444PP picture.
+ *
+ * Note: VDPAU clients must use VdpPictureInfoH264Predictive to describe the
+ * attributes of a frame being decoded with
+ * VDP_DECODER_PROFILE_H264_HIGH_444_PREDICTIVE.
+ *
+ * Note: software drivers may choose to honor values of
+ * qpprime_y_zero_transform_bypass_flag greater than 1 for internal use.
+ */
+typedef struct {
+ /** \ref VdpPictureInfoH264 struct. */
+ VdpPictureInfoH264 pictureInfo;
+ /** Copy of the H.264 bitstream field.
+ *
+ * 0 - lossless disabled
+ * 1 - lossless enabled
+ */
+ uint8_t qpprime_y_zero_transform_bypass_flag;
+ /** Copy of the H.264 bitstream field.
+ * 0 - disabled
+ * 1 - enabled
+ */
+ uint8_t separate_colour_plane_flag;
+
+} VdpPictureInfoH264Predictive;
+
+/**
* \brief Picture parameter information for a VC1 picture.
*
* Note: References to "copy of bitstream field" in the field descriptions