Browse Source

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.
(cherry picked from commit f7f8120fb9)
tags/n0.8
Jason Garrett-Glaser Michael Niedermayer 14 years ago
parent
commit
2c855cea85
1 changed files with 2 additions and 3 deletions
  1. +2
    -3
      libavcodec/libx264.c

+ 2
- 3
libavcodec/libx264.c View File

@@ -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);


Loading…
Cancel
Save