mirror of
https://github.com/mpv-player/mpv
synced 2025-04-06 17:43:02 +00:00
Use new libavformat metadata API.
Patch by Anton Khirnov <wyskas@gmail.com>. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29497 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
e9db7e8b4f
commit
14df605236
@ -422,6 +422,7 @@ static demuxer_t* demux_open_lavf(demuxer_t *demuxer){
|
|||||||
AVFormatContext *avfc;
|
AVFormatContext *avfc;
|
||||||
AVFormatParameters ap;
|
AVFormatParameters ap;
|
||||||
const AVOption *opt;
|
const AVOption *opt;
|
||||||
|
AVMetadataTag *t = NULL;
|
||||||
lavf_priv_t *priv= demuxer->priv;
|
lavf_priv_t *priv= demuxer->priv;
|
||||||
int i;
|
int i;
|
||||||
char mp_filename[256]="mp:";
|
char mp_filename[256]="mp:";
|
||||||
@ -477,20 +478,17 @@ static demuxer_t* demux_open_lavf(demuxer_t *demuxer){
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(avfc->title [0]) demux_info_add(demuxer, "title" , avfc->title );
|
/* Add metadata. */
|
||||||
if(avfc->author [0]) demux_info_add(demuxer, "author" , avfc->author );
|
av_metadata_conv(avfc, NULL, avfc->iformat->metadata_conv);
|
||||||
if(avfc->copyright[0]) demux_info_add(demuxer, "copyright", avfc->copyright);
|
while((t = av_metadata_get(avfc->metadata, "", t, AV_METADATA_IGNORE_SUFFIX)))
|
||||||
if(avfc->comment [0]) demux_info_add(demuxer, "comments" , avfc->comment );
|
demux_info_add(demuxer, t->key, t->value);
|
||||||
if(avfc->album [0]) demux_info_add(demuxer, "album" , avfc->album );
|
|
||||||
// if(avfc->year ) demux_info_add(demuxer, "year" , avfc->year );
|
|
||||||
// if(avfc->track ) demux_info_add(demuxer, "track" , avfc->track );
|
|
||||||
if(avfc->genre [0]) demux_info_add(demuxer, "genre" , avfc->genre );
|
|
||||||
|
|
||||||
for(i=0; i < avfc->nb_chapters; i++) {
|
for(i=0; i < avfc->nb_chapters; i++) {
|
||||||
AVChapter *c = avfc->chapters[i];
|
AVChapter *c = avfc->chapters[i];
|
||||||
uint64_t start = av_rescale_q(c->start, c->time_base, (AVRational){1,1000});
|
uint64_t start = av_rescale_q(c->start, c->time_base, (AVRational){1,1000});
|
||||||
uint64_t end = av_rescale_q(c->end, c->time_base, (AVRational){1,1000});
|
uint64_t end = av_rescale_q(c->end, c->time_base, (AVRational){1,1000});
|
||||||
demuxer_add_chapter(demuxer, c->title, start, end);
|
t = av_metadata_get(c->metadata, "title", NULL, 0);
|
||||||
|
demuxer_add_chapter(demuxer, t ? t->value : NULL, start, end);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(avfc->nb_programs) {
|
if(avfc->nb_programs) {
|
||||||
@ -512,7 +510,8 @@ static demuxer_t* demux_open_lavf(demuxer_t *demuxer){
|
|||||||
p = start;
|
p = start;
|
||||||
do {
|
do {
|
||||||
AVProgram *program = avfc->programs[p];
|
AVProgram *program = avfc->programs[p];
|
||||||
mp_msg(MSGT_HEADER,MSGL_INFO,"LAVF: Program %d %s\n", program->id, (program->name ? program->name : ""));
|
t = av_metadata_get(program->metadata, "title", NULL, 0);
|
||||||
|
mp_msg(MSGT_HEADER,MSGL_INFO,"LAVF: Program %d %s\n", program->id, t ? t->value : "");
|
||||||
for(i=0; i<program->nb_stream_indexes; i++)
|
for(i=0; i<program->nb_stream_indexes; i++)
|
||||||
handle_stream(demuxer, avfc, program->stream_index[i]);
|
handle_stream(demuxer, avfc, program->stream_index[i]);
|
||||||
if(!priv->cur_program && (demuxer->video->sh || demuxer->audio->sh))
|
if(!priv->cur_program && (demuxer->video->sh || demuxer->audio->sh))
|
||||||
|
Loading…
Reference in New Issue
Block a user