From 9b4e7845602683882577aa9fe52aa55f3874a341 Mon Sep 17 00:00:00 2001 From: William Wilgus Date: Mon, 14 Mar 2022 17:16:48 -0400 Subject: BUGFIX string_option parsers fix bugs introduced in the switch over to using string_option instead of if else strcmp trees, embedded album art should work again skin parser had an error for 'noborder' and 'nobar' Change-Id: I957d81e5fa8467b33bbd93d63c4428c36100acca --- lib/rbcodec/metadata/asf.c | 19 +++++++++++++------ lib/rbcodec/metadata/id3tags.c | 3 ++- lib/rbcodec/metadata/metadata_common.c | 28 +++++++++++++++------------- 3 files changed, 30 insertions(+), 20 deletions(-) (limited to 'lib') diff --git a/lib/rbcodec/metadata/asf.c b/lib/rbcodec/metadata/asf.c index 82873a43a6..b578746658 100644 --- a/lib/rbcodec/metadata/asf.c +++ b/lib/rbcodec/metadata/asf.c @@ -441,13 +441,20 @@ static int asf_parse_header(int fd, struct mp3entry* id3, { eWM_TrackNumber, eWM_Genre, eWM_AlbumTitle, eWM_AlbumArtist, eWM_Composer, eWM_Year, - eWM_MusicBrainz_Track_Id, eWM_Picture + eWM_MusicBrainz_Track_Id, eWM_Picture, + eWM_COUNT_TAG_COUNT }; - - static const char *tagops[] = - { "WM/TrackNumber", "WM/Genre", "WM/AlbumTitle", - "WM/AlbumArtist", "WM/Composer", "WM/Year", - "MusicBrainz/Track Id", "WM/Picture", NULL + + static const char *tagops[eWM_COUNT_TAG_COUNT + 1] = + { [eWM_TrackNumber] = "WM/TrackNumber", + [eWM_Genre] = "WM/Genre", + [eWM_AlbumTitle] = "WM/AlbumTitle", + [eWM_AlbumArtist] = "WM/AlbumArtist", + [eWM_Composer] = "WM/Composer", + [eWM_Year] = "WM/Year", + [eWM_MusicBrainz_Track_Id]"MusicBrainz/Track Id", + [eWM_Picture]"WM/Picture", + [eWM_COUNT_TAG_COUNT] = NULL }; for (i=0; i < count; i++) { diff --git a/lib/rbcodec/metadata/id3tags.c b/lib/rbcodec/metadata/id3tags.c index 18258c73ac..ba7695d569 100644 --- a/lib/rbcodec/metadata/id3tags.c +++ b/lib/rbcodec/metadata/id3tags.c @@ -312,9 +312,10 @@ static int parsealbumart( struct mp3entry* entry, char* tag, int bufferpos ) if (memcmp(tag, "image/", 6) == 0) { - int tg_op = string_option(tag, img_options, false); /* ID3 v2.3+ */ tag += 6; + int tg_op = string_option(tag, img_options, false); + if (tg_op == 0) /*jpeg*/ { entry->albumart.type = AA_TYPE_JPG; diff --git a/lib/rbcodec/metadata/metadata_common.c b/lib/rbcodec/metadata/metadata_common.c index 59c2f01840..e38b9e4d9a 100644 --- a/lib/rbcodec/metadata/metadata_common.c +++ b/lib/rbcodec/metadata/metadata_common.c @@ -288,15 +288,21 @@ long parse_tag(const char* name, char* value, struct mp3entry* id3, eYEAR, eDATE, eTITLE, eARTIST, eALBUM, eGENRE, eCOMPOSER, eCOMMENT, eALBUMARTIST, eALBUM_ARTIST, eENSEMBLE, eGROUPING, eCONTENTGROUP, eCONTENT_GROUP, - eMUSICBRAINZ1, eMUSICBRAINZ2 + eMUSICBRAINZ1, eMUSICBRAINZ2, e_COUNT_TAG_COUNT }; - - static const char *tagops[] = - { "track", "tracknumber", "discnumber", "disc", - "year","date","title", "artist", "album", "genre" - "composer","comment","albumartist","album artist", - "ensemble","grouping","contentgroup","content group", - "musicbrainz_trackid", "http://musicbrainz.org", NULL + + static const char *tagops[e_COUNT_TAG_COUNT + 1] = + { [eTRACK] = "track", [eTRACKNUMBER] = "tracknumber", + [eDISCNUMBER] = "discnumber", [eDISC] = "disc", + [eYEAR] = "year", [eDATE] = "date", [eTITLE] = "title", + [eARTIST] = "artist", [eALBUM] = "album", [eGENRE] = "genre" + [eCOMPOSER] = "composer", [eCOMMENT] = "comment", + [eALBUMARTIST] = "albumartist", [eALBUM_ARTIST] ="album artist", + [eENSEMBLE] = "ensemble", [eGROUPING] = "grouping", + [eCONTENTGROUP] = "contentgroup", [eCONTENT_GROUP] = "content group", + [eMUSICBRAINZ1] = "musicbrainz_trackid", + [eMUSICBRAINZ2] = "http://musicbrainz.org", + [e_COUNT_TAG_COUNT] = NULL; }; int item = string_option(name, tagops, true); @@ -351,11 +357,7 @@ long parse_tag(const char* name, char* value, struct mp3entry* id3, { p = &(id3->comment); } - else if (item == eALBUMARTIST || item == eALBUM_ARTIST) - { - p = &(id3->albumartist); - } - else if (item == eENSEMBLE) + else if (item == eALBUMARTIST || item == eALBUM_ARTIST || item == eENSEMBLE) { p = &(id3->albumartist); } -- cgit v1.2.3