diff options
author | Luca Barbato <lu_zero@gentoo.org> | 2013-01-14 05:32:38 +0100 |
---|---|---|
committer | Luca Barbato <lu_zero@gentoo.org> | 2013-01-15 08:58:51 +0100 |
commit | bff3607547fdbb6e32b3830a351e6a33280c1e0d (patch) | |
tree | 882dd67362c44ea4bf303473e00e156a3ed7ab90 | |
parent | d8c772de53d29afb1bada88afa859fce8489c668 (diff) | |
download | ffmpeg-bff3607547fdbb6e32b3830a351e6a33280c1e0d.tar.gz |
lavc: set the default rc_initial_buffer_occupancy
rc_buffer_size is not set before.
Solve the initial the rate control underflow issue reported in
bug 222.
CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
-rw-r--r-- | avconv_opt.c | 2 | ||||
-rw-r--r-- | libavcodec/utils.c | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/avconv_opt.c b/avconv_opt.c index ce32df6b6b..e67abefd77 100644 --- a/avconv_opt.c +++ b/avconv_opt.c @@ -950,8 +950,6 @@ static OutputStream *new_video_stream(OptionsContext *o, AVFormatContext *oc) if (p) p++; } video_enc->rc_override_count = i; - if (!video_enc->rc_initial_buffer_occupancy) - video_enc->rc_initial_buffer_occupancy = video_enc->rc_buffer_size * 3 / 4; video_enc->intra_dc_precision = intra_dc_precision - 8; /* two pass mode */ diff --git a/libavcodec/utils.c b/libavcodec/utils.c index 23f2ac481a..19c8a99ff5 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -824,6 +824,9 @@ int attribute_align_arg avcodec_open2(AVCodecContext *avctx, const AVCodec *code } else if (avctx->channel_layout) { avctx->channels = av_get_channel_layout_nb_channels(avctx->channel_layout); } + + if (!avctx->rc_initial_buffer_occupancy) + avctx->rc_initial_buffer_occupancy = avctx->rc_buffer_size * 3 / 4; } if (avctx->codec->init && !(avctx->active_thread_type & FF_THREAD_FRAME)) { |