Add new frame and field mode chroma types. Add VdpDecoderQueryProfileCapability API
Chroma types :
VDP_CHROMA_TYPE_420
VDP_CHROMA_TYPE_422
VDP_CHROMA_TYPE_444
already exist, surfaces of these types could be transparently used with
any VdpVideoDecoder. The implementation is free to internally convert
the surface between frame/field(NV12/NV24) as required by
VdpVideoDecoder operation. The interop API would allow registration of
these surfaces for either field or frame based interop.
This change adds new enums for frame and field chroma types:
VDP_CHROMA_TYPE_420_FIELD
VDP_CHROMA_TYPE_422_FIELD
VDP_CHROMA_TYPE_444_FIELD
VDP_CHROMA_TYPE_420_FRAME
VDP_CHROMA_TYPE_422_FRAME
VDP_CHROMA_TYPE_444_FRAME
So that frame/field based video surfaces can be created and exposed via
VDPAU OpenGL interop.
The new chroma types could only be used by a VdpVideoDecoder that
supports output to field/frame surfaces respectively. Internal surface
convertion is not allowed. The interop API would allow registration
of these surfaces to field/frame based interop only. This will avoid
implicit conversions and allocation of shadow surface.
Existing VdpDecoderQueryCapabilities() returns maxlevel, maxwidth,
height and macro blocks for a given decoder profile. Since it is not
possible to extend this API to return more capabilities, adding new API
VdpDecoderQueryProfileCapability(). In this change, new API will be able
to return supported picture structure along with other existing
capabilities.
VdpDecoderQueryProfileCapability() can be extended in future to query
newer capabilities exposed. VdpDecoderCapabilities defines the
capabilities that can be queried.
This function returns queried capability of the requested profile on the
underlying h/w. By design, only one capability can be queried at a time.
Signed-off-by:
Manoj Bonda <mbonda@nvidia.com>
Signed-off-by:
Aaron Plattner <aplattner@nvidia.com>
Please register or sign in to comment