[FFmpeg-devel] [PATCH] Fix spelling in ID3v1 genres and extend the list of Winamp extensions.
Ulrich Spörlein
uspoerlein at gmail.com
Sat Dec 21 10:07:40 EET 2019
Source: https://en.wikipedia.org/wiki/List_of_ID3v1_Genres and taglib.
Further patches to harmonize the spelling have been sent to taglib and
libid3tag.
---
Note that neither taglib nor libid3tag use the typos for Psychedelic or
A cappella. Preserving these typos is IMHO not worth it, spec be damned.
libavformat/id3v1.c | 58 +++++++++++++++++++++++++++++++++++++++------
libavformat/id3v1.h | 2 +-
2 files changed, 52 insertions(+), 8 deletions(-)
diff --git a/libavformat/id3v1.c b/libavformat/id3v1.c
index 19be42121d..eb66098f51 100644
--- a/libavformat/id3v1.c
+++ b/libavformat/id3v1.c
@@ -92,7 +92,7 @@ const char * const ff_id3v1_genre_str[ID3v1_GENRE_MAX + 1] = {
[64] = "Native American",
[65] = "Cabaret",
[66] = "New Wave",
- [67] = "Psychadelic", /* sic, the misspelling is used in the specification */
+ [67] = "Psychedelic",
[68] = "Rave",
[69] = "Showtunes",
[70] = "Trailer",
@@ -110,7 +110,7 @@ const char * const ff_id3v1_genre_str[ID3v1_GENRE_MAX + 1] = {
[82] = "National Folk",
[83] = "Swing",
[84] = "Fast Fusion",
- [85] = "Bebob",
+ [85] = "Bebop",
[86] = "Latin",
[87] = "Revival",
[88] = "Celtic",
@@ -148,20 +148,20 @@ const char * const ff_id3v1_genre_str[ID3v1_GENRE_MAX + 1] = {
[120] = "Duet",
[121] = "Punk Rock",
[122] = "Drum Solo",
- [123] = "A capella",
+ [123] = "A Cappella",
[124] = "Euro-House",
[125] = "Dance Hall",
[126] = "Goa",
[127] = "Drum & Bass",
[128] = "Club-House",
- [129] = "Hardcore",
+ [129] = "Hardcore Techno",
[130] = "Terror",
[131] = "Indie",
[132] = "BritPop",
[133] = "Negerpunk",
[134] = "Polsk Punk",
[135] = "Beat",
- [136] = "Christian Gangsta",
+ [136] = "Christian Gangsta Rap",
[137] = "Heavy Metal",
[138] = "Black Metal",
[139] = "Crossover",
@@ -171,8 +171,52 @@ const char * const ff_id3v1_genre_str[ID3v1_GENRE_MAX + 1] = {
[143] = "Salsa",
[144] = "Thrash Metal",
[145] = "Anime",
- [146] = "JPop",
- [147] = "SynthPop",
+ [146] = "Jpop",
+ [147] = "Synthpop",
+ [148] = "Abstract",
+ [149] = "Art Rock",
+ [150] = "Baroque",
+ [151] = "Bhangra",
+ [152] = "Big Beat",
+ [153] = "Breakbeat",
+ [154] = "Chillout",
+ [155] = "Downtempo",
+ [156] = "Dub",
+ [157] = "EBM",
+ [158] = "Eclectic",
+ [159] = "Electro",
+ [160] = "Electroclash",
+ [161] = "Emo",
+ [162] = "Experimental",
+ [163] = "Garage",
+ [164] = "Global",
+ [165] = "IDM",
+ [166] = "Illbient",
+ [167] = "Industro-Goth",
+ [168] = "Jam Band",
+ [169] = "Krautrock",
+ [170] = "Leftfield",
+ [171] = "Lounge",
+ [172] = "Math Rock",
+ [173] = "New Romantic",
+ [174] = "Nu-Breakz",
+ [175] = "Post-Punk",
+ [176] = "Post-Rock",
+ [177] = "Psytrance",
+ [178] = "Shoegaze",
+ [179] = "Space Rock",
+ [180] = "Trop Rock",
+ [181] = "World Music",
+ [182] = "Neoclassical",
+ [183] = "Audiobook",
+ [184] = "Audio Theatre",
+ [185] = "Neue Deutsche Welle",
+ [186] = "Podcast",
+ [187] = "Indie Rock",
+ [188] = "G-Funk",
+ [189] = "Dubstep",
+ [190] = "Garage Rock",
+ [191] = "Psybient"
};
static void get_string(AVFormatContext *s, const char *key,
diff --git a/libavformat/id3v1.h b/libavformat/id3v1.h
index d5dca35873..b3ad16df6c 100644
--- a/libavformat/id3v1.h
+++ b/libavformat/id3v1.h
@@ -26,7 +26,7 @@
#define ID3v1_TAG_SIZE 128
-#define ID3v1_GENRE_MAX 147
+#define ID3v1_GENRE_MAX 191
/**
* ID3v1 genres
--
2.24.0
More information about the ffmpeg-devel
mailing list