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 |
Context | Check | Description |
---|---|---|
andriy/configure_x86 | warning | Failed to apply patch |
yinshiyou/configure_loongarch64 | warning | Failed to apply patch |
> 发件人: 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.
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 --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) {