[FFmpeg-devel] [PATCH 07/12] ratecontrol: fix stuffing bits for 30000/1001 fps one frame vbv

Baptiste Coudurier baptiste.coudurier at gmail.com
Wed Jul 4 21:35:09 EEST 2018


---
 libavcodec/ratecontrol.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/libavcodec/ratecontrol.c b/libavcodec/ratecontrol.c
index 49d169ba25..28bdddbad1 100644
--- a/libavcodec/ratecontrol.c
+++ b/libavcodec/ratecontrol.c
@@ -705,16 +705,16 @@ int ff_vbv_update(MpegEncContext *s, int frame_size)
         rcc->buffer_index += av_clip(left, min_rate, max_rate);
 
         if (rcc->buffer_index > buffer_size) {
-            int stuffing = ceil((rcc->buffer_index - buffer_size) / 8);
+            int stuffing = rcc->buffer_index - buffer_size;
 
-            if (stuffing < 4 && s->codec_id == AV_CODEC_ID_MPEG4)
-                stuffing = 4;
-            rcc->buffer_index -= 8 * stuffing;
+            if (stuffing < 32 && s->codec_id == AV_CODEC_ID_MPEG4)
+                stuffing = 32;
+            rcc->buffer_index -= stuffing;
 
             if (s->avctx->debug & FF_DEBUG_RC)
-                av_log(s->avctx, AV_LOG_DEBUG, "stuffing %d bytes\n", stuffing);
+                av_log(s->avctx, AV_LOG_DEBUG, "stuffing %d bytes\n", stuffing>>3);
 
-            return stuffing;
+            return stuffing>>3;
         }
     }
     return 0;
-- 
2.17.0 (Apple Git-106)



More information about the ffmpeg-devel mailing list