Commit graph

87 commits

Author SHA1 Message Date
Linus Nielsen Feltzing
2cc373eb99 The ID3 parser accidentally allowed a data length indicator flag on 2.3 tags, and the grouping identity bit is not the same on 2.3 and 2.4 (sigh).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4455 a1c6a512-1295-4272-9138-f99709370657
2004-03-30 13:57:06 +00:00
Linus Nielsen Feltzing
e701808b2e The ID3V2 TCON frame is now parsed in a little more forgiving manner
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4437 a1c6a512-1295-4272-9138-f99709370657
2004-03-25 06:58:25 +00:00
Linus Nielsen Feltzing
a85a525893 Skipping unknown ID3V2 frames didn't work as expected with global unsynch. This fixes bug report #887332.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4379 a1c6a512-1295-4272-9138-f99709370657
2004-03-13 22:55:47 +00:00
Linus Nielsen Feltzing
2f4a5616c0 The Unicode parser now handles unterminated strings, plus it tries to guess the byte order when the BOM is missing (a violation of the spec, btw)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4215 a1c6a512-1295-4272-9138-f99709370657
2004-01-09 00:47:26 +00:00
Linus Nielsen Feltzing
187b8ed9df Got rid of the reset parameter to xxx_unsynched()
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4189 a1c6a512-1295-4272-9138-f99709370657
2004-01-04 00:45:16 +00:00
Linus Nielsen Feltzing
219d52a86f ID3v2.3 treats the global unsynch flag in a silly way, so we have to unsynch the whole tag before we can parse the individual frames.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4188 a1c6a512-1295-4272-9138-f99709370657
2004-01-04 00:37:30 +00:00
Magnus Holmgren
f11d07c61f Correct genre parsing by making code match comment (and specification) :)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3987 a1c6a512-1295-4272-9138-f99709370657
2003-10-26 12:53:21 +00:00
Linus Nielsen Feltzing
eee3720ebe Genre parsing in id3v2.3 was still wrong. Also, the last frame in the tag could sometimes be ignored. This fixes the strange 1-digit track number bug.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3984 a1c6a512-1295-4272-9138-f99709370657
2003-10-22 21:11:38 +00:00
Linus Nielsen Feltzing
5557fe3259 Added unsynchronization
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3983 a1c6a512-1295-4272-9138-f99709370657
2003-10-22 13:06:31 +00:00
Linus Nielsen Feltzing
d9ae29a691 An attempt to fix the ID3V2 genre tag parsing
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3981 a1c6a512-1295-4272-9138-f99709370657
2003-10-21 10:44:34 +00:00
Linus Nielsen Feltzing
0bce9580a1 Added tag resolvers for TYE, TAL and TRK
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3980 a1c6a512-1295-4272-9138-f99709370657
2003-10-20 10:22:41 +00:00
Björn Stenberg
92b1d85b48 Fix for incorrect genre default value, by Benjamin Metzler
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3810 a1c6a512-1295-4272-9138-f99709370657
2003-07-04 08:23:39 +00:00
Daniel Stenberg
75fdb2aab3 bug 749951, ooops. We made the number function too generic and forgot to
make the year tags work... Thanks to Jeremy Zoss for finding and reporting.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3737 a1c6a512-1295-4272-9138-f99709370657
2003-06-06 07:54:50 +00:00
Björn Stenberg
7add54f0f8 Fixed silly typo
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3729 a1c6a512-1295-4272-9138-f99709370657
2003-06-05 08:01:38 +00:00
Björn Stenberg
8498a48496 Generalized id3v2 parsing code. Added support for the composer frame and free-form genre and tracknum frames. (Patch #706111 by Thomas Paul Diffenbach)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3727 a1c6a512-1295-4272-9138-f99709370657
2003-06-04 15:09:35 +00:00
Linus Nielsen Feltzing
6b6f97ddda Tidied up the ID3V2 parser a little
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3475 a1c6a512-1295-4272-9138-f99709370657
2003-03-18 01:31:35 +00:00
Linus Nielsen Feltzing
372ad33d35 Faster ID3 parsing with the new filesize() function
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3474 a1c6a512-1295-4272-9138-f99709370657
2003-03-18 00:45:27 +00:00
Björn Stenberg
b551e36fb0 Bug fixes: Artist was skipped sometimes. Frequency, mpeg version & layer was never copied.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3441 a1c6a512-1295-4272-9138-f99709370657
2003-03-13 19:12:05 +00:00
Linus Nielsen Feltzing
2c07e78efc Don't accidentally add Xing headers to CBR files
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3419 a1c6a512-1295-4272-9138-f99709370657
2003-03-10 18:25:40 +00:00
Björn Stenberg
fac3bc581a Ignore duplicate id3v2 tags or frames. Patch by Bill Napier.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3413 a1c6a512-1295-4272-9138-f99709370657
2003-03-10 15:43:16 +00:00
Linus Nielsen Feltzing
a1598b5836 I hate it when rippers don't follow the ID3V2 specs
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3412 a1c6a512-1295-4272-9138-f99709370657
2003-03-10 15:32:59 +00:00
Linus Nielsen Feltzing
a039091187 New ID3 and MP3 stream parser, plus not-yet-ready Xing header generation code
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3410 a1c6a512-1295-4272-9138-f99709370657
2003-03-10 14:55:31 +00:00
Björn Stenberg
5b1644336c Initialize genre to 0xff since 0 is a valid value.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3233 a1c6a512-1295-4272-9138-f99709370657
2003-02-11 15:00:56 +00:00
Mats Lidell
74cc9e41fa Remove use of rockbox-mode.el in local variables list.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3157 a1c6a512-1295-4272-9138-f99709370657
2003-01-24 10:56:06 +00:00
Björn Stenberg
a2e98c1cd9 Merged Uwe Freese's bidirectional scrolling patch. Added configurable scroll step size and scroll start delay.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2974 a1c6a512-1295-4272-9138-f99709370657
2002-12-12 15:20:37 +00:00
Björn Stenberg
cf1317c336 Added id3 version wps tag: %iv. Fixed id3v1 parsing bug.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2967 a1c6a512-1295-4272-9138-f99709370657
2002-12-09 15:01:37 +00:00
Björn Stenberg
a5587d0298 Added ID3 tag 'genre': %ig
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2950 a1c6a512-1295-4272-9138-f99709370657
2002-12-05 15:21:18 +00:00
Björn Stenberg
345f7c62ba Added ID3 tag 'year': %iy
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2949 a1c6a512-1295-4272-9138-f99709370657
2002-12-05 14:55:14 +00:00
Björn Stenberg
d1f8001984 Don't waste time loading v1 tag if a v2 tag was found.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2916 a1c6a512-1295-4272-9138-f99709370657
2002-12-03 15:38:39 +00:00
Linus Nielsen Feltzing
84c6fd96a6 Fixed broken unicode_munge()
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2840 a1c6a512-1295-4272-9138-f99709370657
2002-11-12 22:35:32 +00:00
Linus Nielsen Feltzing
fd3d50a4db Better handling of large frames in V2 tags
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2771 a1c6a512-1295-4272-9138-f99709370657
2002-10-29 10:29:57 +00:00
Linus Nielsen Feltzing
be8ae1c0e2 Now reads the tags frame by frame, to avoid missing frames when there are large blobs in the tag. This fixes bug #623510.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2768 a1c6a512-1295-4272-9138-f99709370657
2002-10-28 23:00:57 +00:00
Linus Nielsen Feltzing
c41322c591 Better skipping of leading garbage. Fixes bug #625868.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2752 a1c6a512-1295-4272-9138-f99709370657
2002-10-27 23:07:26 +00:00
Daniel Stenberg
6b342e4e8d modify the data these point to, these operators are right-to-left...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2470 a1c6a512-1295-4272-9138-f99709370657
2002-10-01 14:36:37 +00:00
Linus Nielsen Feltzing
c09c4afb23 Made the Unicode kludge even kludgier, but non-crashing
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2469 a1c6a512-1295-4272-9138-f99709370657
2002-10-01 13:20:23 +00:00
Daniel Stenberg
ad911c0ac8 Bill Napier wrote this:
This patch adds minimal suppport for 16-bit Unicode strings for ID3 tags. It
is basically a modification to the ID3v2 parser that checks for Unicode
strings. If a string is found that is a Unicode string, it is converted (in
place) to an ASCII string if it is an ASCII character.

Since we can support non-ASCII characters on the display, support for
non-ASCII characters in ID3 tags should proably also be supported in the
future. This patch is just an interem change until full Unicode support is
implemented (if ever).


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2451 a1c6a512-1295-4272-9138-f99709370657
2002-09-30 18:45:50 +00:00
Daniel Stenberg
18ae8f5735 Bill Napier's fix for header lengths for ID3v2.3 and earlier.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2450 a1c6a512-1295-4272-9138-f99709370657
2002-09-30 18:41:59 +00:00
Linus Nielsen Feltzing
acfacd938c Rudimentary VBRI parsing
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2435 a1c6a512-1295-4272-9138-f99709370657
2002-09-27 08:21:23 +00:00
Linus Nielsen Feltzing
e4d1bda5e4 For some strange reason, getsonglength() couldn't handle 800Kbyte ID3V2 tags :-)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2413 a1c6a512-1295-4272-9138-f99709370657
2002-09-25 12:34:21 +00:00
Linus Nielsen Feltzing
2c63937371 Better handling of tagless tracks with VBR headers
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2333 a1c6a512-1295-4272-9138-f99709370657
2002-09-19 09:03:16 +00:00
Linus Nielsen Feltzing
a24bd9a894 Another strike in the battle against glitches between tracks
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2326 a1c6a512-1295-4272-9138-f99709370657
2002-09-18 13:59:38 +00:00
Daniel Stenberg
012e688bf9 no C99 stuff here ;-)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2309 a1c6a512-1295-4272-9138-f99709370657
2002-09-17 07:10:41 +00:00
Linus Nielsen Feltzing
842d5a99d0 Now skips garbage padding after the ID3V2 tag, along with Xing and LAME headers
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2300 a1c6a512-1295-4272-9138-f99709370657
2002-09-16 13:32:12 +00:00
Daniel Stenberg
a6df1fd48d removed redundant size checks
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2298 a1c6a512-1295-4272-9138-f99709370657
2002-09-16 10:42:27 +00:00
Daniel Stenberg
f9a46c1cda When getting tag contents, we might read a tag which has a part of it within
our buffer and part outside. This adjusts so that we only attempt to read
the part of the tag that is inside the buffer. Magnus Holmgren helped out
here!


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2297 a1c6a512-1295-4272-9138-f99709370657
2002-09-16 10:14:56 +00:00
Daniel Stenberg
9fe53cda9a if the id3v2 tags avaiable are bigger than our buffer size, at least try
to get the ones that is within the boundaries.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2296 a1c6a512-1295-4272-9138-f99709370657
2002-09-16 08:18:51 +00:00
Björn Stenberg
f50b4fc20c Read tracknum from id3v1.1 tag (Kenneth Kiraly)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2248 a1c6a512-1295-4272-9138-f99709370657
2002-09-09 22:31:11 +00:00
Linus Nielsen Feltzing
ae17b526ff Better handling of garbage in ID3V2 tags
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2090 a1c6a512-1295-4272-9138-f99709370657
2002-08-30 22:01:35 +00:00
Daniel Stenberg
ae3952ec90 make mp3info() better return true on bad mp3 files, also make
getsonglength() return 0 if the length is unknown


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1923 a1c6a512-1295-4272-9138-f99709370657
2002-08-22 07:59:31 +00:00
Daniel Stenberg
3d6df952ec Added support for the unofficial MPEG version 2.5 format that uses a somewhat
different frequency table but the same bitrate table that V2 has.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1805 a1c6a512-1295-4272-9138-f99709370657
2002-08-19 14:15:33 +00:00