On Wed, 20 Apr 2011 23:08:40 +0300, Martin Storsjö <[email protected]> wrote: > This helps callers to intelligently switch between bitrate > variants. > --- > doc/demuxers.texi | 2 ++ > libavformat/applehttp.c | 3 +++ > libavformat/version.h | 2 +- > 3 files changed, 6 insertions(+), 1 deletions(-) > > diff --git a/doc/demuxers.texi b/doc/demuxers.texi > index 4168fc1..98f9fde 100644 > --- a/doc/demuxers.texi > +++ b/doc/demuxers.texi > @@ -72,5 +72,7 @@ This demuxer presents all AVStreams from all variant > streams. > The id field is set to the bitrate variant index number. By setting > the discard flags on AVStreams (by pressing 'a' or 'v' in ffplay), > the caller can decide which variant streams to actually receive. > +The total bitrate of the variant that the stream belongs to is > +available in a metadata key named "variant_bitrate". > > @c man end INPUT DEVICES > diff --git a/libavformat/applehttp.c b/libavformat/applehttp.c > index df4494a..90b86a8 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/version.h b/libavformat/version.h > index 0173018..04c5d73 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, \ > -- > 1.7.3.1
Please add an entry to the list of standard metadata tags in avformat.h. Otherwise ok. -- Anton Khirnov _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
