Avoid an unnecessary encoding conversion when converting id3v1 tags. Also make getID3Info static.
git-svn-id: https://svn.musicpd.org/mpd/trunk@4642 09075e82-0dd4-0310-85a5-a0d7c8717e4f
This commit is contained in:
parent
c2e1ccd968
commit
8f86c41d97
25
src/tag.c
25
src/tag.c
@ -133,7 +133,7 @@ void printMpdTag(int fd, MpdTag * tag)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_ID3TAG
|
#ifdef HAVE_ID3TAG
|
||||||
MpdTag *getID3Info(struct id3_tag *tag, char *id, int type, MpdTag * mpdTag)
|
static MpdTag *getID3Info(struct id3_tag *tag, char *id, int type, MpdTag * mpdTag)
|
||||||
{
|
{
|
||||||
struct id3_frame const *frame;
|
struct id3_frame const *frame;
|
||||||
id3_ucs4_t const *ucs4;
|
id3_ucs4_t const *ucs4;
|
||||||
@ -159,29 +159,24 @@ MpdTag *getID3Info(struct id3_tag *tag, char *id, int type, MpdTag * mpdTag)
|
|||||||
if (type == TAG_ITEM_GENRE)
|
if (type == TAG_ITEM_GENRE)
|
||||||
ucs4 = id3_genre_name(ucs4);
|
ucs4 = id3_genre_name(ucs4);
|
||||||
|
|
||||||
utf8 = id3_ucs4_utf8duplicate(ucs4);
|
if (isId3v1(tag) &&
|
||||||
if (!utf8)
|
(encoding = getConfigParamValue(CONF_ID3V1_ENCODING))) {
|
||||||
continue;
|
isostr = id3_ucs4_latin1duplicate(ucs4);
|
||||||
|
|
||||||
if (isId3v1(tag)) {
|
|
||||||
encoding = getConfigParamValue(CONF_ID3V1_ENCODING);
|
|
||||||
if (encoding) {
|
|
||||||
setCharSetConversion("ISO-8859-1", "UTF-8");
|
|
||||||
isostr = convStrDup((char *)utf8);
|
|
||||||
free(utf8);
|
|
||||||
if (mpd_unlikely(!isostr))
|
if (mpd_unlikely(!isostr))
|
||||||
continue;
|
continue;
|
||||||
setCharSetConversion("UTF-8", encoding);
|
setCharSetConversion("UTF-8", encoding);
|
||||||
utf8 = (id3_utf8_t *)convStrDup(isostr);
|
utf8 = (id3_utf8_t *)convStrDup(isostr);
|
||||||
if (!utf8) {
|
if (!utf8) {
|
||||||
DEBUG("Unable to convert %s string to "
|
DEBUG("Unable to convert %s string to UTF-8: "
|
||||||
"UTF-8: '%s'\n",
|
"'%s'\n", encoding, isostr);
|
||||||
encoding, isostr);
|
|
||||||
free(isostr);
|
free(isostr);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
free(isostr);
|
free(isostr);
|
||||||
}
|
} else {
|
||||||
|
utf8 = id3_ucs4_utf8duplicate(ucs4);
|
||||||
|
if (mpd_unlikely(!utf8))
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mpdTag == NULL)
|
if (mpdTag == NULL)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user