[VDPAU] [PATCH] Add support for H.264 Hi444PP in VDPAU API - update 2

José Hiram Soltren jsoltren at nvidia.com
Fri Dec 12 08:29:33 PST 2014


Thanks Christian,

On 12/12/2014 04:15 AM, Christian König wrote:
> LGTM as well. Patch is Reviewed-by: Christian König <christian.koenig at amd.com>
> 
> What are your plans for other H264 features? Like higher bit depths, SVC, MVC,
> etc...?

We should add them. Patches welcome. I'm looking to add features such as slice
offsets for error concealment and additional profiles and bit depths to bring
us closer to the current H.264 specification. I do not have a time frame for
these changes.

My two cents: Ideally the VDPAU header is as close to the spec as possible and
provides enough information for an arbitrary decoder to be able to perform the
decoding process. It strives to be a generic frame level (or field level or VCL
NAL unit level) API that hides much of the complexity of the decoding process
from clients.

Realistically, the current VDPAU interface has been shaped in part by the
hardware capabilities of NVIDIA GPUs.

Suggestions for improvement are always welcome.

Thanks,
--José

> Regards,
> Christian.
> 
> Am 11.12.2014 um 22:09 schrieb ksreenivasan at nvidia.com:
>> From: Karthikeyan Sreenivasan <ksreenivasan at nvidia.com>
>>
>> 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.
>>
>> vdpau | nvpublic
>> ---
>>   include/vdpau/vdpau.h |   35 +++++++++++++++++++++++++++++++++++
>>   1 file changed, 35 insertions(+)
>>
>> diff --git a/include/vdpau/vdpau.h b/include/vdpau/vdpau.h
>> index 41bdf2d..266c1e4 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,11 @@ 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 +2855,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
> 
> _______________________________________________
> VDPAU mailing list
> VDPAU at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/vdpau


More information about the VDPAU mailing list