diff options
-rw-r--r-- | apps/metadata/id3tags.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/apps/metadata/id3tags.c b/apps/metadata/id3tags.c index 855394e2c3..7e767c7268 100644 --- a/apps/metadata/id3tags.c +++ b/apps/metadata/id3tags.c | |||
@@ -1007,14 +1007,17 @@ void setid3v2title(int fd, struct mp3entry *entry) | |||
1007 | char_enc = CHAR_ENC_ISO_8859_1; | 1007 | char_enc = CHAR_ENC_ISO_8859_1; |
1008 | break; | 1008 | break; |
1009 | case 0x01: | 1009 | case 0x01: |
1010 | char_enc = CHAR_ENC_UTF_16_LE; | 1010 | if (memcmp(tag, "\1\xfe\xff", 3)) |
1011 | /* \1 + \xff\xfe + C\0U\0E\0S\0H\0E\0E\0T\0\0\0 = 21 */ | 1011 | char_enc = CHAR_ENC_UTF_16_BE; |
1012 | else if (memcmp(tag, "\1\xff\xfe", 3)) | ||
1013 | char_enc = CHAR_ENC_UTF_16_LE; | ||
1014 | /* \1 + BOM(2) + C0U0E0S0H0E0E0T000 = 21 */ | ||
1012 | cuesheet_offset = 21; | 1015 | cuesheet_offset = 21; |
1013 | break; | 1016 | break; |
1014 | case 0x02: | 1017 | case 0x02: |
1015 | char_enc = CHAR_ENC_UTF_16_BE; | 1018 | char_enc = CHAR_ENC_UTF_16_BE; |
1016 | /* \2 + \xfe\xff + \0C\0U\0E\0S\0H\0E\0E\0T\0\0 = 21 */ | 1019 | /* \2 + 0C0U0E0S0H0E0E0T00 = 19 */ |
1017 | cuesheet_offset = 21; | 1020 | cuesheet_offset = 19; |
1018 | break; | 1021 | break; |
1019 | case 0x03: | 1022 | case 0x03: |
1020 | char_enc = CHAR_ENC_UTF_8; | 1023 | char_enc = CHAR_ENC_UTF_8; |