summaryrefslogtreecommitdiffstats
path: root/libavformat
diff options
context:
space:
mode:
authorJörn Heusipp <osmanx@problemloesungsmaschine.de>2017-09-17 15:35:50 +0200
committerJosh de Kock <josh@itanimul.li>2017-09-24 15:54:38 +0100
commit3d2da6d585509daddcd65f206b1a262c9c78cbce (patch)
tree4306fa3b158d13f3d90b1ebd2ad155448c6733a5 /libavformat
parent16adbfe60c35d42f440ec7ed4c320282333602ba (diff)
downloadffmpeg-streaming-3d2da6d585509daddcd65f206b1a262c9c78cbce.zip
ffmpeg-streaming-3d2da6d585509daddcd65f206b1a262c9c78cbce.tar.gz
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 <osmanx@problemloesungsmaschine.de> Signed-off-by: Josh de Kock <josh@itanimul.li>
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/libopenmpt.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/libavformat/libopenmpt.c b/libavformat/libopenmpt.c
index a7e3859..af6eb1a 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);
OpenPOWER on IntegriCloud