[FFmpeg-cvslog] avcodec/mjpegenc: Add wrapper for ff_mjpeg_encode_picture_header()
Andreas Rheinhardt
git at videolan.org
Tue Jan 4 18:20:24 EET 2022
ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at outlook.com> | Wed Dec 22 01:03:46 2021 +0100| [410af1caa34838ab36ceeab83f82b0ef8df823ba] | committer: Andreas Rheinhardt
avcodec/mjpegenc: Add wrapper for ff_mjpeg_encode_picture_header()
This factors the translation from MpegEncContext out
and will enable further optimizations in the next commits.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=410af1caa34838ab36ceeab83f82b0ef8df823ba
---
libavcodec/mjpegenc.c | 16 ++++++++++++++--
libavcodec/mjpegenc.h | 1 +
libavcodec/mpegvideo_enc.c | 5 +----
3 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/libavcodec/mjpegenc.c b/libavcodec/mjpegenc.c
index 57f249f56e..152919f4c8 100644
--- a/libavcodec/mjpegenc.c
+++ b/libavcodec/mjpegenc.c
@@ -74,6 +74,19 @@ static av_cold void init_uni_ac_vlc(const uint8_t huff_size_ac[256],
}
}
+static void mjpeg_encode_picture_header(MpegEncContext *s)
+{
+ ff_mjpeg_encode_picture_header(s->avctx, &s->pb, &s->intra_scantable,
+ s->pred, s->intra_matrix, s->chroma_intra_matrix);
+}
+
+void ff_mjpeg_amv_encode_picture_header(MpegEncContext *s)
+{
+ /* s->huffman == HUFFMAN_TABLE_OPTIMAL can only be true for MJPEG. */
+ if (!CONFIG_MJPEG_ENCODER || s->huffman != HUFFMAN_TABLE_OPTIMAL)
+ mjpeg_encode_picture_header(s);
+}
+
#if CONFIG_MJPEG_ENCODER
/**
* Encodes and outputs the entire frame in the JPEG format.
@@ -213,8 +226,7 @@ int ff_mjpeg_encode_stuffing(MpegEncContext *s)
s->intra_chroma_ac_vlc_length =
s->intra_chroma_ac_vlc_last_length = m->uni_chroma_ac_vlc_len;
- ff_mjpeg_encode_picture_header(s->avctx, &s->pb, &s->intra_scantable,
- s->pred, s->intra_matrix, s->chroma_intra_matrix);
+ mjpeg_encode_picture_header(s);
mjpeg_encode_picture_frame(s);
}
#endif
diff --git a/libavcodec/mjpegenc.h b/libavcodec/mjpegenc.h
index bc9b017e7a..555677e69a 100644
--- a/libavcodec/mjpegenc.h
+++ b/libavcodec/mjpegenc.h
@@ -105,6 +105,7 @@ static inline void put_marker(PutBitContext *p, enum JpegMarker code)
}
int ff_mjpeg_encode_init(MpegEncContext *s);
+void ff_mjpeg_amv_encode_picture_header(MpegEncContext *s);
void ff_mjpeg_encode_mb(MpegEncContext *s, int16_t block[12][64]);
int ff_mjpeg_encode_stuffing(MpegEncContext *s);
diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c
index 23e8a41a86..9807e491e5 100644
--- a/libavcodec/mpegvideo_enc.c
+++ b/libavcodec/mpegvideo_enc.c
@@ -3702,10 +3702,7 @@ static int encode_picture(MpegEncContext *s, int picture_number)
switch(s->out_format) {
#if CONFIG_MJPEG_ENCODER || CONFIG_AMV_ENCODER
case FMT_MJPEG:
- /* s->huffman == HUFFMAN_TABLE_OPTIMAL can only be true for MJPEG. */
- if (!CONFIG_MJPEG_ENCODER || s->huffman != HUFFMAN_TABLE_OPTIMAL)
- ff_mjpeg_encode_picture_header(s->avctx, &s->pb, &s->intra_scantable,
- s->pred, s->intra_matrix, s->chroma_intra_matrix);
+ ff_mjpeg_amv_encode_picture_header(s);
break;
#endif
case FMT_SPEEDHQ:
More information about the ffmpeg-cvslog
mailing list