Commit 5b31dd1c authored by Jan Ekström's avatar Jan Ekström Committed by Jan Ekström

avformat/hlsenc: use stream's maximum bit rate as fall-back advertised rate

Enables having proper bit rate values being written into the master
playlist in case of hard-constrained VBR where the maximum bit
rate utilized is known before hand.

Does the same thing as movenc.c, for example.
Signed-off-by: 's avatarJan Ekström <jan.ekstrom@aminocom.com>
parent 87455b78
...@@ -1174,6 +1174,21 @@ static int get_relative_url(const char *master_url, const char *media_url, ...@@ -1174,6 +1174,21 @@ static int get_relative_url(const char *master_url, const char *media_url,
return 0; return 0;
} }
static int64_t get_stream_bit_rate(AVStream *stream) {
AVCPBProperties *props = (AVCPBProperties*)av_stream_get_side_data(
stream,
AV_PKT_DATA_CPB_PROPERTIES,
NULL
);
if (stream->codecpar->bit_rate)
return stream->codecpar->bit_rate;
else if (props)
return props->max_bitrate;
return 0;
}
static int create_master_playlist(AVFormatContext *s, static int create_master_playlist(AVFormatContext *s,
VariantStream * const input_vs) VariantStream * const input_vs)
{ {
...@@ -1300,9 +1315,9 @@ static int create_master_playlist(AVFormatContext *s, ...@@ -1300,9 +1315,9 @@ static int create_master_playlist(AVFormatContext *s,
bandwidth = 0; bandwidth = 0;
if (vid_st) if (vid_st)
bandwidth += vid_st->codecpar->bit_rate; bandwidth += get_stream_bit_rate(vid_st);
if (aud_st) if (aud_st)
bandwidth += aud_st->codecpar->bit_rate; bandwidth += get_stream_bit_rate(aud_st);
bandwidth += bandwidth / 10; bandwidth += bandwidth / 10;
ccgroup = NULL; ccgroup = NULL;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment