diff --git a/libavcodec/d3d12va_vc1.c b/libavcodec/d3d12va_vc1.c index 3aa2743107..110926be82 100644 --- a/libavcodec/d3d12va_vc1.c +++ b/libavcodec/d3d12va_vc1.c @@ -164,12 +164,19 @@ static int d3d12va_vc1_end_frame(AVCodecContext *avctx) static int d3d12va_vc1_decode_init(AVCodecContext *avctx) { + int ret; D3D12VADecodeContext *ctx = D3D12VA_DECODE_CONTEXT(avctx); - ctx->cfg.DecodeProfile = D3D12_VIDEO_DECODE_PROFILE_VC1; + ctx->cfg.DecodeProfile = D3D12_VIDEO_DECODE_PROFILE_VC1_D2010; ctx->max_num_ref = 3; - return ff_d3d12va_decode_init(avctx); + ret = ff_d3d12va_decode_init(avctx); + if (ret < 0) { + ctx->cfg.DecodeProfile = D3D12_VIDEO_DECODE_PROFILE_VC1; + ret = ff_d3d12va_decode_init(avctx); + } + + return ret; } #if CONFIG_WMV3_D3D12VA_HWACCEL