Allow the user to set or override the vbv size --- libavformat/mpegenc.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/libavformat/mpegenc.c b/libavformat/mpegenc.c index f6980231a2..1613c8afa1 100644 --- a/libavformat/mpegenc.c +++ b/libavformat/mpegenc.c @@ -67,6 +67,7 @@ typedef struct MpegMuxContext { int system_header_freq; int system_header_size; int user_mux_rate; /* bitrate in units of bits/s */ + int user_vbv_size; /* vbv buffer size in units of bits/s */ int mux_rate; /* bitrate in units of 50 bytes/s */ /* stream info */ int audio_bound; @@ -433,7 +434,9 @@ static av_cold int mpeg_mux_init(AVFormatContext *ctx) stream->id = mpv_id++; props = (AVCPBProperties*)av_stream_get_side_data(st, AV_PKT_DATA_CPB_PROPERTIES, NULL); - if (props && props->buffer_size) + if (s->user_vbv_size) + stream->max_buffer_size = 6 * 1024 + s->user_vbv_size / 8; + else if (props && props->buffer_size) stream->max_buffer_size = 6 * 1024 + props->buffer_size / 8; else { av_log(ctx, AV_LOG_WARNING, @@ -1268,6 +1271,7 @@ static void mpeg_mux_deinit(AVFormatContext *ctx) #define E AV_OPT_FLAG_ENCODING_PARAM static const AVOption options[] = { { "muxrate", NULL, OFFSET(user_mux_rate), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, ((1<<22) - 1) * (8 * 50), E }, + { "vbvsize", "set vbv buffer size (in bits)", OFFSET(user_vbv_size), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, (1LL<<32) - 1, E}, { "preload", "Initial demux-decode delay in microseconds.", OFFSET(preload), AV_OPT_TYPE_INT, { .i64 = 500000 }, 0, INT_MAX, E }, { NULL }, }; -- 2.22.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".