summaryrefslogtreecommitdiff
path: root/libavcodec/hevc.c
diff options
context:
space:
mode:
authorHendrik Leppkes <h.leppkes@gmail.com>2016-01-30 17:10:56 +0100
committerHendrik Leppkes <h.leppkes@gmail.com>2016-02-15 12:33:50 +0100
commitccb94789e2968329947f1c2e00d019f387f9c409 (patch)
tree53477013d2dca5e3c363f78102fb901166f53c76 /libavcodec/hevc.c
parent295de3efc53efa3945c3116b5a910b1464632358 (diff)
hevc: support Main10 decoding through dxva2
Diffstat (limited to 'libavcodec/hevc.c')
-rw-r--r--libavcodec/hevc.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/libavcodec/hevc.c b/libavcodec/hevc.c
index 203f90ab2e..0d53a33d53 100644
--- a/libavcodec/hevc.c
+++ b/libavcodec/hevc.c
@@ -347,7 +347,9 @@ static int set_sps(HEVCContext *s, const HEVCSPS *sps, enum AVPixelFormat pix_fm
export_stream_params(s->avctx, &s->ps, sps);
- if (sps->pix_fmt == AV_PIX_FMT_YUV420P || sps->pix_fmt == AV_PIX_FMT_YUVJ420P) {
+ switch (sps->pix_fmt) {
+ case AV_PIX_FMT_YUV420P:
+ case AV_PIX_FMT_YUVJ420P:
#if CONFIG_HEVC_DXVA2_HWACCEL
*fmt++ = AV_PIX_FMT_DXVA2_VLD;
#endif
@@ -360,6 +362,15 @@ static int set_sps(HEVCContext *s, const HEVCSPS *sps, enum AVPixelFormat pix_fm
#if CONFIG_HEVC_VDPAU_HWACCEL
*fmt++ = AV_PIX_FMT_VDPAU;
#endif
+ break;
+ case AV_PIX_FMT_YUV420P10:
+#if CONFIG_HEVC_DXVA2_HWACCEL
+ *fmt++ = AV_PIX_FMT_DXVA2_VLD;
+#endif
+#if CONFIG_HEVC_D3D11VA_HWACCEL
+ *fmt++ = AV_PIX_FMT_D3D11VA_VLD;
+#endif
+ break;
}
if (pix_fmt == AV_PIX_FMT_NONE) {