vlc | branch: master | Ilkka Ollakka <[email protected]> | Sat Nov 30 16:47:28 2013 +0200| [0d7b2bd84be400a34785e6f44b0900d62b8507c9] | committer: Ilkka Ollakka
avcodec: define 1/2 second buffer size by default mpeg-based codecs seems to require this to be able to produce ~cbr output. Should Fix #8239 and #9983 > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=0d7b2bd84be400a34785e6f44b0900d62b8507c9 --- modules/codec/avcodec/encoder.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/modules/codec/avcodec/encoder.c b/modules/codec/avcodec/encoder.c index 85e150d..910fb13 100644 --- a/modules/codec/avcodec/encoder.c +++ b/modules/codec/avcodec/encoder.c @@ -597,11 +597,15 @@ int OpenEncoder( vlc_object_t *p_this ) else { p_context->rc_qsquish = 1.0; - if( p_sys->i_rc_buffer_size ) + /* Default to 1/2 second buffer for given bitrate unless defined otherwise*/ + if( !p_sys->i_rc_buffer_size ) { - p_context->rc_max_rate = p_enc->fmt_out.i_bitrate; - p_context->rc_min_rate = p_enc->fmt_out.i_bitrate; + p_sys->i_rc_buffer_size = p_enc->fmt_out.i_bitrate * 8 / 2; } + msg_Dbg( p_enc, "rc buffer size %d bits", p_sys->i_rc_buffer_size ); + /* Set maxrate/minrate to bitrate to try to get CBR */ + p_context->rc_max_rate = p_enc->fmt_out.i_bitrate; + p_context->rc_min_rate = p_enc->fmt_out.i_bitrate; p_context->rc_buffer_size = p_sys->i_rc_buffer_size; /* This is from ffmpeg's ffmpeg.c : */ p_context->rc_initial_buffer_occupancy _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
