summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--demux/demux_mkv.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/demux/demux_mkv.c b/demux/demux_mkv.c
index bb1125a0f2..6eb48cbeea 100644
--- a/demux/demux_mkv.c
+++ b/demux/demux_mkv.c
@@ -1103,8 +1103,14 @@ static void process_tags(demuxer_t *demuxer)
if (dst) {
for (int j = 0; j < tag.n_simple_tag; j++) {
if (tag.simple_tag[j].tag_name && tag.simple_tag[j].tag_string) {
- mp_tags_set_str(dst, tag.simple_tag[j].tag_name,
- tag.simple_tag[j].tag_string);
+ char *name = tag.simple_tag[j].tag_name;
+ char *val = tag.simple_tag[j].tag_string;
+ char *old = mp_tags_get_str(dst, name);
+ if (old)
+ val = talloc_asprintf(NULL, "%s / %s", old, val);
+ mp_tags_set_str(dst, name, val);
+ if (old)
+ talloc_free(val);
}
}
}