id3v2: don't overwrite existing tags
authorAnton Khirnov <anton@khirnov.net>
Thu, 20 Jan 2011 08:06:58 +0000 (09:06 +0100)
committerMans Rullgard <mans@mansr.com>
Thu, 20 Jan 2011 13:39:19 +0000 (13:39 +0000)
Apparently some broken taggers prepend a new ID3v2 tag leaving the
existing one intact. Our parser currently reads all tags and overwrites
existing values with supposedly outdated ones.

fixes issue2419

Signed-off-by: Mans Rullgard <mans@mansr.com>
libavformat/id3v2.c

index 4da7ec6..95ec0b0 100644 (file)
@@ -132,7 +132,7 @@ static void read_ttag(AVFormatContext *s, ByteIOContext *pb, int taglen, const c
         val = dst;
 
     if (val)
-        av_metadata_set2(&s->metadata, key, val, 0);
+        av_metadata_set2(&s->metadata, key, val, AV_METADATA_DONT_OVERWRITE);
 }
 
 static void ff_id3v2_parse(AVFormatContext *s, int len, uint8_t version, uint8_t flags)