[VDPAU] [PATCH] Add a progressive frame flag to VdpVideoSurfaces.

Stephen Warren swarren at nvidia.com
Tue Sep 15 13:22:38 PDT 2015


Jose Soltren wrote at Tuesday, September 15, 2015 12:54 PM:
> This change adds two top level functions to the VDPAU API:
> 
>     VdpVideoMixerSetProgressive
>     VdpVideoMixerGetProgressive

It seems to add VdpVideoSurface[GS]etProgressive.

Does it make sense to introduce a VdpVideoSurfaceSetAttributeValues()
instead to avoid a proliferation of APIs, and to be consistent with
other object types?

> Next generation codecs - such as H.265/HEVC - do not support
> interlaced content natively. Rather, they leave it to imple-
> mentations to decide the correct behavior for handling legacy
> interlaced content.
> 
> Prior to the introduction of such codecs, this specification
> left the designation of a particular VdpVideoSurface as a
> _TOP_FIELD, _BOTTOM_FIELD, or _FRAME to the enumeration
> VdpVideoMixerPictureStructure, passed to VdpVideoMixerRender.
> It is possible, and permitted by this API specification, for
> an implementation to set internal state on the backing store
> of a VdpVideoSurface when handling a call to VdpVideoMixerRender.
> 
> Not all use cases of a VdpVideoSurface will involve a trip
> through a call to VdpVideoMixerRender. It is a legal use of the
> VDPAU API to access a VdpVideoSurface directly using
> VdpVideoSurfaceGetBitsYCbCr and VdpVideoSurfacePutBitsYCbCr.
> In such a situation, it is helpful to be able to specify,
> explicitly, and from outside of the implementation, whether
> a VdpVideoSurface contains either one full frame, or two
> half frames.

How does this interact with the surface layouts exposed via GL/CUDA video
surface interop?

> diff --git a/include/vdpau/vdpau.h b/include/vdpau/vdpau.h

> +typedef VdpStatus VdpVideoSurfaceSetProgressive(
> +    VdpVideoSurface      surface,
> +    VdpBool *            is_progressive

I think that only needs to be a pointer for the Get API?

-- 
nvpublic



More information about the VDPAU mailing list