This is an automated email from the git hooks/post-receive script.
Git pushed a commit to branch master
in repository ffmpeg.
The following commit(s) were added to refs/heads/master by this push:
new d3953237d1 avcodec/h264_slice: don't force ff_get_format
unconditionally after flush
d3953237d1 is described below
commit d3953237d127f82889d27d1a5094cc32fc09d328
Author: Zhao Zhili <[email protected]>
AuthorDate: Fri Nov 14 23:46:04 2025 +0800
Commit: Zhao Zhili <[email protected]>
CommitDate: Fri Dec 5 13:54:08 2025 +0000
avcodec/h264_slice: don't force ff_get_format unconditionally after flush
h->context_initialized is zero after flush, which triggers call to
ff_get_format unconditionally. ff_get_format can be heavy with
ff_hwaccel_uninit and hwaccel_init. For example, it takes 20 ms on
macOS with videotoolbox. ff_get_format should not be called if
nothing changed. ff_get_format is guarantee to be called at the
first time and when video information changed with
(must_reinit || needs_reinit).
Fix #20760.
---
libavcodec/h264_slice.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c
index d91f04fa67..69f70c90bb 100644
--- a/libavcodec/h264_slice.c
+++ b/libavcodec/h264_slice.c
@@ -1150,7 +1150,7 @@ static int h264_init_ps(H264Context *h, const
H264SliceContext *sl, int first_sl
if (flush_changes)
ff_h264_flush_change(h);
- if ((ret = get_pixel_format(h, 1)) < 0)
+ if ((ret = get_pixel_format(h, must_reinit || needs_reinit)) < 0)
return ret;
h->avctx->pix_fmt = ret;
_______________________________________________
ffmpeg-cvslog mailing list -- [email protected]
To unsubscribe send an email to [email protected]