Message ID | 20180501190043.2313-1-atomnuker@gmail.com |
---|---|
State | Accepted |
Commit | a1c6fc773f941fd6a6ef3f12f102a7902ae69453 |
Headers | show |
On 1 May 2018 at 20:00, Rostislav Pehlivanov <atomnuker@gmail.com> wrote: > > {"ibias", "intra quant bias", > FF_MPV_OFFSET(intra_quant_bias), AV_OPT_TYPE_INT, {.i64 = > FF_DEFAULT_QUANT_BIAS }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS }, \ > {"pbias", "inter quant bias", > FF_MPV_OFFSET(inter_quant_bias), AV_OPT_TYPE_INT, {.i64 = > FF_DEFAULT_QUANT_BIAS }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS }, \ > -{"rc_strategy", "ratecontrol method", > FF_MPV_OFFSET(rc_strategy), AV_OPT_TYPE_INT, {.i64 = > MPV_RC_STRATEGY_FFMPEG }, 0, NB_MPV_RC_STRATEGY-1, FF_MPV_OPT_FLAGS, > "rc_strategy" }, \ > - { "ffmpeg", "default native rate control", 0, AV_OPT_TYPE_CONST, { > .i64 = MPV_RC_STRATEGY_FFMPEG }, 0, 0, FF_MPV_OPT_FLAGS, "rc_strategy" }, \ > - { "xvid", "libxvid (2 pass only)", 0, AV_OPT_TYPE_CONST, { > .i64 = MPV_RC_STRATEGY_XVID }, 0, 0, FF_MPV_OPT_FLAGS, "rc_strategy" }, \ > +{"rc_strategy", "ratecontrol method", > FF_MPV_OFFSET(rc_strategy), AV_OPT_TYPE_INT, {.i64 = 0 }, 0, 1, > FF_MPV_OPT_FLAGS, "rc_strategy" }, \ > + { "ffmpeg", "deprecated, does nothing", 0, AV_OPT_TYPE_CONST, { .i64 > = 0 }, 0, 0, FF_MPV_OPT_FLAGS, "rc_strategy" }, \ > + { "xvid", "deprecated, does nothing", 0, AV_OPT_TYPE_CONST, { .i64 > = 0 }, 0, 0, FF_MPV_OPT_FLAGS, "rc_strategy" }, \ > > Locally changed to use the new AV_OPT_FLAG_DEPRECATED flag: +{"rc_strategy", deprecated, does nothing", FF_MPV_OFFSET(rc_strategy), AV_OPT_TYPE_INT, {.i64 = 0 }, 0, 1, FF_MPV_OPT_FLAGS | AV_OPT_FLAG_DEPRECATED, "rc_strategy" }, \ + { "ffmpeg", "deprecated, does nothing", 0, AV_OPT_TYPE_CONST, { .i64 = 0 }, 0, 0, FF_MPV_OPT_FLAGS | AV_OPT_FLAG_DEPRECATED, "rc_strategy" }, \ + { "xvid", "deprecated, does nothing", 0, AV_OPT_TYPE_CONST, { .i64 = 0 }, 0, 0, FF_MPV_OPT_FLAGS | AV_OPT_FLAG_DEPRECATED, "rc_strategy" }, \
2018-05-01 21:00 GMT+02:00, Rostislav Pehlivanov <atomnuker@gmail.com>: > Its a reminder of a bygone era. Less flexible than the internal RC > system, probably worse and most definitely broken. Drop it. No one > ever used it either, except for mislead people. Sorry for my bad git knowledge: Is the above part of the commit message? Carl Eugen
On 1 May 2018 at 21:58, Carl Eugen Hoyos <ceffmpeg@gmail.com> wrote: > 2018-05-01 21:00 GMT+02:00, Rostislav Pehlivanov <atomnuker@gmail.com>: > > Its a reminder of a bygone era. Less flexible than the internal RC > > system, probably worse and most definitely broken. Drop it. No one > > ever used it either, except for mislead people. > > Sorry for my bad git knowledge: > Is the above part of the commit message? > > Carl Eugen > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel > Yep, its part of the commit message.
On Wed, May 02, 2018 at 04:35:21 +0100, Rostislav Pehlivanov wrote: > On 1 May 2018 at 21:58, Carl Eugen Hoyos <ceffmpeg@gmail.com> wrote: > > 2018-05-01 21:00 GMT+02:00, Rostislav Pehlivanov <atomnuker@gmail.com>: > > > ever used it either, except for mislead people. > > Is the above part of the commit message? > Yep, its part of the commit message. Well, not commenting on the message content or its style, "mislead" would be past participle "misled". *duck* Moritz
2018-05-02 5:35 GMT+02:00, Rostislav Pehlivanov <atomnuker@gmail.com>: > On 1 May 2018 at 21:58, Carl Eugen Hoyos <ceffmpeg@gmail.com> wrote: > >> 2018-05-01 21:00 GMT+02:00, Rostislav Pehlivanov <atomnuker@gmail.com>: >> > Its a reminder of a bygone era. Less flexible than the internal RC >> > system, probably worse and most definitely broken. Drop it. No one >> > ever used it either, except for mislead people. >> >> Sorry for my bad git knowledge: >> Is the above part of the commit message? >> >> Carl Eugen > Yep, its part of the commit message. Then the patch cannot be committed as-is. Please wait for a comment from the maintainer, Carl Eugen
On 2 May 2018 at 21:19, Carl Eugen Hoyos <ceffmpeg@gmail.com> wrote: > 2018-05-02 5:35 GMT+02:00, Rostislav Pehlivanov <atomnuker@gmail.com>: > > On 1 May 2018 at 21:58, Carl Eugen Hoyos <ceffmpeg@gmail.com> wrote: > > > >> 2018-05-01 21:00 GMT+02:00, Rostislav Pehlivanov <atomnuker@gmail.com>: > >> > Its a reminder of a bygone era. Less flexible than the internal RC > >> > system, probably worse and most definitely broken. Drop it. No one > >> > ever used it either, except for mislead people. > >> > >> Sorry for my bad git knowledge: > >> Is the above part of the commit message? > >> > >> Carl Eugen > > > Yep, its part of the commit message. > > Then the patch cannot be committed as-is. > Why? > Please wait for a comment from the maintainer, Carl Eugen > So if the maintainer approves I can commit as is? Your previous sentence makes no sense at all as you're not the maintainer nor did you even explain what's wrong with it. Neither can I, as every statement in that commit message is truthful. > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel >
2018-05-02 23:23 GMT+02:00, Rostislav Pehlivanov <atomnuker@gmail.com>: > On 2 May 2018 at 21:19, Carl Eugen Hoyos <ceffmpeg@gmail.com> wrote: > >> 2018-05-02 5:35 GMT+02:00, Rostislav Pehlivanov <atomnuker@gmail.com>: >> > On 1 May 2018 at 21:58, Carl Eugen Hoyos <ceffmpeg@gmail.com> wrote: >> > >> >> 2018-05-01 21:00 GMT+02:00, Rostislav Pehlivanov <atomnuker@gmail.com>: >> >> > Its a reminder of a bygone era. Less flexible than the internal RC >> >> > system, probably worse and most definitely broken. Drop it. No one >> >> > ever used it either, except for mislead people. >> >> >> >> Sorry for my bad git knowledge: >> >> Is the above part of the commit message? >> >> >> >> Carl Eugen >> >> > Yep, its part of the commit message. >> >> Then the patch cannot be committed as-is. >> > > Why? > > > >> Please wait for a comment from the maintainer, Carl Eugen >> > > So if the maintainer approves I can commit as is? No, of course not, the commit message is offensive. Just remove the "reasoning". Carl Eugen
On Wed, May 02, 2018 at 10:23:08PM +0100, Rostislav Pehlivanov wrote: > On 2 May 2018 at 21:19, Carl Eugen Hoyos <ceffmpeg@gmail.com> wrote: > > > 2018-05-02 5:35 GMT+02:00, Rostislav Pehlivanov <atomnuker@gmail.com>: > > > On 1 May 2018 at 21:58, Carl Eugen Hoyos <ceffmpeg@gmail.com> wrote: > > > > > >> 2018-05-01 21:00 GMT+02:00, Rostislav Pehlivanov <atomnuker@gmail.com>: > > >> > Its a reminder of a bygone era. Less flexible than the internal RC > > >> > system, probably worse and most definitely broken. Drop it. No one > > >> > ever used it either, except for mislead people. > > >> > > >> Sorry for my bad git knowledge: > > >> Is the above part of the commit message? > > >> > > >> Carl Eugen > > > > > Yep, its part of the commit message. > > > > Then the patch cannot be committed as-is. > > > > Why? > > > > > Please wait for a comment from the maintainer, Carl Eugen The commit message is (unnecessarily) offensive. About the removial itself, its a question if theres someone who used/ wants to use this and wants to continue to use it. (thats something i do not know) I certainly can look into fixing it if theres someone who uses this. In fact i was not aware of this being broken, but i think i havnt tested it for a long time so it very well could be broken. If OTOH noone uses / wants to use it then well there wouldnt be much point in keeping it Thanks [...]
On 3 May 2018 at 00:10, Michael Niedermayer <michael@niedermayer.cc> wrote: > On Wed, May 02, 2018 at 10:23:08PM +0100, Rostislav Pehlivanov wrote: > > On 2 May 2018 at 21:19, Carl Eugen Hoyos <ceffmpeg@gmail.com> wrote: > > > > > 2018-05-02 5:35 GMT+02:00, Rostislav Pehlivanov <atomnuker@gmail.com>: > > > > On 1 May 2018 at 21:58, Carl Eugen Hoyos <ceffmpeg@gmail.com> wrote: > > > > > > > >> 2018-05-01 21:00 GMT+02:00, Rostislav Pehlivanov < > atomnuker@gmail.com>: > > > >> > Its a reminder of a bygone era. Less flexible than the internal RC > > > >> > system, probably worse and most definitely broken. Drop it. No one > > > >> > ever used it either, except for mislead people. > > > >> > > > >> Sorry for my bad git knowledge: > > > >> Is the above part of the commit message? > > > >> > > > >> Carl Eugen > > > > > > > Yep, its part of the commit message. > > > > > > Then the patch cannot be committed as-is. > > > > > > > Why? > > > > > > > > > Please wait for a comment from the maintainer, Carl Eugen > The commit message is (unnecessarily) offensive. > There's nothing offensive in there. Users are mislead because this option exists because they think it'll give them better quality. It doesn't. About the removial itself, its a question if theres someone who > used/ wants to use this and wants to continue to use it. > (thats something i do not know) > No one wanted to use it in the first place. I certainly can look into fixing it if theres someone who uses this. In fact > i was not aware of this being broken, but i think i havnt tested it for a > long > time so it very well could be broken. > > If OTOH noone uses / wants to use it then well there wouldnt be much point > in keeping it > Removed the commit message altogether. I plan to apply this tomorrow unless there are objections.
diff --git a/MAINTAINERS b/MAINTAINERS index b61856243c..ca3f4e5a2f 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -121,7 +121,6 @@ Generic Parts: motion* Michael Niedermayer rate control: ratecontrol.c Michael Niedermayer - libxvid_rc.c Michael Niedermayer simple IDCT: simple_idct.c, simple_idct.h Michael Niedermayer postprocessing: diff --git a/libavcodec/Makefile b/libavcodec/Makefile index d727b218dc..4b55875964 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -984,7 +984,7 @@ OBJS-$(CONFIG_LIBX262_ENCODER) += libx264.o OBJS-$(CONFIG_LIBX264_ENCODER) += libx264.o OBJS-$(CONFIG_LIBX265_ENCODER) += libx265.o OBJS-$(CONFIG_LIBXAVS_ENCODER) += libxavs.o -OBJS-$(CONFIG_LIBXVID_ENCODER) += libxvid.o libxvid_rc.o +OBJS-$(CONFIG_LIBXVID_ENCODER) += libxvid.o OBJS-$(CONFIG_LIBZVBI_TELETEXT_DECODER) += libzvbi-teletextdec.o ass.o # parsers diff --git a/libavcodec/libxvid_rc.c b/libavcodec/libxvid_rc.c deleted file mode 100644 index 076c32c413..0000000000 --- a/libavcodec/libxvid_rc.c +++ /dev/null @@ -1,164 +0,0 @@ -/* - * Xvid rate control wrapper for lavc video encoders - * - * Copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at> - * - * This file is part of FFmpeg. - * - * FFmpeg is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * FFmpeg is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with FFmpeg; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include "config.h" - -#if HAVE_IO_H -#include <io.h> -#endif - -#if HAVE_UNISTD_H -#include <unistd.h> -#endif - -#include <xvid.h> - -#include "libavutil/attributes.h" -#include "libavutil/internal.h" - -#include "avcodec.h" -#include "libxvid.h" -#include "mpegvideo.h" - -av_cold int ff_xvid_rate_control_init(MpegEncContext *s) -{ - char *tmp_name; - int fd, i; - xvid_plg_create_t xvid_plg_create = { 0 }; - xvid_plugin_2pass2_t xvid_2pass2 = { 0 }; - - fd = avpriv_tempfile("xvidrc.", &tmp_name, 0, s->avctx); - if (fd < 0) { - av_log(s, AV_LOG_ERROR, "Can't create temporary pass2 file.\n"); - return fd; - } - - for (i = 0; i < s->rc_context.num_entries; i++) { - static const char frame_types[] = " ipbs"; - char tmp[256]; - RateControlEntry *rce; - - rce = &s->rc_context.entry[i]; - - snprintf(tmp, sizeof(tmp), "%c %d %d %d %d %d %d\n", - frame_types[rce->pict_type], - (int) lrintf(rce->qscale / FF_QP2LAMBDA), - rce->i_count, s->mb_num - rce->i_count - rce->skip_count, - rce->skip_count, - (rce->i_tex_bits + rce->p_tex_bits + rce->misc_bits + 7) / 8, - (rce->header_bits + rce->mv_bits + 7) / 8); - - if (write(fd, tmp, strlen(tmp)) < 0) { - int ret = AVERROR(errno); - av_log(s, AV_LOG_ERROR, "Error %s writing 2pass logfile\n", av_err2str(ret)); - av_free(tmp_name); - close(fd); - return ret; - } - } - - close(fd); - - xvid_2pass2.version = XVID_MAKE_VERSION(1, 1, 0); - xvid_2pass2.filename = tmp_name; - xvid_2pass2.bitrate = s->avctx->bit_rate; - xvid_2pass2.vbv_size = s->avctx->rc_buffer_size; - xvid_2pass2.vbv_maxrate = s->avctx->rc_max_rate; - xvid_2pass2.vbv_initial = s->avctx->rc_initial_buffer_occupancy; - - xvid_plg_create.version = XVID_MAKE_VERSION(1, 1, 0); - xvid_plg_create.fbase = s->avctx->time_base.den; - xvid_plg_create.fincr = s->avctx->time_base.num; - xvid_plg_create.param = &xvid_2pass2; - - if (xvid_plugin_2pass2(NULL, XVID_PLG_CREATE, &xvid_plg_create, - &s->rc_context.non_lavc_opaque) < 0) { - av_log(s, AV_LOG_ERROR, "xvid_plugin_2pass2 failed\n"); - return -1; - } - return 0; -} - -float ff_xvid_rate_estimate_qscale(MpegEncContext *s, int dry_run) -{ - xvid_plg_data_t xvid_plg_data = { 0 }; - - xvid_plg_data.version = XVID_MAKE_VERSION(1, 1, 0); - xvid_plg_data.width = s->width; - xvid_plg_data.height = s->height; - xvid_plg_data.mb_width = s->mb_width; - xvid_plg_data.mb_height = s->mb_height; - xvid_plg_data.fbase = s->avctx->time_base.den; - xvid_plg_data.fincr = s->avctx->time_base.num; - xvid_plg_data.min_quant[0] = s->avctx->qmin; - xvid_plg_data.min_quant[1] = s->avctx->qmin; - xvid_plg_data.min_quant[2] = s->avctx->qmin; // FIXME i/b factor & offset - xvid_plg_data.max_quant[0] = s->avctx->qmax; - xvid_plg_data.max_quant[1] = s->avctx->qmax; - xvid_plg_data.max_quant[2] = s->avctx->qmax; // FIXME i/b factor & offset - xvid_plg_data.bquant_offset = 0; // 100 * s->avctx->b_quant_offset; - xvid_plg_data.bquant_ratio = 100; // * s->avctx->b_quant_factor; - - if (!s->rc_context.dry_run_qscale) { - if (s->picture_number) { - xvid_plg_data.length = - xvid_plg_data.stats.length = (s->frame_bits + 7) / 8; - xvid_plg_data.frame_num = s->rc_context.last_picture_number; - xvid_plg_data.quant = s->qscale; - xvid_plg_data.type = s->last_pict_type; - if (xvid_plugin_2pass2(s->rc_context.non_lavc_opaque, - XVID_PLG_AFTER, &xvid_plg_data, NULL)) { - av_log(s, AV_LOG_ERROR, - "xvid_plugin_2pass2(handle, XVID_PLG_AFTER, ...) FAILED\n"); - return -1; - } - } - s->rc_context.last_picture_number = - xvid_plg_data.frame_num = s->picture_number; - xvid_plg_data.quant = 0; - if (xvid_plugin_2pass2(s->rc_context.non_lavc_opaque, - XVID_PLG_BEFORE, &xvid_plg_data, NULL)) { - av_log(s, AV_LOG_ERROR, - "xvid_plugin_2pass2(handle, XVID_PLG_BEFORE, ...) FAILED\n"); - return -1; - } - s->rc_context.dry_run_qscale = xvid_plg_data.quant; - } - xvid_plg_data.quant = s->rc_context.dry_run_qscale; - if (!dry_run) - s->rc_context.dry_run_qscale = 0; - - // FIXME this is not exactly identical to Xvid - if (s->pict_type == AV_PICTURE_TYPE_B) - return xvid_plg_data.quant * FF_QP2LAMBDA * s->avctx->b_quant_factor + - s->avctx->b_quant_offset; - else - return xvid_plg_data.quant * FF_QP2LAMBDA; -} - -av_cold void ff_xvid_rate_control_uninit(MpegEncContext *s) -{ - xvid_plg_destroy_t xvid_plg_destroy; - - xvid_plugin_2pass2(s->rc_context.non_lavc_opaque, XVID_PLG_DESTROY, - &xvid_plg_destroy, NULL); -} diff --git a/libavcodec/mpegvideo.h b/libavcodec/mpegvideo.h index 541909cbb1..8a5296e493 100644 --- a/libavcodec/mpegvideo.h +++ b/libavcodec/mpegvideo.h @@ -369,7 +369,7 @@ typedef struct MpegEncContext { uint8_t *mb_info_ptr; int mb_info_size; int ehc_mode; - int rc_strategy; + int rc_strategy; ///< deprecated /* H.263+ specific */ int umvplus; ///< == H.263+ && unrestricted_mv @@ -587,12 +587,6 @@ typedef struct MpegEncContext { #define FF_MPV_FLAG_NAQ 0x0010 #define FF_MPV_FLAG_MV0 0x0020 -enum rc_strategy { - MPV_RC_STRATEGY_FFMPEG, - MPV_RC_STRATEGY_XVID, - NB_MPV_RC_STRATEGY -}; - #define FF_MPV_OPT_CMP_FUNC \ { "sad", "Sum of absolute differences, fast", 0, AV_OPT_TYPE_CONST, {.i64 = FF_CMP_SAD }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS, "cmp_func" }, \ { "sse", "Sum of squared errors", 0, AV_OPT_TYPE_CONST, {.i64 = FF_CMP_SSE }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS, "cmp_func" }, \ @@ -646,9 +640,9 @@ FF_MPV_OPT_CMP_FUNC, \ {"lmax", "maximum Lagrange factor (VBR)", FF_MPV_OFFSET(lmax), AV_OPT_TYPE_INT, {.i64 = 31*FF_QP2LAMBDA }, 0, INT_MAX, FF_MPV_OPT_FLAGS }, \ {"ibias", "intra quant bias", FF_MPV_OFFSET(intra_quant_bias), AV_OPT_TYPE_INT, {.i64 = FF_DEFAULT_QUANT_BIAS }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS }, \ {"pbias", "inter quant bias", FF_MPV_OFFSET(inter_quant_bias), AV_OPT_TYPE_INT, {.i64 = FF_DEFAULT_QUANT_BIAS }, INT_MIN, INT_MAX, FF_MPV_OPT_FLAGS }, \ -{"rc_strategy", "ratecontrol method", FF_MPV_OFFSET(rc_strategy), AV_OPT_TYPE_INT, {.i64 = MPV_RC_STRATEGY_FFMPEG }, 0, NB_MPV_RC_STRATEGY-1, FF_MPV_OPT_FLAGS, "rc_strategy" }, \ - { "ffmpeg", "default native rate control", 0, AV_OPT_TYPE_CONST, { .i64 = MPV_RC_STRATEGY_FFMPEG }, 0, 0, FF_MPV_OPT_FLAGS, "rc_strategy" }, \ - { "xvid", "libxvid (2 pass only)", 0, AV_OPT_TYPE_CONST, { .i64 = MPV_RC_STRATEGY_XVID }, 0, 0, FF_MPV_OPT_FLAGS, "rc_strategy" }, \ +{"rc_strategy", "ratecontrol method", FF_MPV_OFFSET(rc_strategy), AV_OPT_TYPE_INT, {.i64 = 0 }, 0, 1, FF_MPV_OPT_FLAGS, "rc_strategy" }, \ + { "ffmpeg", "deprecated, does nothing", 0, AV_OPT_TYPE_CONST, { .i64 = 0 }, 0, 0, FF_MPV_OPT_FLAGS, "rc_strategy" }, \ + { "xvid", "deprecated, does nothing", 0, AV_OPT_TYPE_CONST, { .i64 = 0 }, 0, 0, FF_MPV_OPT_FLAGS, "rc_strategy" }, \ {"motion_est", "motion estimation algorithm", FF_MPV_OFFSET(motion_est), AV_OPT_TYPE_INT, {.i64 = FF_ME_EPZS }, FF_ME_ZERO, FF_ME_XONE, FF_MPV_OPT_FLAGS, "motion_est" }, \ { "zero", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = FF_ME_ZERO }, 0, 0, FF_MPV_OPT_FLAGS, "motion_est" }, \ { "epzs", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = FF_ME_EPZS }, 0, 0, FF_MPV_OPT_FLAGS, "motion_est" }, \ diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index 979e138b88..9fdab31a25 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -1024,18 +1024,6 @@ FF_ENABLE_DEPRECATION_WARNINGS if (ff_rate_control_init(s) < 0) return -1; - if ((s->avctx->flags & AV_CODEC_FLAG_PASS2) && s->rc_strategy == MPV_RC_STRATEGY_XVID) { -#if CONFIG_LIBXVID - ret = ff_xvid_rate_control_init(s); -#else - ret = AVERROR(ENOSYS); - av_log(s->avctx, AV_LOG_ERROR, - "Xvid ratecontrol requires libavcodec compiled with Xvid support.\n"); -#endif - if (ret < 0) - return ret; - } - #if FF_API_PRIVATE_OPT FF_DISABLE_DEPRECATION_WARNINGS if (avctx->brd_scale) @@ -1082,10 +1070,6 @@ av_cold int ff_mpv_encode_end(AVCodecContext *avctx) int i; ff_rate_control_uninit(s); -#if CONFIG_LIBXVID - if ((avctx->flags & AV_CODEC_FLAG_PASS2) && s->rc_strategy == MPV_RC_STRATEGY_XVID) - ff_xvid_rate_control_uninit(s); -#endif ff_mpv_common_end(s); if (CONFIG_MJPEG_ENCODER && @@ -3620,13 +3604,7 @@ static int estimate_qp(MpegEncContext *s, int dry_run){ s->current_picture.f->quality = s->next_lambda; if(!dry_run) s->next_lambda= 0; } else if (!s->fixed_qscale) { - int quality; -#if CONFIG_LIBXVID - if ((s->avctx->flags & AV_CODEC_FLAG_PASS2) && s->rc_strategy == MPV_RC_STRATEGY_XVID) - quality = ff_xvid_rate_estimate_qscale(s, dry_run); - else -#endif - quality = ff_rate_estimate_qscale(s, dry_run); + int quality = ff_rate_estimate_qscale(s, dry_run); s->current_picture_ptr->f->quality = s->current_picture.f->quality = quality; if (s->current_picture.f->quality < 0)