diff mbox series

[FFmpeg-devel] lavc/d3d12va: Improve behaviour on missing decoder support

Message ID fcf65f99-1c59-42ec-8895-7f1caabb4616@jkqxz.net
State New
Headers show
Series [FFmpeg-devel] lavc/d3d12va: Improve behaviour on missing decoder support | expand

Checks

Context Check Description
andriy/configure_x86 warning Failed to apply patch
yinshiyou/configure_loongarch64 warning Failed to apply patch

Commit Message

Mark Thompson Feb. 4, 2024, 1:24 p.m. UTC
Distinguish between a decoder being entirely missing and a decoder which
requires features which are not present in the incomplete implementation
in libavcodec and therefore can't be used.
---
  libavcodec/d3d12va_decode.c | 12 ++++++++----
  1 file changed, 8 insertions(+), 4 deletions(-)

Comments

Wu Jianhua Feb. 4, 2024, 4:57 p.m. UTC | #1
> 发件人: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> 代表 Mark Thompson <sw@jkqxz.net>
> 发送时间: 2024年2月4日 5:24
> 收件人: FFmpeg development discussions and patches
> 主题: [FFmpeg-devel] [PATCH] lavc/d3d12va: Improve behaviour on missing decoder support
> 
> Distinguish between a decoder being entirely missing and a decoder which
> requires features which are not present in the incomplete implementation
> in libavcodec and therefore can't be used.
> ---
>   libavcodec/d3d12va_decode.c | 12 ++++++++----
>   1 file changed, 8 insertions(+), 4 deletions(-)

LGTM. Thanks.
Mark Thompson Feb. 4, 2024, 7:20 p.m. UTC | #2
On 04/02/2024 16:57, Wu Jianhua wrote:
>> 发件人: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> 代表 Mark Thompson <sw@jkqxz.net>
>> 发送时间: 2024年2月4日 5:24
>> 收件人: FFmpeg development discussions and patches
>> 主题: [FFmpeg-devel] [PATCH] lavc/d3d12va: Improve behaviour on missing decoder support
>>
>> Distinguish between a decoder being entirely missing and a decoder which
>> requires features which are not present in the incomplete implementation
>> in libavcodec and therefore can't be used.
>> ---
>>    libavcodec/d3d12va_decode.c | 12 ++++++++----
>>    1 file changed, 8 insertions(+), 4 deletions(-)
> 
> LGTM. Thanks.
Applied.  Thank you!.

- Mark
diff mbox series

Patch

diff --git a/libavcodec/d3d12va_decode.c b/libavcodec/d3d12va_decode.c
index f678b6f483..9bb8db1690 100644
--- a/libavcodec/d3d12va_decode.c
+++ b/libavcodec/d3d12va_decode.c
@@ -239,10 +239,14 @@  static int d3d12va_create_decoder(AVCodecContext *avctx)

      DX_CHECK(ID3D12VideoDevice_CheckFeatureSupport(device_hwctx->video_device, D3D12_FEATURE_VIDEO_DECODE_SUPPORT,
                                                     &feature, sizeof(feature)));
-    if (!(feature.SupportFlags & D3D12_VIDEO_DECODE_SUPPORT_FLAG_SUPPORTED) ||
-        !(feature.DecodeTier >= D3D12_VIDEO_DECODE_TIER_2)) {
-        av_log(avctx, AV_LOG_ERROR, "D3D12 decoder doesn't support on this device\n");
-        return AVERROR(EINVAL);
+    if (!(feature.SupportFlags & D3D12_VIDEO_DECODE_SUPPORT_FLAG_SUPPORTED)) {
+        av_log(avctx, AV_LOG_ERROR, "D3D12 video decode is not supported on this device.\n");
+        return AVERROR(ENOSYS);
+    }
+    if (!(feature.DecodeTier >= D3D12_VIDEO_DECODE_TIER_2)) {
+        av_log(avctx, AV_LOG_ERROR, "D3D12 video decode on this device requires tier %d support, "
+               "but it is not implemented.\n", feature.DecodeTier);
+        return AVERROR_PATCHWELCOME;
      }

      desc = (D3D12_VIDEO_DECODER_DESC) {