ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinha...@outlook.com> | 
Tue Mar 25 04:52:06 2025 +0100| [545724f61e65990cd05ee9167fa26b9fd2a7c37d] | 
committer: Andreas Rheinhardt

avcodec/mpeg4video: Pass parameters directly

Namely in ff_mpeg4_get_video_packet_prefix_length().
This will allow to move [fb]_code from MpegEncContext.

Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@outlook.com>

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

 libavcodec/mpeg4video.c    | 9 +++++----
 libavcodec/mpeg4video.h    | 3 ++-
 libavcodec/mpeg4videodec.c | 4 ++--
 libavcodec/mpeg4videoenc.c | 2 +-
 4 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/libavcodec/mpeg4video.c b/libavcodec/mpeg4video.c
index 3133cc22c4..2c0c1044f2 100644
--- a/libavcodec/mpeg4video.c
+++ b/libavcodec/mpeg4video.c
@@ -39,16 +39,17 @@ av_cold void ff_mpeg4_init_rl_intra(void)
     ff_thread_once(&init_static_once, mpeg4_init_rl_intra);
 }
 
-int ff_mpeg4_get_video_packet_prefix_length(MpegEncContext *s)
+int ff_mpeg4_get_video_packet_prefix_length(enum AVPictureType pict_type,
+                                            int f_code, int b_code)
 {
-    switch (s->pict_type) {
+    switch (pict_type) {
     case AV_PICTURE_TYPE_I:
         return 16;
     case AV_PICTURE_TYPE_P:
     case AV_PICTURE_TYPE_S:
-        return s->f_code + 15;
+        return f_code + 15;
     case AV_PICTURE_TYPE_B:
-        return FFMAX3(s->f_code, s->b_code, 2) + 15;
+        return FFMAX3(f_code, b_code, 2) + 15;
     default:
         return -1;
     }
diff --git a/libavcodec/mpeg4video.h b/libavcodec/mpeg4video.h
index cfc6dcb684..dc0bf31922 100644
--- a/libavcodec/mpeg4video.h
+++ b/libavcodec/mpeg4video.h
@@ -28,7 +28,8 @@
 #include "mpegvideo.h"
 
 void ff_mpeg4_clean_buffers(MpegEncContext *s);
-int ff_mpeg4_get_video_packet_prefix_length(MpegEncContext *s);
+int ff_mpeg4_get_video_packet_prefix_length(enum AVPictureType pict_type,
+                                            int f_code, int b_code);
 void ff_mpeg4_init_direct_mv(MpegEncContext *s);
 
 /**
diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c
index 2eb663603c..0123feee71 100644
--- a/libavcodec/mpeg4videodec.c
+++ b/libavcodec/mpeg4videodec.c
@@ -421,7 +421,7 @@ static inline int mpeg4_is_resync(Mpeg4DecContext *ctx)
 
             s->gb = gb;
 
-            if (len >= ff_mpeg4_get_video_packet_prefix_length(s))
+            if (len >= ff_mpeg4_get_video_packet_prefix_length(s->pict_type, 
s->f_code, s->b_code))
                 return mb_num;
         }
     }
@@ -714,7 +714,7 @@ int ff_mpeg4_decode_video_packet_header(Mpeg4DecContext 
*ctx)
         if (get_bits1(&s->gb))
             break;
 
-    if (len != ff_mpeg4_get_video_packet_prefix_length(s)) {
+    if (len != ff_mpeg4_get_video_packet_prefix_length(s->pict_type, 
s->f_code, s->b_code)) {
         av_log(s->avctx, AV_LOG_ERROR, "marker does not match f_code\n");
         return AVERROR_INVALIDDATA;
     }
diff --git a/libavcodec/mpeg4videoenc.c b/libavcodec/mpeg4videoenc.c
index 775dab0d4a..0998af663f 100644
--- a/libavcodec/mpeg4videoenc.c
+++ b/libavcodec/mpeg4videoenc.c
@@ -1393,7 +1393,7 @@ void ff_mpeg4_encode_video_packet_header(MPVEncContext 
*const s)
 {
     int mb_num_bits = av_log2(s->c.mb_num - 1) + 1;
 
-    put_bits(&s->pb, ff_mpeg4_get_video_packet_prefix_length(&s->c), 0);
+    put_bits(&s->pb, ff_mpeg4_get_video_packet_prefix_length(s->c.pict_type, 
s->c.f_code, s->c.b_code), 0);
     put_bits(&s->pb, 1, 1);
 
     put_bits(&s->pb, mb_num_bits, s->c.mb_x + s->c.mb_y * s->c.mb_width);

_______________________________________________
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to