Commit graph

172 commits

Author SHA1 Message Date
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
Björn Stenberg
0edcd0a7bf VBR ID3 info works again. (I mistakenly left out a line from Hardeep's patch.)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1771 a1c6a512-1295-4272-9138-f99709370657
2002-08-15 19:11:26 +00:00
Björn Stenberg
0570497e3a Added fast forward and rewind (without sound). Patch by Hardeep Sidhu.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1741 a1c6a512-1295-4272-9138-f99709370657
2002-08-14 19:23:34 +00:00
Björn Stenberg
66f9bccd47 Skip past id3v2 tag when loading mp3 data
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1729 a1c6a512-1295-4272-9138-f99709370657
2002-08-14 10:15:27 +00:00
Linus Nielsen Feltzing
4e69f82c8f Now continues searching for good frames if a bad one is found. Patch by Hardeep Sidhu
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1398 a1c6a512-1295-4272-9138-f99709370657
2002-07-22 16:05:46 +00:00
Björn Stenberg
60e7b20971 More detailed mp3 frame header check
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1383 a1c6a512-1295-4272-9138-f99709370657
2002-07-18 15:21:45 +00:00
Björn Stenberg
782a61d992 Added support for mono and MPEG2 VBR headers
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1380 a1c6a512-1295-4272-9138-f99709370657
2002-07-18 02:08:23 +00:00
Björn Stenberg
5e2898f3d4 Added average bitrate for VBR mp3
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1346 a1c6a512-1295-4272-9138-f99709370657
2002-07-10 13:17:31 +00:00
Linus Nielsen Feltzing
c644fc2956 Added a vbr flag in the id3 struct
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1339 a1c6a512-1295-4272-9138-f99709370657
2002-07-05 07:13:43 +00:00
Linus Nielsen Feltzing
c6de959f04 Added protection against too large ID3V2 tags
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1336 a1c6a512-1295-4272-9138-f99709370657
2002-07-04 22:10:43 +00:00
Linus Nielsen Feltzing
434b788a1f Now sets bitrate to VARIABLE_BIT_RATE if VBR
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1325 a1c6a512-1295-4272-9138-f99709370657
2002-07-04 06:42:51 +00:00
Linus Nielsen Feltzing
2e525fe9ed Added Xing VBR frame parsing
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1324 a1c6a512-1295-4272-9138-f99709370657
2002-07-03 21:04:09 +00:00
Linus Nielsen Feltzing
b983d1b4a1 Fixed an overflow in the song length calculation
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1242 a1c6a512-1295-4272-9138-f99709370657
2002-06-28 08:05:20 +00:00
Jerome Kuptz
b6d3bc2dd9 changed char* path to char path[256] and added a copy of filename on mp3info function
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1229 a1c6a512-1295-4272-9138-f99709370657
2002-06-27 08:33:58 +00:00
Jerome Kuptz
d15884fab2 Made mp3info set the path variable on the mp3entry struct. This fixes WPS Parse & File modes in playlist or dir playing.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1224 a1c6a512-1295-4272-9138-f99709370657
2002-06-27 07:18:13 +00:00
Björn Stenberg
928e334831 Added id3 tracknum (Yusef Napora)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1204 a1c6a512-1295-4272-9138-f99709370657
2002-06-26 21:11:29 +00:00
Björn Stenberg
f186f46f5d Moved getfilesize() to top
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1203 a1c6a512-1295-4272-9138-f99709370657
2002-06-26 15:20:00 +00:00
Björn Stenberg
1575ee378c Reordered operations to optimise file seeking
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1202 a1c6a512-1295-4272-9138-f99709370657
2002-06-26 14:51:09 +00:00
Björn Stenberg
ef15d9983a Made mp3entry a struct, not a type
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1182 a1c6a512-1295-4272-9138-f99709370657
2002-06-25 11:39:22 +00:00
Björn Stenberg
f224f0b8e8 Don't free static data :)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1181 a1c6a512-1295-4272-9138-f99709370657
2002-06-25 11:29:38 +00:00
Daniel Stenberg
c9ea73e19d NOTE! the 'mp3entry' struct grew quite a bit now, as the previously static
buffers were moved into the struct instead and thus we enable the mp3info()
function to be called in a re-entrant way. Just don't allocate that struct
on the stack without careful consideration!


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@896 a1c6a512-1295-4272-9138-f99709370657
2002-06-04 22:05:00 +00:00
Linus Nielsen Feltzing
76d0c7d790 Fixed endianness bug in getsonglength
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@750 a1c6a512-1295-4272-9138-f99709370657
2002-05-27 14:03:17 +00:00
Björn Stenberg
3facc983d1 Commented out songlength() for now
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@734 a1c6a512-1295-4272-9138-f99709370657
2002-05-27 09:54:13 +00:00
Björn Stenberg
72c8e71c21 Removed floating point code
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@612 a1c6a512-1295-4272-9138-f99709370657
2002-05-17 08:42:45 +00:00
Björn Stenberg
2382044ffc Changing to C99 'bool' type
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@561 a1c6a512-1295-4272-9138-f99709370657
2002-05-13 12:29:34 +00:00
Dave Chapman
a1302f26db save mpeg layer and version information
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@557 a1c6a512-1295-4272-9138-f99709370657
2002-05-12 14:28:51 +00:00
Björn Stenberg
bd262a5dbe Removed include fcntl.h
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@520 a1c6a512-1295-4272-9138-f99709370657
2002-05-08 15:36:18 +00:00
Daniel Stenberg
af5c607832 uninitialised variable and better return code check
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@504 a1c6a512-1295-4272-9138-f99709370657
2002-05-08 07:10:16 +00:00
Dave Chapman
ca532502bd fixed buffer overflow in setid3v1title
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@479 a1c6a512-1295-4272-9138-f99709370657
2002-05-06 15:21:43 +00:00
Daniel Stenberg
e630d64027 no more unistd.h
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@462 a1c6a512-1295-4272-9138-f99709370657
2002-05-06 07:19:09 +00:00
Daniel Stenberg
75e8cbbdcc Dave Chapman found a problem in the id3v1 tag reading, and provided
this fix!


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@445 a1c6a512-1295-4272-9138-f99709370657
2002-05-05 13:25:29 +00:00
Daniel Stenberg
0343834852 include file.h (important for the x11 sim to work) and types.h (as that
already has a bool type and TRUE/FALSE defines). Also now includes its
own new id3.h for the struct definition.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@431 a1c6a512-1295-4272-9138-f99709370657
2002-05-05 10:32:20 +00:00
Björn Stenberg
824a003052 Added Gary's snprintf() and changed all places to use it.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@379 a1c6a512-1295-4272-9138-f99709370657
2002-05-02 11:44:15 +00:00
Daniel Stenberg
ad9bdf6e38 fixed to use our file api
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@325 a1c6a512-1295-4272-9138-f99709370657
2002-04-30 12:42:37 +00:00
Björn Stenberg
4b5edb8e31 Removed some warnings
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@298 a1c6a512-1295-4272-9138-f99709370657
2002-04-28 09:57:09 +00:00
Daniel Stenberg
20c239dd11 fixed compiler warnings
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@248 a1c6a512-1295-4272-9138-f99709370657
2002-04-26 08:56:43 +00:00
Daniel Stenberg
963a64770e no more malloc()s or strdup()s
the test program now takes any amount of files, which makes it easy to verify
lots of files at once using shell wildcards


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@196 a1c6a512-1295-4272-9138-f99709370657
2002-04-23 11:46:16 +00:00
Daniel Stenberg
6755f82a70 id3 tag reading code, both v1 and v2. Still needs to be adjusted more to
remove the malloc()s and possible other stuff.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@185 a1c6a512-1295-4272-9138-f99709370657
2002-04-23 08:43:04 +00:00