diff mbox series

[FFmpeg-devel,v4,9/9] avcodec/d3d12va_hevc: enable allow_profile_mismatch flag for d3d12va msp profile

Message ID 20230719100202.1584-9-tong1.wu@intel.com
State New
Headers show
Series [FFmpeg-devel,v4,1/9] libavutil: add hwcontext_d3d12va and AV_PIX_FMT_D3D12 | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Wu, Tong1 July 19, 2023, 10:02 a.m. UTC
Same as d3d11va, this flag enables main still picture profile for
d3d12va. User should add this flag when decoding main still picture
profile.

Signed-off-by: Tong Wu <tong1.wu@intel.com>
---
 libavcodec/d3d12va_hevc.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)
diff mbox series

Patch

diff --git a/libavcodec/d3d12va_hevc.c b/libavcodec/d3d12va_hevc.c
index 894fa73d60..a56d038a40 100644
--- a/libavcodec/d3d12va_hevc.c
+++ b/libavcodec/d3d12va_hevc.c
@@ -181,8 +181,13 @@  static int d3d12va_hevc_decode_init(AVCodecContext *avctx)
         break;
 
     case FF_PROFILE_HEVC_MAIN_STILL_PICTURE:
-        av_log(avctx, AV_LOG_ERROR, "D3D12 doesn't support PROFILE_HEVC_MAIN_STILL_PICTURE!\n");
-        return AVERROR(EINVAL);
+        if (avctx->hwaccel_flags & AV_HWACCEL_FLAG_ALLOW_PROFILE_MISMATCH) {
+            ctx->cfg.DecodeProfile = D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN;
+            break;
+        } else {
+            av_log(avctx, AV_LOG_ERROR, "D3D12 doesn't support PROFILE_HEVC_MAIN_STILL_PICTURE!\n");
+            return AVERROR(EINVAL);
+        }
 
     case FF_PROFILE_HEVC_MAIN:
     default: