Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
* [FFmpeg-devel] [PR] avcodec/mjpegdec: remove start_code field from MJpegDecodeContext (PR #21405)
@ 2026-01-07  4:06 Ramiro Polla via ffmpeg-devel
  0 siblings, 0 replies; only message in thread
From: Ramiro Polla via ffmpeg-devel @ 2026-01-07  4:06 UTC (permalink / raw)
  To: ffmpeg-devel; +Cc: Ramiro Polla

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

Instead, pass it as a parameter to the only function that uses it.


>From 40593b5a3c81b580cbd6de1819473e6375a18952 Mon Sep 17 00:00:00 2001
From: Ramiro Polla <ramiro.polla@gmail.com>
Date: Thu, 11 Sep 2025 17:45:47 +0200
Subject: [PATCH] avcodec/mjpegdec: remove start_code field from
 MJpegDecodeContext

Instead, pass it as a parameter to the only function that uses it.
---
 libavcodec/mjpegbdec.c |  4 ----
 libavcodec/mjpegdec.c  | 14 ++++++--------
 libavcodec/mjpegdec.h  |  1 -
 3 files changed, 6 insertions(+), 13 deletions(-)

diff --git a/libavcodec/mjpegbdec.c b/libavcodec/mjpegbdec.c
index 79eed6eaa6..5a21ea47fc 100644
--- a/libavcodec/mjpegbdec.c
+++ b/libavcodec/mjpegbdec.c
@@ -85,7 +85,6 @@ read_header:
     av_log(avctx, AV_LOG_DEBUG, "dqt offs: 0x%"PRIx32"\n", dqt_offs);
     if (dqt_offs) {
         bytestream2_init(&s->gB, buf_ptr+dqt_offs, buf_end - (buf_ptr+dqt_offs));
-        s->start_code = DQT;
         ret = ff_mjpeg_decode_dqt(s);
         if (ret < 0 && (avctx->err_recognition & AV_EF_EXPLODE))
             return ret;
@@ -95,7 +94,6 @@ read_header:
     av_log(avctx, AV_LOG_DEBUG, "dht offs: 0x%"PRIx32"\n", dht_offs);
     if (dht_offs) {
         bytestream2_init(&s->gB, buf_ptr+dht_offs, buf_end - (buf_ptr+dht_offs));
-        s->start_code = DHT;
         ff_mjpeg_decode_dht(s);
     }
 
@@ -103,7 +101,6 @@ read_header:
     av_log(avctx, AV_LOG_DEBUG, "sof offs: 0x%"PRIx32"\n", sof_offs);
     if (sof_offs) {
         bytestream2_init(&s->gB, buf_ptr+sof_offs, buf_end - (buf_ptr+sof_offs));
-        s->start_code = SOF0;
         if ((ret = ff_mjpeg_decode_sof(s)) < 0)
             return ret;
     }
@@ -116,7 +113,6 @@ read_header:
         bytestream2_init(&s->gB, buf_ptr+sos_offs,
                          FFMIN(field_size, buf_end - buf_ptr - sos_offs));
         s->mjpb_skiptosod = (sod_offs - sos_offs - bytestream2_peek_be16(&s->gB));
-        s->start_code = SOS;
         if (avctx->skip_frame == AVDISCARD_ALL) {
             bytestream2_skipu(&s->gB, bytestream2_get_bytes_left(&s->gB));
         } else {
diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c
index 417cedae4a..ada98b0174 100644
--- a/libavcodec/mjpegdec.c
+++ b/libavcodec/mjpegdec.c
@@ -135,7 +135,6 @@ av_cold int ff_mjpeg_decode_init(AVCodecContext *avctx)
     init_idct(avctx);
     s->buffer_size   = 0;
     s->buffer        = NULL;
-    s->start_code    = -1;
     s->first_picture = 1;
     s->got_picture   = 0;
     s->orig_height    = avctx->coded_height;
@@ -1871,7 +1870,7 @@ static int mjpeg_decode_dri(MJpegDecodeContext *s)
     return 0;
 }
 
-static int mjpeg_decode_app(MJpegDecodeContext *s)
+static int mjpeg_decode_app(MJpegDecodeContext *s, int start_code)
 {
     int len, id, i;
 
@@ -2016,7 +2015,7 @@ static int mjpeg_decode_app(MJpegDecodeContext *s)
     }
 
     /* JPS extension by VRex */
-    if (s->start_code == APP3 && id == AV_RB32("_JPS") && len >= 10) {
+    if (start_code == APP3 && id == AV_RB32("_JPS") && len >= 10) {
         int flags, layout, type;
         if (s->avctx->debug & FF_DEBUG_PICT_INFO)
             av_log(s->avctx, AV_LOG_INFO, "_JPSJPS_\n");
@@ -2056,7 +2055,7 @@ static int mjpeg_decode_app(MJpegDecodeContext *s)
     }
 
     /* EXIF metadata */
-    if (s->start_code == APP1 && id == AV_RB32("Exif") && len >= 2) {
+    if (start_code == APP1 && id == AV_RB32("Exif") && len >= 2) {
         int ret;
 
         bytestream2_skipu(&s->gB, 2); // skip padding
@@ -2075,7 +2074,7 @@ static int mjpeg_decode_app(MJpegDecodeContext *s)
     }
 
     /* Apple MJPEG-A */
-    if ((s->start_code == APP1) && (len > (0x28 - 8))) {
+    if ((start_code == APP1) && (len > (0x28 - 8))) {
         id   = bytestream2_get_be32u(&s->gB);
         len -= 4;
         /* Apple MJPEG-A */
@@ -2095,7 +2094,7 @@ static int mjpeg_decode_app(MJpegDecodeContext *s)
         }
     }
 
-    if (s->start_code == APP2 && id == AV_RB32("ICC_") && len >= 10) {
+    if (start_code == APP2 && id == AV_RB32("ICC_") && len >= 10) {
         int id2;
         unsigned seqno;
         unsigned nummarkers;
@@ -2421,7 +2420,6 @@ redo_for_pal8:
 
         bytestream2_init(&s->gB, unescaped_buf_ptr, unescaped_buf_size);
 
-        s->start_code = start_code;
         if (avctx->debug & FF_DEBUG_STARTCODE)
             av_log(avctx, AV_LOG_DEBUG, "startcode: %X\n", start_code);
 
@@ -2431,7 +2429,7 @@ redo_for_pal8:
                    "restart marker: %d\n", start_code & 0x0f);
             /* APP fields */
         } else if (start_code >= APP0 && start_code <= APP15) {
-            if ((ret = mjpeg_decode_app(s)) < 0)
+            if ((ret = mjpeg_decode_app(s, start_code)) < 0)
                 av_log(avctx, AV_LOG_ERROR, "unable to decode APP fields: %s\n",
                        av_err2str(ret));
             /* Comment */
diff --git a/libavcodec/mjpegdec.h b/libavcodec/mjpegdec.h
index 4f4139dcc4..4d391ff9f9 100644
--- a/libavcodec/mjpegdec.h
+++ b/libavcodec/mjpegdec.h
@@ -60,7 +60,6 @@ typedef struct MJpegDecodeContext {
     GetByteContext gB;
     int buf_size;
 
-    int start_code; /* current start code */
     int buffer_size;
     uint8_t *buffer;
 
-- 
2.49.1

_______________________________________________
ffmpeg-devel mailing list -- ffmpeg-devel@ffmpeg.org
To unsubscribe send an email to ffmpeg-devel-leave@ffmpeg.org

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-01-07  4:07 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-01-07  4:06 [FFmpeg-devel] [PR] avcodec/mjpegdec: remove start_code field from MJpegDecodeContext (PR #21405) Ramiro Polla via ffmpeg-devel

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git