summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMagnus Holmgren <magnushol@gmail.com>2005-12-07 22:59:09 +0000
committerMagnus Holmgren <magnushol@gmail.com>2005-12-07 22:59:09 +0000
commitec32c08a357bde454c11a41375230461509f2fe2 (patch)
treea9d282da069ee7f995233aa63a2e5ce1ef58e778
parent149f31ca66b7db306f70bd1559e2a9162a531963 (diff)
downloadrockbox-ec32c08a357bde454c11a41375230461509f2fe2.zip
rockbox-ec32c08a357bde454c11a41375230461509f2fe2.tar.gz
rockbox-ec32c08a357bde454c11a41375230461509f2fe2.tar.bz2
rockbox-ec32c08a357bde454c11a41375230461509f2fe2.tar.xz
Restore full support for id3v2 frames with multiple strings (like TXXX). Makes MP3 ReplayGain work again.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8196 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/id3.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/firmware/id3.c b/firmware/id3.c
index ad7c828..89864a6 100644
--- a/firmware/id3.c
+++ b/firmware/id3.c
@@ -322,7 +322,6 @@ static int parseuser( struct mp3entry* entry, char* tag, int bufferpos )
/* At least part of the value was read, so we can safely try to
* parse it
*/
-
value = tag + desc_len + 1;
value_len = parse_replaygain(tag, value, entry, tag,
bufferpos - (tag - entry->id3v2buf));
@@ -376,7 +375,7 @@ static int unicode_munge(char* string, char* utf8buf, int *len) {
(*len)--;
utf8 = iso_decode(str, utf8, -1, *len);
*utf8 = 0;
- *len = strlen(utf8buf);
+ *len = utf8 - utf8buf;
break;
case 0x01: /* Unicode with or without BOM */
@@ -427,13 +426,13 @@ static int unicode_munge(char* string, char* utf8buf, int *len) {
case 0x03: /* UTF-8 encoded string */
for(i=0; i < *len; i++)
utf8[i] = str[i+1];
- *len = strlen(utf8buf);
+ (*len)--;
break;
default: /* Plain old string */
utf8 = iso_decode(str, utf8, -1, *len);
*utf8 = 0;
- *len = strlen(utf8buf);
+ *len = utf8 - utf8buf;
break;
}
return 0;