[FFmpeg-cvslog] libx264: Don't leave max_b_frames as -1 if the user didn't set it

Martin Storsjö git at videolan.org
Sun Jan 15 02:18:05 CET 2012


ffmpeg | branch: master | Martin Storsjö <martin at martin.st> | Fri Jan 13 23:41:16 2012 +0200| [57facb73ab940b1117c22ef9b70a6e5ec237112d] | committer: Martin Storsjö

libx264: Don't leave max_b_frames as -1 if the user didn't set it

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ö <martin at martin.st>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=57facb73ab940b1117c22ef9b70a6e5ec237112d
---

 libavcodec/libx264.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c
index 9b34795..b3581f1 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;



More information about the ffmpeg-cvslog mailing list