PR #20720 opened by cgutman URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20720 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20720.patch
194414f introduced a regression by skipping the call to ff_get_format() if pix_fmt was already set by the user. In this scenario, critical hwaccel init code in ff_get_format() is never called, which causes ff_thread_get_buffer() to fail. Signed-off-by: Cameron Gutman <[email protected]> >From 9860d4b28cde307b892da817015623233a31d7b1 Mon Sep 17 00:00:00 2001 From: Cameron Gutman <[email protected]> Date: Sun, 19 Oct 2025 16:48:28 -0500 Subject: [PATCH] avcodec/av1dec: fix decoding with pix_fmt set 194414f introduced a regression by skipping the call to ff_get_format() if pix_fmt was already set by the user. In this scenario, critical hwaccel init code in ff_get_format() is never called, which causes ff_thread_get_buffer() to fail. Signed-off-by: Cameron Gutman <[email protected]> --- libavcodec/av1dec.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/libavcodec/av1dec.c b/libavcodec/av1dec.c index d4ceb5ef09..29e03e879d 100644 --- a/libavcodec/av1dec.c +++ b/libavcodec/av1dec.c @@ -656,11 +656,12 @@ static int get_pixel_format(AVCodecContext *avctx) *fmtp++ = pix_fmt; *fmtp = AV_PIX_FMT_NONE; - for (int i = 0; pix_fmts[i] != pix_fmt; i++) - if (pix_fmts[i] == avctx->pix_fmt) { - s->pix_fmt = pix_fmt; - return 1; - } + if (s->pix_fmt != AV_PIX_FMT_NONE) + for (int i = 0; pix_fmts[i] != pix_fmt; i++) + if (pix_fmts[i] == avctx->pix_fmt) { + s->pix_fmt = pix_fmt; + return 1; + } ret = ff_get_format(avctx, pix_fmts); -- 2.49.1 _______________________________________________ ffmpeg-devel mailing list -- [email protected] To unsubscribe send an email to [email protected]
