mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-26 19:01:44 +02:00
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
)
This commit is contained in:
parent
a1b0a3c8bd
commit
2c855cea85
@ -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
Block a user