[FFmpeg-devel] [PATCH 02/41] avcodec/mjpegenc: Remove nonsense assert

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Sun Jan 30 08:27:10 EET 2022


Writing optimal huffman tables is incompatible with using slices
and hence commit 884506dfe2e29a5b2bd2905ca4f17e277e32acb1
that added writing optimal huffman tables also added an assert
that the slice context count is always 1.
Yet this was always wrong: a) The MJPEG-encoder has (and had)
the AV_CODEC_CAP_SLICE_THREADS capability, so asserting that
it always uses one slice context is incorrect.
b) This commit did not add any proper checks that ensured that
optimal huffman tables are never used together with multiple slices.
This only happened with 03eb0515c12637dbd20c2e3ca8503d7b47cf583a.
c) This assert is at the wrong place: ff_mjpeg_encode_init() is
called before the actual slice_context_count is set. This is
the reason why this assert was never triggered.

Therefore this commit removes this assert.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
---
 libavcodec/mjpegenc.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/libavcodec/mjpegenc.c b/libavcodec/mjpegenc.c
index d15b9ece50..022f171c9e 100644
--- a/libavcodec/mjpegenc.c
+++ b/libavcodec/mjpegenc.c
@@ -293,8 +293,6 @@ av_cold int ff_mjpeg_encode_init(MpegEncContext *s)
 
     s->mjpeg_ctx = m;
 
-    av_assert0(s->slice_context_count == 1);
-
     if (s->codec_id == AV_CODEC_ID_AMV || (s->avctx->active_thread_type & FF_THREAD_SLICE))
         m->huffman = HUFFMAN_TABLE_DEFAULT;
 
-- 
2.32.0



More information about the ffmpeg-devel mailing list