[FFmpeg-devel] [PATCH] Fix spelling in ID3v1 genres and extend the list of Winamp extensions.
Michael Niedermayer
michael at niedermayer.cc
Sun Dec 22 19:44:01 EET 2019
On Sun, Dec 22, 2019 at 12:18:28PM +0100, Ulrich Spörlein wrote:
> Am Sa., 21. Dez. 2019 um 09:07 Uhr schrieb Ulrich Spörlein
> <uspoerlein at gmail.com>:
> >
> > 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
> >
>
>
> please keep me CC'ed on emails
>
> taglib is using the same extended WinAmp genre IDs. And you can find
> these in various places over the web. Obviously, I don't have access
> to Winamp's source code nor is that spec being published widely, being
> defunct and all.
> https://github.com/taglib/taglib/blob/master/taglib/mpeg/id3v1/id3v1genres.cpp
a reference to a VCS should include the version
similarly for wikipedia some revission of the page should be mentioned in
the commit message
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Everything should be made as simple as possible, but not simpler.
-- Albert Einstein
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20191222/d7d22ad2/attachment.sig>
More information about the ffmpeg-devel
mailing list