From: Fiona Glaser Date: Wed, 19 Aug 2009 02:25:45 +0000 (-0700) Subject: Fix bug in VBV lookahead + no MB-tree X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=678b317aca6f75ecab89cf21c31e05748e9d2a5f;p=libx264 Fix bug in VBV lookahead + no MB-tree I-frames need to have VBV lookahead run on them as well. --- diff --git a/encoder/slicetype.c b/encoder/slicetype.c index 393f0b03..d4a80834 100644 --- a/encoder/slicetype.c +++ b/encoder/slicetype.c @@ -892,7 +892,8 @@ void x264_slicetype_decide( x264_t *h ) } else if( (h->param.i_bframe && h->param.i_bframe_adaptive) || h->param.i_scenecut_threshold - || h->param.rc.b_mb_tree ) + || h->param.rc.b_mb_tree + || (h->param.rc.i_vbv_buffer_size && h->param.rc.i_lookahead) ) x264_slicetype_analyse( h, 0 ); for( bframes = 0;; bframes++ ) @@ -950,8 +951,8 @@ int x264_rc_analyse_slice( x264_t *h ) if( IS_X264_TYPE_I(h->fenc->i_type) ) { p1 = b = 0; - /* For MB-tree, we have to perform propagation analysis on I-frames too. */ - if( h->param.rc.b_mb_tree ) + /* For MB-tree and VBV lookahead, we have to perform propagation analysis on I-frames too. */ + if( h->param.rc.b_mb_tree || (h->param.rc.i_vbv_buffer_size && h->param.rc.i_lookahead) ) { h->frames.last_nonb = h->fenc; x264_slicetype_analyse( h, 1 );