summaryrefslogtreecommitdiff
path: root/libavformat/oggparsevorbis.c
diff options
context:
space:
mode:
authorBen Boeckel <mathstuf@gmail.com>2014-02-05 12:10:55 -0500
committerMichael Niedermayer <michaelni@gmx.at>2014-02-05 22:36:48 +0100
commit0dc66553adb8b7dc89bc1118da0b0661a7ed1c09 (patch)
tree44f5342226008f908a99c3cee48b5d0c83a12306 /libavformat/oggparsevorbis.c
parent7eb84f2c3b30e562e346204a13412c31a07e13ed (diff)
vorbis: append data from tags together
Currently, if there are multiple 'performer' tags, the last one is the only one which appears. Instead, join them with a semicolon. Signed-off-by: Ben Boeckel <mathstuf@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat/oggparsevorbis.c')
-rw-r--r--libavformat/oggparsevorbis.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/libavformat/oggparsevorbis.c b/libavformat/oggparsevorbis.c
index 36ad7384ea..1c746376a8 100644
--- a/libavformat/oggparsevorbis.c
+++ b/libavformat/oggparsevorbis.c
@@ -155,10 +155,15 @@ int ff_vorbis_comment(AVFormatContext *as, AVDictionary **m,
av_log(as, AV_LOG_WARNING, "Failed to parse cover art block.\n");
continue;
}
- } else if (!ogm_chapter(as, tt, ct))
+ } else if (!ogm_chapter(as, tt, ct)) {
+ if (m && av_dict_get(*m, tt, NULL, 0)) {
+ av_dict_set(m, tt, ";", AV_DICT_APPEND);
+ }
av_dict_set(m, tt, ct,
AV_DICT_DONT_STRDUP_KEY |
- AV_DICT_DONT_STRDUP_VAL);
+ AV_DICT_APPEND);
+ av_freep(&ct);
+ }
}
}