diff options
author | Hendrik Leppkes <h.leppkes@gmail.com> | 2015-12-17 13:55:39 +0100 |
---|---|---|
committer | Hendrik Leppkes <h.leppkes@gmail.com> | 2015-12-17 13:55:39 +0100 |
commit | 079b5d4ef888bd42bf0147a6d964b8bc9ec0f3c5 (patch) | |
tree | 7db47f770ed1487fc1229e8b6f47f05641da47aa | |
parent | f95385dd580604aa287b41093edd692f34c7613b (diff) | |
parent | 8bcadaacc2b8dc3c5d6569835a5ca20e62d3efca (diff) | |
download | ffmpeg-079b5d4ef888bd42bf0147a6d964b8bc9ec0f3c5.tar.gz |
Merge commit '8bcadaacc2b8dc3c5d6569835a5ca20e62d3efca'
* commit '8bcadaacc2b8dc3c5d6569835a5ca20e62d3efca':
mpegenc: use the CPB props side data
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
-rw-r--r-- | libavformat/mpegenc.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/libavformat/mpegenc.c b/libavformat/mpegenc.c index b3ee2a09b9..2e095495f0 100644 --- a/libavformat/mpegenc.c +++ b/libavformat/mpegenc.c @@ -338,6 +338,8 @@ static av_cold int mpeg_mux_init(AVFormatContext *ctx) lpcm_id = LPCM_ID; for (i = 0; i < ctx->nb_streams; i++) { + AVCPBProperties *props; + st = ctx->streams[i]; stream = av_mallocz(sizeof(StreamInfo)); if (!stream) @@ -389,8 +391,10 @@ static av_cold int mpeg_mux_init(AVFormatContext *ctx) stream->id = h264_id++; else stream->id = mpv_id++; - if (st->codec->rc_buffer_size) - stream->max_buffer_size = 6 * 1024 + st->codec->rc_buffer_size / 8; + + props = (AVCPBProperties*)av_stream_get_side_data(st, AV_PKT_DATA_CPB_PROPERTIES, NULL); + if (props && props->buffer_size) + stream->max_buffer_size = 6 * 1024 + props->buffer_size / 8; else { av_log(ctx, AV_LOG_WARNING, "VBV buffer size not set, using default size of 130KB\n" @@ -422,13 +426,14 @@ static av_cold int mpeg_mux_init(AVFormatContext *ctx) audio_bitrate = 0; video_bitrate = 0; for (i = 0; i < ctx->nb_streams; i++) { + AVCPBProperties *props; int codec_rate; st = ctx->streams[i]; stream = (StreamInfo *)st->priv_data; - if (st->codec->rc_max_rate || - st->codec->codec_type == AVMEDIA_TYPE_VIDEO) - codec_rate = st->codec->rc_max_rate; + props = (AVCPBProperties*)av_stream_get_side_data(st, AV_PKT_DATA_CPB_PROPERTIES, NULL); + if (props) + codec_rate = props->max_bitrate; else codec_rate = st->codec->bit_rate; |