[VDPAU] [PATCH] Change HEVC profile numbers to 100 through 104

José Hiram Soltren jsoltren at nvidia.com
Tue Mar 17 09:14:14 PDT 2015


Thanks Christian. Inline below.

On 03/17/2015 03:35 AM, Christian König wrote:
> For the case at hand I think that this is indeed the best possible solution.

I concur. Though - we at NVIDIA do not know of any other hardware
implementations that support more tile rows or columns.

Note that the current version of the DXVA HEVC API specifies:

USHORT	column_width_minus1[19];
USHORT	row_height_minus1[21];

I doubt we will see much more than this in practice. Much of the video decoding
hardware that VDPAU may support is designed to be compatible with DXVA.

> But we shouldn't let that become breaking backward compatibility a standard
> case. It's a really good feature of VDPAU not to do so.

I agree here as well.

Thanks,
--José

> Regards,
> Christian.
> 
> On 16.03.2015 20:41, José Hiram Soltren wrote:
>> This change itself looks fine to me. This must only change once before the next
>> VDPAU release.
>>
>> This also brings up two more points which will set precedents
>>
>> 1. Instead of bumping the API major version number for a VdpPictureInfo change,
>> we are instead changing the VdpDecoderProfile version to cause a decoder
>> initialization failure. I think this is a clever and appropriate idea, are
>> there any other opinions?
>>
>> 2. VdpDecoderProfile is a uint32_t. I propose that we carve out ranges of 100
>> for individual codecs in the future. As a concrete example, all HEVC
>> VdpDecoderProfile values must fit in the range of 100-199, and 200-299 is
>> reserved for a future codec.
>>
>> I prefer to reserve integer ranges as 100 seems like plenty of profiles for a
>> particular codec and that gives floor((2^32-1)/100) possible codecs.
>>
>> Reviewed-by: José Hiram Soltren <jsoltren at nvidia.com>
>>
>> On 03/16/2015 02:19 PM, Aaron Plattner wrote:
>>> libvdpau 1.0 contained an error in its HEVC picture info structures.  Rather
>>> than try to maintain backward compatibility with the incorrect definition, the
>>> existing VdpPictureInfoHEVC was updated to contain the fixed definition.  Since
>>> the new structure is no longer compatible with the ABI defined by libvdpau 1.0,
>>> change the profile numbers for HEVC so that software built against the
>>> incorrect
>>> definition will not recognize the new profiles.
>>>
>>> Signed-off-by: Aaron Plattner <aplattner at nvidia.com>
>>> ---
>>>   include/vdpau/vdpau.h | 10 +++++-----
>>>   1 file changed, 5 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/include/vdpau/vdpau.h b/include/vdpau/vdpau.h
>>> index a0c4dafb15ec..e6803f729080 100644
>>> --- a/include/vdpau/vdpau.h
>>> +++ b/include/vdpau/vdpau.h
>>> @@ -2485,15 +2485,15 @@ typedef uint32_t VdpDecoderProfile;
>>>   #define VDP_DECODER_PROFILE_H264_HIGH_444_PREDICTIVE   
>>> ((VdpDecoderProfile)26)
>>>   /** \hideinitializer */
>>>   /** \brief MPEG-H Part 2 == H.265 == HEVC */
>>> -#define VDP_DECODER_PROFILE_HEVC_MAIN                  
>>> ((VdpDecoderProfile)50)
>>> +#define VDP_DECODER_PROFILE_HEVC_MAIN                  
>>> ((VdpDecoderProfile)100)
>>>   /** \hideinitializer */
>>> -#define VDP_DECODER_PROFILE_HEVC_MAIN_10               
>>> ((VdpDecoderProfile)51)
>>> +#define VDP_DECODER_PROFILE_HEVC_MAIN_10               
>>> ((VdpDecoderProfile)101)
>>>   /** \hideinitializer */
>>> -#define VDP_DECODER_PROFILE_HEVC_MAIN_STILL            
>>> ((VdpDecoderProfile)52)
>>> +#define VDP_DECODER_PROFILE_HEVC_MAIN_STILL            
>>> ((VdpDecoderProfile)102)
>>>   /** \hideinitializer */
>>> -#define VDP_DECODER_PROFILE_HEVC_MAIN_12               
>>> ((VdpDecoderProfile)53)
>>> +#define VDP_DECODER_PROFILE_HEVC_MAIN_12               
>>> ((VdpDecoderProfile)103)
>>>   /** \hideinitializer */
>>> -#define VDP_DECODER_PROFILE_HEVC_MAIN_444              
>>> ((VdpDecoderProfile)54)
>>> +#define VDP_DECODER_PROFILE_HEVC_MAIN_444              
>>> ((VdpDecoderProfile)104)
>>>     /** \hideinitializer */
>>>   #define VDP_DECODER_LEVEL_MPEG1_NA 0
>>>
>> _______________________________________________
>> VDPAU mailing list
>> VDPAU at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/vdpau
> 
> _______________________________________________
> VDPAU mailing list
> VDPAU at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/vdpau


More information about the VDPAU mailing list