[VDPAU] [PATCH 2/3] vdpau: define some more H.264/AVC decoding profiles

José Hiram Soltren jsoltren at nvidia.com
Tue Oct 28 10:47:40 PDT 2014


As an immediate fix this seems okay to me. These names are straight out of the
H.264 spec and well defined.

I know Wikipedia is not necessarily authoritative but for now let's assume that
it does a reasonable job of expressing the features in the H264 spec(s):

https://en.wikipedia.org/wiki/H.264/MPEG-4_AVC#Profiles

A future direction that I would like to see for the VDPAU API is:

- continuing the specification defined names for profiles as names for
VDP_DECODER_PROFILES, but including all of the profiles defined by the spec and/or
- allowing video player applications to pass into VdpDecoderCreate, a
(codec-specific, versioned) struct or other field with a number of flags for
actual codec features in use.

So ideally, a video player could ask the VDPAU API, "I have a video stream with
these particular features, can I decode it" and the API could return a Boolean
answer. This would allow finer granularity than the current "does this
VdpDevice support this VdpDecoderProfile?" implementation of
VdpDecoderQueryCapabilities.

At least with NVIDIA's current VDPAU implementation, the actual capabilities of
the hardware video decoder and the related software stack don't always map
perfectly to an exact profile and/or level. For example, we support some, but
not all, of the features of the H.264 High 4:4:4 Predictive Profile on more
recent hardware. (Let's avoid discussion of this particular topic on this
thread; patches are forthcoming.)

Again, this is progress, and I'm not against these changes at all. So:

Reviewed-by: José Hiram Soltren <jsoltren at nvidia.com>

On 10/28/2014 10:28 AM, Rémi Denis-Courmont wrote:
> From: Rémi Denis-Courmont <remid at nvidia.com>
> 
> Signed-off-by: Rémi Denis-Courmont <remid at nvidia.com>
> ---
>  include/vdpau/vdpau.h | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/include/vdpau/vdpau.h b/include/vdpau/vdpau.h
> index 4abb934..4444de3 100644
> --- a/include/vdpau/vdpau.h
> +++ b/include/vdpau/vdpau.h
> @@ -2437,6 +2437,14 @@ typedef uint32_t VdpDecoderProfile;
>  #define VDP_DECODER_PROFILE_DIVX5_HOME_THEATER          ((VdpDecoderProfile)20)
>  /** \hideinitializer */
>  #define VDP_DECODER_PROFILE_DIVX5_HD_1080P              ((VdpDecoderProfile)21)
> +/** \hideinitializer */
> +#define VDP_DECODER_PROFILE_H264_CONSTRAINED_BASELINE   ((VdpDecoderProfile)22)
> +/** \hideinitializer */
> +#define VDP_DECODER_PROFILE_H264_EXTENDED               ((VdpDecoderProfile)23)
> +/** \hideinitializer */
> +#define VDP_DECODER_PROFILE_H264_PROGRESSIVE_HIGH       ((VdpDecoderProfile)24)
> +/** \hideinitializer */
> +#define VDP_DECODER_PROFILE_H264_CONSTRAINED_HIGH       ((VdpDecoderProfile)25)
>  
>  /** \hideinitializer */
>  #define VDP_DECODER_LEVEL_MPEG1_NA 0
> 


More information about the VDPAU mailing list