diff --git a/video/decode/vd_lavc.c b/video/decode/vd_lavc.c index 2106dcb56e..0c87005ddd 100644 --- a/video/decode/vd_lavc.c +++ b/video/decode/vd_lavc.c @@ -659,8 +659,11 @@ static void reinit(struct mp_filter *vd) bool use_hwdec = ctx->use_hwdec; init_avctx(vd); - if (!ctx->avctx && use_hwdec) - force_fallback(vd); + if (!ctx->avctx && use_hwdec) { + do { + force_fallback(vd); + } while (!ctx->avctx); + } } static void init_avctx(struct mp_filter *vd)