Commit 3282da12 authored by Karthikeyan Sreenivasan's avatar Karthikeyan Sreenivasan Committed by Aaron Plattner
Browse files

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: default avatarAaron Plattner <aplattner@nvidia.com>
Reviewed-by: default avatarJosé Hiram Soltren <jsoltren@nvidia.com>
Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
Acked-by: default avatarRémi Denis-Courmont <remi@remlab.net>
parent 3e191f7d
...@@ -2460,6 +2460,9 @@ typedef uint32_t VdpDecoderProfile; ...@@ -2460,6 +2460,9 @@ typedef uint32_t VdpDecoderProfile;
#define VDP_DECODER_PROFILE_H264_PROGRESSIVE_HIGH ((VdpDecoderProfile)24) #define VDP_DECODER_PROFILE_H264_PROGRESSIVE_HIGH ((VdpDecoderProfile)24)
/** \hideinitializer */ /** \hideinitializer */
#define VDP_DECODER_PROFILE_H264_CONSTRAINED_HIGH ((VdpDecoderProfile)25) #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 */ /** \hideinitializer */
#define VDP_DECODER_LEVEL_MPEG1_NA 0 #define VDP_DECODER_LEVEL_MPEG1_NA 0
...@@ -2779,6 +2782,10 @@ typedef struct { ...@@ -2779,6 +2782,10 @@ typedef struct {
* Note: References to "copy of bitstream field" in the field descriptions * Note: References to "copy of bitstream field" in the field descriptions
* may refer to data literally parsed from the bitstream, or derived from * may refer to data literally parsed from the bitstream, or derived from
* the bitstream using a mechanism described in the specification. * 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 { typedef struct {
/** Number of slices in the bitstream provided. */ /** Number of slices in the bitstream provided. */
...@@ -2846,6 +2853,33 @@ typedef struct { ...@@ -2846,6 +2853,33 @@ typedef struct {
VdpReferenceFrameH264 referenceFrames[16]; VdpReferenceFrameH264 referenceFrames[16];
} VdpPictureInfoH264; } 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. * \brief Picture parameter information for a VC1 picture.
* *
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment