diff options
author | Martin Storsjö <martin@martin.st> | 2011-04-20 10:10:10 +0300 |
---|---|---|
committer | Martin Storsjö <martin@martin.st> | 2011-04-21 14:13:09 +0300 |
commit | fe8e039460064ad765c37736dadd123478c5ff1f (patch) | |
tree | 83bf4833d776d2cf821186d7be4f92dc46b59020 /libavformat | |
parent | cac275791994be44b7a6d11a3878646e78ab5653 (diff) | |
download | ffmpeg-fe8e039460064ad765c37736dadd123478c5ff1f.tar.gz |
applehttp: Expose the stream bitrate via metadata
This helps callers to intelligently switch between bitrate
variants.
Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'libavformat')
-rw-r--r-- | libavformat/applehttp.c | 3 | ||||
-rw-r--r-- | libavformat/avformat.h | 1 | ||||
-rw-r--r-- | libavformat/version.h | 2 |
3 files changed, 5 insertions, 1 deletions
diff --git a/libavformat/applehttp.c b/libavformat/applehttp.c index df4494a785..90b86a8733 100644 --- a/libavformat/applehttp.c +++ b/libavformat/applehttp.c @@ -367,6 +367,7 @@ static int applehttp_read_header(AVFormatContext *s, AVFormatParameters *ap) for (i = 0; i < c->n_variants; i++) { struct variant *v = c->variants[i]; AVInputFormat *in_fmt = NULL; + char bitrate_str[20]; if (v->n_segments == 0) continue; @@ -393,6 +394,7 @@ static int applehttp_read_header(AVFormatContext *s, AVFormatParameters *ap) if (ret < 0) goto fail; v->stream_offset = stream_offset; + snprintf(bitrate_str, sizeof(bitrate_str), "%d", v->bandwidth); /* Create new AVStreams for each stream in this variant */ for (j = 0; j < v->ctx->nb_streams; j++) { AVStream *st = av_new_stream(s, i); @@ -401,6 +403,7 @@ static int applehttp_read_header(AVFormatContext *s, AVFormatParameters *ap) goto fail; } avcodec_copy_context(st->codec, v->ctx->streams[j]->codec); + av_metadata_set2(&st->metadata, "variant_bitrate", bitrate_str, 0); } stream_offset += v->ctx->nb_streams; } diff --git a/libavformat/avformat.h b/libavformat/avformat.h index 2567aabd5a..732756222e 100644 --- a/libavformat/avformat.h +++ b/libavformat/avformat.h @@ -104,6 +104,7 @@ struct AVFormatContext; * service_provider -- name of the service provider in broadcasting. * title -- name of the work. * track -- number of this work in the set, can be in form current/total. + * variant_bitrate -- the total bitrate of the bitrate variant that the current stream is part of */ #define AV_METADATA_MATCH_CASE 1 diff --git a/libavformat/version.h b/libavformat/version.h index 01730183b2..04c5d73f50 100644 --- a/libavformat/version.h +++ b/libavformat/version.h @@ -25,7 +25,7 @@ #define LIBAVFORMAT_VERSION_MAJOR 53 #define LIBAVFORMAT_VERSION_MINOR 0 -#define LIBAVFORMAT_VERSION_MICRO 0 +#define LIBAVFORMAT_VERSION_MICRO 1 #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ LIBAVFORMAT_VERSION_MINOR, \ |