avformat/wavdec: add support for 'id3 ' chunk
authorPaul B Mahol <onemda@gmail.com>
Wed, 12 Dec 2018 18:02:30 +0000 (19:02 +0100)
committerPaul B Mahol <onemda@gmail.com>
Thu, 13 Dec 2018 09:01:15 +0000 (10:01 +0100)
Fixes #5700.

libavformat/wavdec.c

index e280be4..6a024de 100644 (file)
@@ -34,6 +34,7 @@
 #include "avformat.h"
 #include "avio.h"
 #include "avio_internal.h"
+#include "id3v2.h"
 #include "internal.h"
 #include "metadata.h"
 #include "pcm.h"
@@ -500,6 +501,18 @@ static int wav_read_header(AVFormatContext *s)
                 ff_read_riff_info(s, size - 4);
             }
             break;
+        case MKTAG('I', 'D', '3', ' '):
+        case MKTAG('i', 'd', '3', ' '): {
+            ID3v2ExtraMeta *id3v2_extra_meta = NULL;
+            ff_id3v2_read_dict(pb, &s->internal->id3v2_meta, ID3v2_DEFAULT_MAGIC, &id3v2_extra_meta);
+            if (id3v2_extra_meta) {
+                ff_id3v2_parse_apic(s, &id3v2_extra_meta);
+                ff_id3v2_parse_chapters(s, &id3v2_extra_meta);
+                ff_id3v2_parse_priv(s, &id3v2_extra_meta);
+            }
+            ff_id3v2_free_extra_meta(&id3v2_extra_meta);
+            }
+            break;
         }
 
         /* seek to next tag unless we know that we'll run into EOF */