From 57facb73ab940b1117c22ef9b70a6e5ec237112d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Fri, 13 Jan 2012 23:41:16 +0200 Subject: [PATCH] libx264: Don't leave max_b_frames as -1 if the user didn't set it MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit max_b_frames is initialized to -1 for libx264, to allow distinguishing between an explicit user set 0 and a default not touched 0 (see bb73cda2). If max_b_frames is left as -1, this affects dts generation (where expressions like max_b_frames != 0 are used), so make sure it is left at the default 0 after the libx264 init function returns. This avoids unnecessarily producing dts != pts when using profile=baseline. Signed-off-by: Martin Storsjö --- libavcodec/libx264.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c index 9b347951fd..b3581f168f 100644 --- a/libavcodec/libx264.c +++ b/libavcodec/libx264.c @@ -448,6 +448,9 @@ static av_cold int X264_init(AVCodecContext *avctx) // update AVCodecContext with x264 parameters avctx->has_b_frames = x4->params.i_bframe ? x4->params.i_bframe_pyramid ? 2 : 1 : 0; + if (avctx->max_b_frames < 0) + avctx->max_b_frames = 0; + avctx->bit_rate = x4->params.rc.i_bitrate*1000; #if FF_API_X264_GLOBAL_OPTS avctx->crf = x4->params.rc.f_rf_constant;