Index: libmpdemux/demux_lavf.c =================================================================== --- libmpdemux/demux_lavf.c (revision 29351) +++ libmpdemux/demux_lavf.c (working copy) @@ -421,6 +421,7 @@ static demuxer_t* demux_open_lavf(demuxer_t *demuxer){ AVFormatContext *avfc; AVFormatParameters ap; + AVMetadataTag *tag; const AVOption *opt; lavf_priv_t *priv= demuxer->priv; int i; @@ -486,6 +487,34 @@ // if(avfc->track ) demux_info_add(demuxer, "track" , avfc->track ); if(avfc->genre [0]) demux_info_add(demuxer, "genre" , avfc->genre ); + tag = av_metadata_get(avfc->metadata, "collection/title" , NULL, 0); + if(tag && tag->value) + demux_info_add(demuxer, "collection/title" , tag->value ); + + tag = av_metadata_get(avfc->metadata, "collection/production_studio" , NULL, 0); + if(tag && tag->value) + demux_info_add(demuxer, "collection/production_studio" , tag->value ); + + tag = av_metadata_get(avfc->metadata, "collection/date_release" , NULL, 0); + if(tag && tag->value) + demux_info_add(demuxer, "collection/date_release" , tag->value ); + + tag = av_metadata_get(avfc->metadata, "season/date_release" , NULL, 0); + if(tag && tag->value) + demux_info_add(demuxer, "season/date_release" , tag->value ); + + tag = av_metadata_get(avfc->metadata, "season/part_number" , NULL, 0); + if(tag && tag->value) + demux_info_add(demuxer, "season/part_number" , tag->value ); + + tag = av_metadata_get(avfc->metadata, "episode/title" , NULL, 0); + if(tag && tag->value) + demux_info_add(demuxer, "episode/title" , tag->value ); + + tag = av_metadata_get(avfc->metadata, "episode/part_number" , NULL, 0); + if(tag && tag->value) + demux_info_add(demuxer, "episode/part_number" , tag->value ); + for(i=0; i < avfc->nb_chapters; i++) { AVChapter *c = avfc->chapters[i]; uint64_t start = av_rescale_q(c->start, c->time_base, (AVRational){1,1000});