PR #22483 opened by Ramiro Polla (ramiro)
URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/22483
Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/22483.patch

(cherry picked from commit 72167e5150dfa01570118de9381f847b7e5aaf74)


>From 00186719a132da993f8a5c162ac01cda6f734bff Mon Sep 17 00:00:00 2001
From: Ramiro Polla <[email protected]>
Date: Mon, 19 Jan 2026 18:24:30 +0100
Subject: [PATCH] avcodec/mjpegdec: deprecate extern_huff option

(cherry picked from commit 72167e5150dfa01570118de9381f847b7e5aaf74)
---
 libavcodec/mjpegdec.c      | 8 +++++++-
 libavcodec/mjpegdec.h      | 2 ++
 libavcodec/version_major.h | 2 ++
 3 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c
index 9c8b846a76..f037d9f7aa 100644
--- a/libavcodec/mjpegdec.c
+++ b/libavcodec/mjpegdec.c
@@ -147,6 +147,7 @@ av_cold int ff_mjpeg_decode_init(AVCodecContext *avctx)
     if ((ret = init_default_huffman_tables(s)) < 0)
         return ret;
 
+#if FF_API_MJPEG_EXTERN_HUFF
     if (s->extern_huff && avctx->extradata) {
         av_log(avctx, AV_LOG_INFO, "using external huffman table\n");
         bytestream2_init(&s->gB, avctx->extradata, avctx->extradata_size);
@@ -157,6 +158,7 @@ av_cold int ff_mjpeg_decode_init(AVCodecContext *avctx)
                 return ret;
         }
     }
+#endif
     if (avctx->field_order == AV_FIELD_BB) { /* quicktime icefloe 019 */
         s->interlace_polarity = 1;           /* bottom field first */
         av_log(avctx, AV_LOG_DEBUG, "bottom field first\n");
@@ -2953,18 +2955,22 @@ static av_cold void decode_flush(AVCodecContext *avctx)
 }
 
 #if CONFIG_MJPEG_DECODER
+#if FF_API_MJPEG_EXTERN_HUFF
 #define OFFSET(x) offsetof(MJpegDecodeContext, x)
 #define VD AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_DECODING_PARAM
 static const AVOption options[] = {
     { "extern_huff", "Use external huffman table.",
-      OFFSET(extern_huff), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VD },
+      OFFSET(extern_huff), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VD | 
AV_OPT_FLAG_DEPRECATED },
     { NULL },
 };
+#endif
 
 static const AVClass mjpegdec_class = {
     .class_name = "MJPEG decoder",
     .item_name  = av_default_item_name,
+#if FF_API_MJPEG_EXTERN_HUFF
     .option     = options,
+#endif
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
diff --git a/libavcodec/mjpegdec.h b/libavcodec/mjpegdec.h
index 29fe5db03e..19ff4436e3 100644
--- a/libavcodec/mjpegdec.h
+++ b/libavcodec/mjpegdec.h
@@ -144,7 +144,9 @@ typedef struct MJpegDecodeContext {
     uint16_t (*ljpeg_buffer)[4];
     unsigned int ljpeg_buffer_size;
 
+#if FF_API_MJPEG_EXTERN_HUFF
     int extern_huff;
+#endif
     AVExifMetadata exif_metadata;
 
     AVStereo3D *stereo3d; ///!< stereoscopic information (cached, since it is 
read before frame allocation)
diff --git a/libavcodec/version_major.h b/libavcodec/version_major.h
index 6c652374dd..0e6f460324 100644
--- a/libavcodec/version_major.h
+++ b/libavcodec/version_major.h
@@ -49,6 +49,8 @@
 #define FF_API_PARSER_PRIVATE      (LIBAVCODEC_VERSION_MAJOR < 63)
 #define FF_API_PARSER_CODECID      (LIBAVCODEC_VERSION_MAJOR < 63)
 
+#define FF_API_MJPEG_EXTERN_HUFF   (LIBAVCODEC_VERSION_MAJOR < 63)
+
 // reminder to remove the OMX encoder on next major bump
 #define FF_CODEC_OMX               (LIBAVCODEC_VERSION_MAJOR < 63)
 // reminder to remove Sonic Lossy/Lossless encoders on next major bump
-- 
2.52.0

_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to