]> granicus.if.org Git - libx264/commitdiff
Fix a potential failure in VBV
authorFiona Glaser <fiona@x264.com>
Fri, 14 Aug 2009 00:13:33 +0000 (17:13 -0700)
committerFiona Glaser <fiona@x264.com>
Fri, 14 Aug 2009 00:13:33 +0000 (17:13 -0700)
If VBV does underflow, ratecontrol could be permanently broken for the rest of the clip.
Revert part of the previous VBV changes to fix this.

encoder/ratecontrol.c

index 1bc76a898fea37595be38d60964b0b5574cc1e5c..448789c361d4acaa9a9a353bee270ee5648f1b5a 100644 (file)
@@ -1459,7 +1459,7 @@ static double clip_qscale( x264_t *h, int pict_type, double q )
         double bits = predict_size( &rcc->pred[h->sh.i_type], q, rcc->last_satd );
         double qf = 1.0;
         if( bits > rcc->buffer_fill/2 )
-            qf = rcc->buffer_fill/(2*bits);
+            qf = x264_clip3f( rcc->buffer_fill/(2*bits), 0.2, 1.0 );
         q /= qf;
         bits *= qf;
         if( bits < rcc->buffer_rate/2 )