Message ID | AS8P250MB0744937CFACAD2ACA739A1D08F339@AS8P250MB0744.EURP250.PROD.OUTLOOK.COM |
---|---|
State | Accepted |
Commit | ed5a438f055489c2e827508cb24f2fe71f2036ad |
Headers | show |
Series | [FFmpeg-devel] avcodec/mpegvideo_enc: Initialize dct_unquantize_int(ra|er) only once | expand |
Context | Check | Description |
---|---|---|
yinshiyou/make_loongarch64 | success | Make finished |
yinshiyou/make_fate_loongarch64 | success | Make fate finished |
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
Andreas Rheinhardt: > For encoders, mpeg_quant is an option of the MPEG-4 encoder > and therefore constant. This implies that one can set > the dct_unquantize_(intra|inter) function pointers during init. > > Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> > --- > libavcodec/mpegvideo_enc.c | 22 +++++++++++----------- > 1 file changed, 11 insertions(+), 11 deletions(-) > > diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c > index ce363a585d..0b709974a1 100644 > --- a/libavcodec/mpegvideo_enc.c > +++ b/libavcodec/mpegvideo_enc.c > @@ -880,6 +880,17 @@ av_cold int ff_mpv_encode_init(AVCodecContext *avctx) > > ff_dct_encode_init(s); > > + if (s->mpeg_quant || s->codec_id == AV_CODEC_ID_MPEG2VIDEO) { > + s->dct_unquantize_intra = s->dct_unquantize_mpeg2_intra; > + s->dct_unquantize_inter = s->dct_unquantize_mpeg2_inter; > + } else if (s->out_format == FMT_H263 || s->out_format == FMT_H261) { > + s->dct_unquantize_intra = s->dct_unquantize_h263_intra; > + s->dct_unquantize_inter = s->dct_unquantize_h263_inter; > + } else { > + s->dct_unquantize_intra = s->dct_unquantize_mpeg1_intra; > + s->dct_unquantize_inter = s->dct_unquantize_mpeg1_inter; > + } > + > if ((CONFIG_H263P_ENCODER || CONFIG_RV20_ENCODER) && s->modified_quant) > s->chroma_qscale_table = ff_h263_chroma_qscale_table; > > @@ -1723,17 +1734,6 @@ static int frame_start(MpegEncContext *s) > } > } > > - if (s->mpeg_quant || s->codec_id == AV_CODEC_ID_MPEG2VIDEO) { > - s->dct_unquantize_intra = s->dct_unquantize_mpeg2_intra; > - s->dct_unquantize_inter = s->dct_unquantize_mpeg2_inter; > - } else if (s->out_format == FMT_H263 || s->out_format == FMT_H261) { > - s->dct_unquantize_intra = s->dct_unquantize_h263_intra; > - s->dct_unquantize_inter = s->dct_unquantize_h263_inter; > - } else { > - s->dct_unquantize_intra = s->dct_unquantize_mpeg1_intra; > - s->dct_unquantize_inter = s->dct_unquantize_mpeg1_inter; > - } > - > if (s->dct_error_sum) { > av_assert2(s->noise_reduction && s->encoding); > update_noise_reduction(s); Will apply this patch tomorrow unless there are objections. - Andreas
diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index ce363a585d..0b709974a1 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -880,6 +880,17 @@ av_cold int ff_mpv_encode_init(AVCodecContext *avctx) ff_dct_encode_init(s); + if (s->mpeg_quant || s->codec_id == AV_CODEC_ID_MPEG2VIDEO) { + s->dct_unquantize_intra = s->dct_unquantize_mpeg2_intra; + s->dct_unquantize_inter = s->dct_unquantize_mpeg2_inter; + } else if (s->out_format == FMT_H263 || s->out_format == FMT_H261) { + s->dct_unquantize_intra = s->dct_unquantize_h263_intra; + s->dct_unquantize_inter = s->dct_unquantize_h263_inter; + } else { + s->dct_unquantize_intra = s->dct_unquantize_mpeg1_intra; + s->dct_unquantize_inter = s->dct_unquantize_mpeg1_inter; + } + if ((CONFIG_H263P_ENCODER || CONFIG_RV20_ENCODER) && s->modified_quant) s->chroma_qscale_table = ff_h263_chroma_qscale_table; @@ -1723,17 +1734,6 @@ static int frame_start(MpegEncContext *s) } } - if (s->mpeg_quant || s->codec_id == AV_CODEC_ID_MPEG2VIDEO) { - s->dct_unquantize_intra = s->dct_unquantize_mpeg2_intra; - s->dct_unquantize_inter = s->dct_unquantize_mpeg2_inter; - } else if (s->out_format == FMT_H263 || s->out_format == FMT_H261) { - s->dct_unquantize_intra = s->dct_unquantize_h263_intra; - s->dct_unquantize_inter = s->dct_unquantize_h263_inter; - } else { - s->dct_unquantize_intra = s->dct_unquantize_mpeg1_intra; - s->dct_unquantize_inter = s->dct_unquantize_mpeg1_inter; - } - if (s->dct_error_sum) { av_assert2(s->noise_reduction && s->encoding); update_noise_reduction(s);
For encoders, mpeg_quant is an option of the MPEG-4 encoder and therefore constant. This implies that one can set the dct_unquantize_(intra|inter) function pointers during init. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> --- libavcodec/mpegvideo_enc.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-)