From 3667fbf979136302e990df35d850e05cf8de8115 Mon Sep 17 00:00:00 2001 From: Fiona Glaser Date: Fri, 7 Aug 2009 10:31:16 -0700 Subject: [PATCH] Fix delay calculation with multiple threads Delay frames for threading don't actually count as part of lookahead. --- encoder/encoder.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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; -- 2.40.0