avcodec/mpegvideo_enc: override bitrate tolerance when its value is too small
authorMichael Niedermayer <michaelni@gmx.at>
Fri, 11 Apr 2014 23:29:20 +0000 (01:29 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Fri, 11 Apr 2014 23:29:20 +0000 (01:29 +0200)
Fixes Ticket3257

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/mpegvideo_enc.c

index 6f043bb..09b48ab 100644 (file)
@@ -409,9 +409,9 @@ av_cold int ff_MPV_encode_init(AVCodecContext *avctx)
     if (!s->fixed_qscale &&
         avctx->bit_rate * av_q2d(avctx->time_base) >
             avctx->bit_rate_tolerance) {
-        av_log(avctx, AV_LOG_ERROR,
-               "bitrate tolerance %d too small for bitrate %d\n", avctx->bit_rate_tolerance, avctx->bit_rate);
-        return -1;
+        av_log(avctx, AV_LOG_WARNING,
+               "bitrate tolerance %d too small for bitrate %d, overriding\n", avctx->bit_rate_tolerance, avctx->bit_rate);
+        avctx->bit_rate_tolerance = 5 * avctx->bit_rate * av_q2d(avctx->time_base);
     }
 
     if (s->avctx->rc_max_rate &&