[FFmpeg-devel] [PATCH 25/47] avcodec/mpegvideo: Defer init of enc slice ctxs in ff_mpv_common_init()
Andreas Rheinhardt
ffmpegagent at gmail.com
Sun Jun 15 19:54:16 EEST 2025
From: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
This will allow to perform initializations between ff_mpv_common_init()
and ff_mpv_init_duplicate_contexts() that will be automatically
copied to the slice contexts.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
---
libavcodec/mpegvideo.c | 8 +++++---
libavcodec/mpegvideo_enc.c | 9 ++++++---
2 files changed, 11 insertions(+), 6 deletions(-)
diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c
index e329771b38..f6e997193d 100644
--- a/libavcodec/mpegvideo.c
+++ b/libavcodec/mpegvideo.c
@@ -431,9 +431,11 @@ av_cold int ff_mpv_common_init(MpegEncContext *s)
s->slice_context_count = nb_slices;
// if (s->width && s->height) {
- ret = ff_mpv_init_duplicate_contexts(s);
- if (ret < 0)
- goto fail;
+ if (!s->encoding) {
+ ret = ff_mpv_init_duplicate_contexts(s);
+ if (ret < 0)
+ goto fail;
+ }
// }
return 0;
diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c
index af1e77cfec..1fae5fbeb0 100644
--- a/libavcodec/mpegvideo_enc.c
+++ b/libavcodec/mpegvideo_enc.c
@@ -1023,9 +1023,9 @@ av_cold int ff_mpv_encode_init(AVCodecContext *avctx)
m->lmin = m->lmax;
}
- /* ff_mpv_common_init() will copy (memdup) the contents of the main slice
- * to the slice contexts, so we initialize various fields of it
- * before calling ff_mpv_common_init(). */
+ /* ff_mpv_init_duplicate_contexts() will copy (memdup) the contents of the
+ * main slice to the slice contexts, so we initialize various fields of it
+ * before calling ff_mpv_init_duplicate_contexts(). */
s->parent = m;
ff_mpv_idct_init(&s->c);
init_unquantize(s, avctx);
@@ -1057,6 +1057,9 @@ av_cold int ff_mpv_encode_init(AVCodecContext *avctx)
s->c.slice_ctx_size = sizeof(*s);
ret = ff_mpv_common_init(&s->c);
+ if (ret < 0)
+ return ret;
+ ret = ff_mpv_init_duplicate_contexts(&s->c);
if (ret < 0)
return ret;
--
ffmpeg-codebot
More information about the ffmpeg-devel
mailing list