From f7f8120fb9a06b5d7fbf5add48a0d8464319a332 Mon Sep 17 00:00:00 2001 From: Jason Garrett-Glaser Date: Sun, 6 Feb 2011 05:10:15 -0800 Subject: [PATCH] Fix broken vbv_buffer_init handling in libx264.c Due to being pants-on-head retarded, libavcodec defaults this to zero, which results in broken output. This didn't affect ffmpeg.c, which sets it itself, but caused problems for other calling apps using VBV. --- libavcodec/libx264.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c index 84ecb2aecb..185287c1cf 100644 --- a/libavcodec/libx264.c +++ b/libavcodec/libx264.c @@ -277,12 +277,11 @@ static av_cold int X264_init(AVCodecContext *avctx) if (avctx->level > 0) x4->params.i_level_idc = avctx->level; - if ((avctx->rc_buffer_size != 0) && + if (avctx->rc_buffer_size && avctx->rc_initial_buffer_occupancy && (avctx->rc_initial_buffer_occupancy <= avctx->rc_buffer_size)) { x4->params.rc.f_vbv_buffer_init = (float)avctx->rc_initial_buffer_occupancy / avctx->rc_buffer_size; - } else - x4->params.rc.f_vbv_buffer_init = 0.9; + } x4->params.rc.b_mb_tree = !!(avctx->flags2 & CODEC_FLAG2_MBTREE); x4->params.rc.f_ip_factor = 1 / fabs(avctx->i_quant_factor);