[FFmpeg-cvslog] avcodec/mpegvideoenc: Add MPVMainEncContext
Andreas Rheinhardt
git at videolan.org
Wed Mar 26 06:08:34 EET 2025
ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at outlook.com> | Fri Feb 28 18:56:15 2025 +0100| [f507f26e4763a335b3e9af9af4d8f58b836948ca] | committer: Andreas Rheinhardt
avcodec/mpegvideoenc: Add MPVMainEncContext
This is in preparation for moving all the elements from
MpegEncContext that are only used by the main encoder thread
to MPVMainEncContext.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f507f26e4763a335b3e9af9af4d8f58b836948ca
---
libavcodec/flvenc.c | 2 +-
libavcodec/h261enc.c | 4 ++--
libavcodec/ituh263enc.c | 4 ++--
libavcodec/mjpegenc.c | 2 +-
libavcodec/mpeg12enc.c | 4 ++--
libavcodec/mpeg4videoenc.c | 2 +-
libavcodec/mpegvideoenc.h | 4 ++++
libavcodec/msmpeg4enc.c | 2 +-
libavcodec/msmpeg4enc.h | 4 ++--
libavcodec/rv10enc.c | 2 +-
libavcodec/rv20enc.c | 2 +-
libavcodec/speedhqenc.c | 2 +-
libavcodec/wmv2enc.c | 4 ++--
13 files changed, 21 insertions(+), 17 deletions(-)
diff --git a/libavcodec/flvenc.c b/libavcodec/flvenc.c
index b6f9d1c6db..0cd20f026d 100644
--- a/libavcodec/flvenc.c
+++ b/libavcodec/flvenc.c
@@ -89,7 +89,7 @@ const FFCodec ff_flv_encoder = {
.p.id = AV_CODEC_ID_FLV1,
.p.priv_class = &ff_mpv_enc_class,
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
- .priv_data_size = sizeof(MpegEncContext),
+ .priv_data_size = sizeof(MPVMainEncContext),
.init = ff_mpv_encode_init,
FF_CODEC_ENCODE_CB(ff_mpv_encode_picture),
.close = ff_mpv_encode_end,
diff --git a/libavcodec/h261enc.c b/libavcodec/h261enc.c
index 5e6d5d1f9c..66cccb88e3 100644
--- a/libavcodec/h261enc.c
+++ b/libavcodec/h261enc.c
@@ -55,7 +55,7 @@ static uint8_t uni_h261_rl_len_last[64 * 128];
static uint8_t h261_mv_codes[64][2];
typedef struct H261EncContext {
- MpegEncContext s;
+ MPVMainEncContext s;
H261Context common;
@@ -167,7 +167,7 @@ static inline int get_cbp(MpegEncContext *s, int16_t block[6][64])
*/
static void h261_encode_block(H261EncContext *h, int16_t *block, int n)
{
- MpegEncContext *const s = &h->s;
+ MpegEncContext *const s = &h->s.s;
int level, run, i, j, last_index, last_non_zero;
if (s->mb_intra) {
diff --git a/libavcodec/ituh263enc.c b/libavcodec/ituh263enc.c
index a81bfb7c79..825b398455 100644
--- a/libavcodec/ituh263enc.c
+++ b/libavcodec/ituh263enc.c
@@ -908,7 +908,7 @@ const FFCodec ff_h263_encoder = {
.p.priv_class = &h263_class,
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
- .priv_data_size = sizeof(MpegEncContext),
+ .priv_data_size = sizeof(MPVMainEncContext),
.init = ff_mpv_encode_init,
FF_CODEC_ENCODE_CB(ff_mpv_encode_picture),
.close = ff_mpv_encode_end,
@@ -941,7 +941,7 @@ const FFCodec ff_h263p_encoder = {
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_SLICE_THREADS |
AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
- .priv_data_size = sizeof(MpegEncContext),
+ .priv_data_size = sizeof(MPVMainEncContext),
.init = ff_mpv_encode_init,
FF_CODEC_ENCODE_CB(ff_mpv_encode_picture),
.close = ff_mpv_encode_end,
diff --git a/libavcodec/mjpegenc.c b/libavcodec/mjpegenc.c
index 30f2c9900d..0a2d6eebd3 100644
--- a/libavcodec/mjpegenc.c
+++ b/libavcodec/mjpegenc.c
@@ -64,7 +64,7 @@ typedef struct MJpegHuffmanCode {
* MpegEncContext is followed by a MjpegContext; the other threads
* can access this shared context via MpegEncContext.mjpeg. */
typedef struct MJPEGEncContext {
- MpegEncContext mpeg;
+ MPVMainEncContext mpeg;
MJpegContext mjpeg;
} MJPEGEncContext;
diff --git a/libavcodec/mpeg12enc.c b/libavcodec/mpeg12enc.c
index 1563cefd23..bb61b4f4fe 100644
--- a/libavcodec/mpeg12enc.c
+++ b/libavcodec/mpeg12enc.c
@@ -72,7 +72,7 @@ static uint32_t mpeg1_lum_dc_uni[512];
static uint32_t mpeg1_chr_dc_uni[512];
typedef struct MPEG12EncContext {
- MpegEncContext mpeg;
+ MPVMainEncContext mpeg;
AVRational frame_rate_ext;
unsigned frame_rate_index;
@@ -201,7 +201,7 @@ static av_cold int encode_init(AVCodecContext *avctx)
}
}
- if (mpeg12->mpeg.q_scale_type == 1) {
+ if (mpeg12->mpeg.s.q_scale_type == 1) {
if (avctx->qmax > 28) {
av_log(avctx, AV_LOG_ERROR,
"non linear quant only supports qmax <= 28 currently\n");
diff --git a/libavcodec/mpeg4videoenc.c b/libavcodec/mpeg4videoenc.c
index 3b312915b4..11872f29eb 100644
--- a/libavcodec/mpeg4videoenc.c
+++ b/libavcodec/mpeg4videoenc.c
@@ -1395,7 +1395,7 @@ const FFCodec ff_mpeg4_encoder = {
CODEC_LONG_NAME("MPEG-4 part 2"),
.p.type = AVMEDIA_TYPE_VIDEO,
.p.id = AV_CODEC_ID_MPEG4,
- .priv_data_size = sizeof(MpegEncContext),
+ .priv_data_size = sizeof(MPVMainEncContext),
.init = encode_init,
FF_CODEC_ENCODE_CB(ff_mpv_encode_picture),
.close = ff_mpv_encode_end,
diff --git a/libavcodec/mpegvideoenc.h b/libavcodec/mpegvideoenc.h
index 6dd382a3c6..f7aad17650 100644
--- a/libavcodec/mpegvideoenc.h
+++ b/libavcodec/mpegvideoenc.h
@@ -33,6 +33,10 @@
#include "libavutil/opt.h"
#include "mpegvideo.h"
+typedef struct MPVMainEncContext {
+ MpegEncContext s; ///< The main slicecontext
+} MPVMainEncContext;
+
#define MAX_FCODE 7
#define UNI_AC_ENC_INDEX(run,level) ((run)*128 + (level))
#define INPLACE_OFFSET 16
diff --git a/libavcodec/msmpeg4enc.c b/libavcodec/msmpeg4enc.c
index 8310e0a578..98b72e4d58 100644
--- a/libavcodec/msmpeg4enc.c
+++ b/libavcodec/msmpeg4enc.c
@@ -151,7 +151,7 @@ av_cold void ff_msmpeg4_encode_init(MpegEncContext *s)
static void find_best_tables(MSMPEG4EncContext *ms)
{
- MpegEncContext *const s = &ms->s;
+ MpegEncContext *const s = &ms->m.s;
int i;
int best = 0, best_size = INT_MAX;
int chroma_best = 0, best_chroma_size = INT_MAX;
diff --git a/libavcodec/msmpeg4enc.h b/libavcodec/msmpeg4enc.h
index da9a45b589..72992176de 100644
--- a/libavcodec/msmpeg4enc.h
+++ b/libavcodec/msmpeg4enc.h
@@ -22,12 +22,12 @@
#ifndef AVCODEC_MSMPEG4ENC_H
#define AVCODEC_MSMPEG4ENC_H
-#include "mpegvideo.h"
+#include "mpegvideoenc.h"
#include "put_bits.h"
#include "rl.h"
typedef struct MSMPEG4EncContext {
- MpegEncContext s;
+ MPVMainEncContext m;
/** [mb_intra][isChroma][level][run][last] */
unsigned ac_stats[2][2][MAX_LEVEL + 1][MAX_RUN + 1][2];
diff --git a/libavcodec/rv10enc.c b/libavcodec/rv10enc.c
index 53463dd068..d55fa7c2b0 100644
--- a/libavcodec/rv10enc.c
+++ b/libavcodec/rv10enc.c
@@ -72,7 +72,7 @@ const FFCodec ff_rv10_encoder = {
.p.id = AV_CODEC_ID_RV10,
.p.priv_class = &ff_mpv_enc_class,
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
- .priv_data_size = sizeof(MpegEncContext),
+ .priv_data_size = sizeof(MPVMainEncContext),
.init = ff_mpv_encode_init,
FF_CODEC_ENCODE_CB(ff_mpv_encode_picture),
.close = ff_mpv_encode_end,
diff --git a/libavcodec/rv20enc.c b/libavcodec/rv20enc.c
index cf27ff04ea..cacda6fdda 100644
--- a/libavcodec/rv20enc.c
+++ b/libavcodec/rv20enc.c
@@ -69,7 +69,7 @@ const FFCodec ff_rv20_encoder = {
.p.id = AV_CODEC_ID_RV20,
.p.priv_class = &ff_mpv_enc_class,
.p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
- .priv_data_size = sizeof(MpegEncContext),
+ .priv_data_size = sizeof(MPVMainEncContext),
.init = ff_mpv_encode_init,
FF_CODEC_ENCODE_CB(ff_mpv_encode_picture),
.close = ff_mpv_encode_end,
diff --git a/libavcodec/speedhqenc.c b/libavcodec/speedhqenc.c
index 536ddc0bf1..a0baa869cc 100644
--- a/libavcodec/speedhqenc.c
+++ b/libavcodec/speedhqenc.c
@@ -59,7 +59,7 @@ static uint32_t speedhq_chr_dc_uni[512];
static uint8_t uni_speedhq_ac_vlc_len[64 * 64 * 2];
typedef struct SpeedHQEncContext {
- MpegEncContext m;
+ MPVMainEncContext m;
int slice_start;
} SpeedHQEncContext;
diff --git a/libavcodec/wmv2enc.c b/libavcodec/wmv2enc.c
index 825ab91a05..33569a6d39 100644
--- a/libavcodec/wmv2enc.c
+++ b/libavcodec/wmv2enc.c
@@ -49,7 +49,7 @@ typedef struct WMV2EncContext {
static int encode_ext_header(WMV2EncContext *w)
{
- MpegEncContext *const s = &w->msmpeg4.s;
+ MpegEncContext *const s = &w->msmpeg4.m.s;
PutBitContext pb;
int code;
@@ -76,7 +76,7 @@ static int encode_ext_header(WMV2EncContext *w)
static av_cold int wmv2_encode_init(AVCodecContext *avctx)
{
WMV2EncContext *const w = avctx->priv_data;
- MpegEncContext *const s = &w->msmpeg4.s;
+ MpegEncContext *const s = &w->msmpeg4.m.s;
s->private_ctx = &w->common;
if (ff_mpv_encode_init(avctx) < 0)
More information about the ffmpeg-cvslog
mailing list