mirror of https://git.ffmpeg.org/ffmpeg.git
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.
This commit is contained in:
parent
62457f9052
commit
f7f8120fb9
|
@ -277,12 +277,11 @@ static av_cold int X264_init(AVCodecContext *avctx)
|
||||||
if (avctx->level > 0)
|
if (avctx->level > 0)
|
||||||
x4->params.i_level_idc = avctx->level;
|
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)) {
|
(avctx->rc_initial_buffer_occupancy <= avctx->rc_buffer_size)) {
|
||||||
x4->params.rc.f_vbv_buffer_init =
|
x4->params.rc.f_vbv_buffer_init =
|
||||||
(float)avctx->rc_initial_buffer_occupancy / avctx->rc_buffer_size;
|
(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.b_mb_tree = !!(avctx->flags2 & CODEC_FLAG2_MBTREE);
|
||||||
x4->params.rc.f_ip_factor = 1 / fabs(avctx->i_quant_factor);
|
x4->params.rc.f_ip_factor = 1 / fabs(avctx->i_quant_factor);
|
||||||
|
|
Loading…
Reference in New Issue