From: Fiona Glaser Date: Fri, 7 Aug 2009 17:31:16 +0000 (-0700) Subject: Fix delay calculation with multiple threads X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3667fbf979136302e990df35d850e05cf8de8115;p=libx264 Fix delay calculation with multiple threads Delay frames for threading don't actually count as part of lookahead. --- diff --git a/encoder/encoder.c b/encoder/encoder.c index e599c4aa..26d3e3ca 100644 --- a/encoder/encoder.c +++ b/encoder/encoder.c @@ -746,11 +746,13 @@ x264_t *x264_encoder_open ( x264_param_t *param ) /* Init frames. */ if( h->param.i_bframe_adaptive == X264_B_ADAPT_TRELLIS ) - h->frames.i_delay = X264_MAX(h->param.i_bframe,3)*4 + h->param.i_threads - 1; + h->frames.i_delay = X264_MAX(h->param.i_bframe,3)*4; else - h->frames.i_delay = h->param.i_bframe + h->param.i_threads - 1; + h->frames.i_delay = h->param.i_bframe; if( h->param.rc.b_mb_tree ) h->frames.i_delay = X264_MAX( h->frames.i_delay, h->param.rc.i_lookahead ); + h->frames.i_delay += h->param.i_threads - 1; + h->frames.i_delay = X264_MIN( h->frames.i_delay, X264_LOOKAHEAD_MAX ); h->frames.i_max_ref0 = h->param.i_frame_reference; h->frames.i_max_ref1 = h->sps->vui.i_num_reorder_frames;