summaryrefslogtreecommitdiff
path: root/libavcodec/vdpau.c
diff options
context:
space:
mode:
authorManojGuptaBonda <mbonda@nvidia.com>2020-06-27 19:04:22 +0530
committerPhilip Langdale <philipl@overt.org>2020-07-09 20:54:11 -0700
commited5ee047222056c76e3a9b0671c3ab93c9b992a5 (patch)
tree144c0b44443ee8ff7ffaadd9cc60f451ba8662b5 /libavcodec/vdpau.c
parent3c821c4ad3a11e974294613b3f4873028c6f2bc3 (diff)
avcodec/hevcdec: Add VDPAU to list of supported formats
Added VDPAU to list of supported formats for HEVC10 and 12 bit formats also added 42010 bit to surface_parameters and new VDP chroma formats to VDPAUPixFmtMaps Add HEVC 420 10/12 Bit and 444 10/12 Bit support for VDPAU YUV444P10 is defined as the 444 surface with 10bit valid data in LSBs but H/w returns Data in MSBs Hence if we map output as YUV444p16 it is filtering out the LSB to convert to p10 format. Signed-off-by: Philip Langdale <philipl@overt.org>
Diffstat (limited to 'libavcodec/vdpau.c')
-rw-r--r--libavcodec/vdpau.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/libavcodec/vdpau.c b/libavcodec/vdpau.c
index 167f06d7ae..fa10905c75 100644
--- a/libavcodec/vdpau.c
+++ b/libavcodec/vdpau.c
@@ -83,6 +83,8 @@ int av_vdpau_get_surface_parameters(AVCodecContext *avctx,
switch (avctx->sw_pix_fmt) {
case AV_PIX_FMT_YUV420P:
case AV_PIX_FMT_YUVJ420P:
+ case AV_PIX_FMT_YUV420P10:
+ case AV_PIX_FMT_YUV420P12:
t = VDP_CHROMA_TYPE_420;
w = (w + 1) & ~1;
h = (h + 3) & ~3;
@@ -95,6 +97,8 @@ int av_vdpau_get_surface_parameters(AVCodecContext *avctx,
break;
case AV_PIX_FMT_YUV444P:
case AV_PIX_FMT_YUVJ444P:
+ case AV_PIX_FMT_YUV444P10:
+ case AV_PIX_FMT_YUV444P12:
t = VDP_CHROMA_TYPE_444;
h = (h + 1) & ~1;
break;