[FFmpeg-cvslog] avcodec/mpegvideo_dec: Move syncing DivX-stuff to mpeg4videodec.c

Andreas Rheinhardt git at videolan.org
Tue Mar 4 14:35:27 EET 2025


ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at outlook.com> | Mon Feb 24 17:47:22 2025 +0100| [920217975407bcb9f9ca9ab98a2e2dcb3a98e05a] | committer: Andreas Rheinhardt

avcodec/mpegvideo_dec: Move syncing DivX-stuff to mpeg4videodec.c

It is only used by MPEG-4 (and is used in h263dec.c and can therefore
not just be moved to Mpeg4DecContext...).

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=920217975407bcb9f9ca9ab98a2e2dcb3a98e05a
---

 libavcodec/mpeg4videodec.c | 14 ++++++++++++++
 libavcodec/mpegvideo_dec.c | 16 ----------------
 2 files changed, 14 insertions(+), 16 deletions(-)

diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c
index debcafc4c0..14e4de9a45 100644
--- a/libavcodec/mpeg4videodec.c
+++ b/libavcodec/mpeg4videodec.c
@@ -3699,6 +3699,7 @@ static int mpeg4_update_thread_context(AVCodecContext *dst,
     s->enhancement_type          = s1->enhancement_type;
     s->scalability               = s1->scalability;
     s->intra_dc_threshold        = s1->intra_dc_threshold;
+    s->m.divx_packed             = s1->m.divx_packed;
     s->divx_version              = s1->divx_version;
     s->divx_build                = s1->divx_build;
     s->xvid_build                = s1->xvid_build;
@@ -3714,6 +3715,19 @@ static int mpeg4_update_thread_context(AVCodecContext *dst,
     memcpy(s->sprite_shift, s1->sprite_shift, sizeof(s1->sprite_shift));
     memcpy(s->sprite_traj,  s1->sprite_traj,  sizeof(s1->sprite_traj));
 
+    if (s1->m.bitstream_buffer) {
+        av_fast_padded_malloc(&s->m.bitstream_buffer,
+                              &s->m.allocated_bitstream_buffer_size,
+                              s1->m.bitstream_buffer_size);
+        if (!s->m.bitstream_buffer) {
+            s->m.bitstream_buffer_size = 0;
+            return AVERROR(ENOMEM);
+        }
+        s->m.bitstream_buffer_size = s1->m.bitstream_buffer_size;
+        memcpy(s->m.bitstream_buffer, s1->m.bitstream_buffer,
+               s1->m.bitstream_buffer_size);
+    }
+
     if (!init && s1->xvid_build >= 0)
         ff_xvid_idct_init(&s->m.idsp, dst);
 
diff --git a/libavcodec/mpegvideo_dec.c b/libavcodec/mpegvideo_dec.c
index ebbbc1df8b..8d4ba341d5 100644
--- a/libavcodec/mpegvideo_dec.c
+++ b/libavcodec/mpegvideo_dec.c
@@ -136,22 +136,6 @@ int ff_mpeg_update_thread_context(AVCodecContext *dst,
     // B-frame info
     s->low_delay    = s1->low_delay;
 
-    // DivX handling (doesn't work)
-    s->divx_packed  = s1->divx_packed;
-
-    if (s1->bitstream_buffer) {
-        av_fast_padded_malloc(&s->bitstream_buffer,
-                              &s->allocated_bitstream_buffer_size,
-                              s1->bitstream_buffer_size);
-        if (!s->bitstream_buffer) {
-            s->bitstream_buffer_size = 0;
-            return AVERROR(ENOMEM);
-        }
-        s->bitstream_buffer_size = s1->bitstream_buffer_size;
-        memcpy(s->bitstream_buffer, s1->bitstream_buffer,
-               s1->bitstream_buffer_size);
-    }
-
     // MPEG-2/interlacing info
     memcpy(&s->progressive_sequence, &s1->progressive_sequence,
            (char *) &s1->rtp_mode - (char *) &s1->progressive_sequence);



More information about the ffmpeg-cvslog mailing list