vdpau: add helper for surface chroma type and size

Since the VDPAU pixel format does not distinguish between different
VDPAU video surface chroma types, we need another way to pass this
data to the application.

Originally VDPAU in libavcodec only supported decoding to 8-bits YUV
with 4:2:0 chroma sampling. Correspondingly, applications assumed that
libavcodec expected VDP_CHROMA_TYPE_420 video surfaces for output.
However some of the new HEVC profiles proposed for addition to VDPAU
would require different depth and/or sampling:
http://lists.freedesktop.org/archives/vdpau/2014-July/000167.html
...as would lossless AVC profiles:
http://lists.freedesktop.org/archives/vdpau/2014-November/000241.html

To preserve backward binary compatibility with existing applications,
a new av_vdpau_bind_context() flag is introduced in a further change.

Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
This commit is contained in:
Rémi Denis-Courmont
2014-12-19 19:15:09 +02:00
committed by Anton Khirnov
parent 6c99c92a42
commit c220a60f92
4 changed files with 71 additions and 5 deletions

View File

@@ -13,6 +13,9 @@ libavutil: 2014-08-09
API changes, most recent first:
201x-xx-xx - xxxxxxx - lavc 56.10.0 - vdpau.h
Add av_vdpau_get_surface_parameters().
201x-xx-xx - xxxxxxx - lavc 56.9.0 - avcodec.h
Add AV_HWACCEL_FLAG_ALLOW_HIGH_DEPTH flag to av_vdpau_bind_context().