ffmpeg | branch: master | Jörn Heusipp <osm...@problemloesungsmaschine.de> | Sun Sep 17 15:35:50 2017 +0200| [3d2da6d585509daddcd65f206b1a262c9c78cbce] | committer: Josh de Kock
avformat/libopenmpt: Query duration and metadata after selecting subsong Duration depends on the selected subsong and thus must be queried after selecting the subsong. There is no compelling reason to query other metadata earlier either. Tested with libopenmpt version: 0.2.8760-beta27 Libopenmpt configure options: --without-ogg --without-vorbis --without-vorbisfile --without-portaudio --without-portaudiocpp --without-mpg123 --without-pulseaudio --without-sndfile --without-flac Signed-off-by: Jörn Heusipp <osm...@problemloesungsmaschine.de> Signed-off-by: Josh de Kock <j...@itanimul.li> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=3d2da6d585509daddcd65f206b1a262c9c78cbce --- libavformat/libopenmpt.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/libavformat/libopenmpt.c b/libavformat/libopenmpt.c index a7e385959a..af6eb1ac4a 100644 --- a/libavformat/libopenmpt.c +++ b/libavformat/libopenmpt.c @@ -93,14 +93,7 @@ static int read_header_openmpt(AVFormatContext *s) if (!openmpt->module) return AVERROR_INVALIDDATA; - openmpt->channels = av_get_channel_layout_nb_channels(openmpt->layout); - openmpt->duration = openmpt_module_get_duration_seconds(openmpt->module); - - add_meta(s, "artist", openmpt_module_get_metadata(openmpt->module, "artist")); - add_meta(s, "title", openmpt_module_get_metadata(openmpt->module, "title")); - add_meta(s, "encoder", openmpt_module_get_metadata(openmpt->module, "tracker")); - add_meta(s, "comment", openmpt_module_get_metadata(openmpt->module, "message")); - add_meta(s, "date", openmpt_module_get_metadata(openmpt->module, "date")); + openmpt->channels = av_get_channel_layout_nb_channels(openmpt->layout); if (openmpt->subsong >= openmpt_module_get_num_subsongs(openmpt->module)) { openmpt_module_destroy(openmpt->module); @@ -120,6 +113,14 @@ static int read_header_openmpt(AVFormatContext *s) } } + openmpt->duration = openmpt_module_get_duration_seconds(openmpt->module); + + add_meta(s, "artist", openmpt_module_get_metadata(openmpt->module, "artist")); + add_meta(s, "title", openmpt_module_get_metadata(openmpt->module, "title")); + add_meta(s, "encoder", openmpt_module_get_metadata(openmpt->module, "tracker")); + add_meta(s, "comment", openmpt_module_get_metadata(openmpt->module, "message")); + add_meta(s, "date", openmpt_module_get_metadata(openmpt->module, "date")); + st = avformat_new_stream(s, NULL); if (!st) { openmpt_module_destroy(openmpt->module); _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog