Skip to content
This repository was archived by the owner on Sep 3, 2019. It is now read-only.

Commit 3282da1

Browse files
Karthikeyan Sreenivasanaaronp24
authored andcommitted
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 <[email protected]> Reviewed-by: José Hiram Soltren <[email protected]> Reviewed-by: Christian König <[email protected]> Acked-by: Rémi Denis-Courmont <[email protected]>
1 parent 3e191f7 commit 3282da1

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

include/vdpau/vdpau.h

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2460,6 +2460,9 @@ typedef uint32_t VdpDecoderProfile;
24602460
#define VDP_DECODER_PROFILE_H264_PROGRESSIVE_HIGH ((VdpDecoderProfile)24)
24612461
/** \hideinitializer */
24622462
#define VDP_DECODER_PROFILE_H264_CONSTRAINED_HIGH ((VdpDecoderProfile)25)
2463+
/** \hideinitializer */
2464+
/** \brief Support for 8 bit depth only */
2465+
#define VDP_DECODER_PROFILE_H264_HIGH_444_PREDICTIVE ((VdpDecoderProfile)26)
24632466

24642467
/** \hideinitializer */
24652468
#define VDP_DECODER_LEVEL_MPEG1_NA 0
@@ -2779,6 +2782,10 @@ typedef struct {
27792782
* Note: References to "copy of bitstream field" in the field descriptions
27802783
* may refer to data literally parsed from the bitstream, or derived from
27812784
* the bitstream using a mechanism described in the specification.
2785+
*
2786+
* Note: VDPAU clients must use VdpPictureInfoH264Predictive to describe the
2787+
* attributes of a frame being decoded with
2788+
* VDP_DECODER_PROFILE_H264_HIGH_444_PREDICTIVE.
27822789
*/
27832790
typedef struct {
27842791
/** Number of slices in the bitstream provided. */
@@ -2846,6 +2853,33 @@ typedef struct {
28462853
VdpReferenceFrameH264 referenceFrames[16];
28472854
} VdpPictureInfoH264;
28482855

2856+
/**
2857+
* \brief Picture parameter information for an H.264 Hi444PP picture.
2858+
*
2859+
* Note: VDPAU clients must use VdpPictureInfoH264Predictive to describe the
2860+
* attributes of a frame being decoded with
2861+
* VDP_DECODER_PROFILE_H264_HIGH_444_PREDICTIVE.
2862+
*
2863+
* Note: software drivers may choose to honor values of
2864+
* qpprime_y_zero_transform_bypass_flag greater than 1 for internal use.
2865+
*/
2866+
typedef struct {
2867+
/** \ref VdpPictureInfoH264 struct. */
2868+
VdpPictureInfoH264 pictureInfo;
2869+
/** Copy of the H.264 bitstream field.
2870+
*
2871+
* 0 - lossless disabled
2872+
* 1 - lossless enabled
2873+
*/
2874+
uint8_t qpprime_y_zero_transform_bypass_flag;
2875+
/** Copy of the H.264 bitstream field.
2876+
* 0 - disabled
2877+
* 1 - enabled
2878+
*/
2879+
uint8_t separate_colour_plane_flag;
2880+
2881+
} VdpPictureInfoH264Predictive;
2882+
28492883
/**
28502884
* \brief Picture parameter information for a VC1 picture.
28512885
*

0 commit comments

Comments
 (0)