From adc25db91ebef53b7883bb1587df1dd2247e4f21 Mon Sep 17 00:00:00 2001 From: Fiona Glaser <fiona@x264.com> Date: Wed, 26 Aug 2009 20:30:47 -0700 Subject: [PATCH] Fix keyint=1 + VBV + rc-lookahead --- encoder/encoder.c | 2 ++ encoder/slicetype.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/encoder/encoder.c b/encoder/encoder.c index 955b2ec1..c87ae905 100644 --- a/encoder/encoder.c +++ b/encoder/encoder.c @@ -478,6 +478,8 @@ static int x264_validate_parameters( x264_t *h ) h->param.analyse.i_direct_mv_pred = X264_DIRECT_PRED_SPATIAL; } h->param.i_bframe = x264_clip3( h->param.i_bframe, 0, X264_BFRAME_MAX ); + if( h->param.i_keyint_max == 1 ) + h->param.i_bframe = 0; h->param.i_bframe_bias = x264_clip3( h->param.i_bframe_bias, -90, 100 ); h->param.b_bframe_pyramid = h->param.b_bframe_pyramid && h->param.i_bframe > 1; if( !h->param.i_bframe ) diff --git a/encoder/slicetype.c b/encoder/slicetype.c index 75dc0207..aec76a4d 100644 --- a/encoder/slicetype.c +++ b/encoder/slicetype.c @@ -861,7 +861,7 @@ static void x264_slicetype_analyse( x264_t *h, int keyframe ) { if( ((j-keyint_limit) % h->param.i_keyint_max) == 0 ) { - if( j ) + if( j && h->param.i_keyint_max > 1 ) frames[j]->i_type = X264_TYPE_P; frames[j+1]->i_type = X264_TYPE_IDR; reset_start = X264_MIN( reset_start, j+2 ); -- 2.40.0