Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2015-10-04 13:27:10 +0300
committerAnton Khirnov <anton@khirnov.net>2015-12-06 12:26:13 +0300
commit8bcadaacc2b8dc3c5d6569835a5ca20e62d3efca (patch)
treef1a1f210e80db694894a9c8d98ea8e2c783d3570 /libavformat/mpegenc.c
parent5845a8273e4694e0254ad728970b82bb64fd8bc0 (diff)
mpegenc: use the CPB props side data
Do not access the encoder options, since it makes no sense when the AVStream codec context is not the encoding context.
Diffstat (limited to 'libavformat/mpegenc.c')
-rw-r--r--libavformat/mpegenc.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/libavformat/mpegenc.c b/libavformat/mpegenc.c
index 33eaefd9ff..ac5a83c8c8 100644
--- a/libavformat/mpegenc.c
+++ b/libavformat/mpegenc.c
@@ -341,6 +341,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)
@@ -383,8 +385,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, muxing may fail\n");
@@ -408,13 +412,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;