]> git.sesse.net Git - ffmpeg/blobdiff - libavformat/id3v2.c
Const correctness for vorbis_comment
[ffmpeg] / libavformat / id3v2.c
index 88472e710e3abe9c3dded7fcf9f6574566b5d761..f007a3c5d7e95557f3855fa8a01defc898ce9047 100644 (file)
@@ -213,7 +213,12 @@ void ff_id3v2_parse(AVFormatContext *s, int len, uint8_t version, uint8_t flags)
 
         if (tag[0] == 'T')
             read_ttag(s, tlen, tag);
-
+        else if (!tag[0]) {
+            if (tag[1])
+                av_log(s, AV_LOG_WARNING, "invalid frame id, assuming padding");
+            url_fskip(s->pb, len);
+            break;
+        }
         /* Skip to end of tag */
         url_fseek(s->pb, next, SEEK_SET);
     }
@@ -229,20 +234,32 @@ void ff_id3v2_parse(AVFormatContext *s, int len, uint8_t version, uint8_t flags)
 
 const AVMetadataConv ff_id3v2_metadata_conv[] = {
     { "TALB", "album"},
+    { "TAL",  "album"},
     { "TCOM", "composer"},
     { "TCON", "genre"},
+    { "TCO",  "genre"},
     { "TCOP", "copyright"},
     { "TDRL", "date"},
-    { "TENC", "encoder"},
+    { "TDRC", "date"},
+    { "TENC", "encoded_by"},
+    { "TEN",  "encoded_by"},
     { "TIT2", "title"},
+    { "TT2",  "title"},
     { "TLAN", "language"},
-    { "TPE1", "author"},
+    { "TPE1", "artist"},
+    { "TP1",  "artist"},
+    { "TPE2", "album_artist"},
+    { "TP2",  "album_artist"},
+    { "TPE3", "performer"},
+    { "TP3",  "performer"},
     { "TPOS", "disc"},
     { "TPUB", "publisher"},
     { "TRCK", "track"},
-    { "TSOA", "albumsort"},
-    { "TSOP", "authorsort"},
-    { "TSOT", "titlesort"},
+    { "TRK",  "track"},
+    { "TSOA", "album-sort"},
+    { "TSOP", "artist-sort"},
+    { "TSOT", "title-sort"},
+    { "TSSE", "encoder"},
     { 0 }
 };