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".