Commit graph

114 commits

Author SHA1 Message Date
Jens Arnold
ec9b202a92 Reworked handling of MPEG audio frame & file info: * Fixed frame size calculation for layer 1 (all versions) and layer 2 (V2/V2.5). * Exact frame time (expressed as a fraction) for way more precise playtime calculation at 44100/22050/11025Hz sample frequency. * Exact playtime<->position conversion for CBR also used for resume position. * More compact code, long policy.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7505 a1c6a512-1295-4272-9138-f99709370657
2005-09-10 12:28:16 +00:00
Jens Arnold
4a939ecdcd Exact song length calculation for CBR mpeg audio files (without Info header).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7502 a1c6a512-1295-4272-9138-f99709370657
2005-09-09 07:19:41 +00:00
Jonas Häggqvist
34aa5c20cc The previous commit had a distressing lack of words. This time I deliver the promised Christian Gangsta Rap.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7500 a1c6a512-1295-4272-9138-f99709370657
2005-09-08 00:17:11 +00:00
Jonas Häggqvist
f73ec85966 Added support for additional ID3v1 genres, including such gems as "Christian gangsta rap" and "Negerpunk".
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7499 a1c6a512-1295-4272-9138-f99709370657
2005-09-07 22:51:43 +00:00
Jens Arnold
579210df87 Restructured codec type handling a bit. Reduced code size, esp. on archos.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7443 a1c6a512-1295-4272-9138-f99709370657
2005-09-01 17:03:09 +00:00
Linus Nielsen Feltzing
4c4affa456 Corrected the codec format table
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7442 a1c6a512-1295-4272-9138-f99709370657
2005-09-01 15:47:29 +00:00
Linus Nielsen Feltzing
d67c267090 Fixed the WPS codec type conditional, and removed unsupported formats from the format enum
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7441 a1c6a512-1295-4272-9138-f99709370657
2005-09-01 13:39:39 +00:00
Linus Nielsen Feltzing
c4a230c11a Patch #1161046 by Bryan Vandyke - id3v2 frames with size 0 may cause rockbox to miss tags
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7426 a1c6a512-1295-4272-9138-f99709370657
2005-08-30 13:01:44 +00:00
Jens Arnold
d6c054575b Renamed CONFIG_HWCODEC and MASNONE to the more appropriate CONFIG_CODEC and SWCODEC, respectively.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7416 a1c6a512-1295-4272-9138-f99709370657
2005-08-29 21:15:27 +00:00
Miika Pekkarinen
b4bdfee43c Fixed "if there are less than 2 bytes left in the buffer, then
framelen is set to 0 or -1", thanks to Frank Dischner.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7361 a1c6a512-1295-4272-9138-f99709370657
2005-08-20 18:19:56 +00:00
Linus Nielsen Feltzing
d71f7824a1 Properly skip the ID3v2 extended header for both 2.3 and 2.4
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7356 a1c6a512-1295-4272-9138-f99709370657
2005-08-19 09:43:47 +00:00
Magnus Holmgren
436901a86b Only check for frames with three-letter names when parsing ID3V2.2 tags (and only check four-letter names when parsing ID3V2.3+ tags).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7306 a1c6a512-1295-4272-9138-f99709370657
2005-08-11 19:59:47 +00:00
Magnus Holmgren
988ea2cffc Added support for ID3V2 ReplayGain tags (as written by Foobar). Generalized the replaygain tag parsing a bit, to cut down the code size (APE tags should use this as well, but as it requires larger changes, it will have to wait for another commit). Also fixed a bug in the ID3V2 parser; ISO-8859-1 strings could confuse the main parsing loop (causing bufferpos to come out of sync).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7243 a1c6a512-1295-4272-9138-f99709370657
2005-07-27 11:54:33 +00:00
Miika Pekkarinen
2e9ce4ee47 Now codec names are in sync.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7032 a1c6a512-1295-4272-9138-f99709370657
2005-07-05 20:35:43 +00:00
Miika Pekkarinen
5c2c991d14 Applied patch "[ 1232957 ] MP3 metadata fixes for software codec".
Thanks to Magnus Holmgren. Now metadata reading is better with
improved performance for mp3 files.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7030 a1c6a512-1295-4272-9138-f99709370657
2005-07-05 19:55:40 +00:00
Jonas Häggqvist
e021e1f42c Patch 1163135 by Bryan Vandyke: Remove trailing spaces for ID3v2 tags
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6885 a1c6a512-1295-4272-9138-f99709370657
2005-06-26 22:43:57 +00:00
Miika Pekkarinen
0a81bb344e Don't initialize id3 structure with zeros on software codec platforms
(buffering system will do this).


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6764 a1c6a512-1295-4272-9138-f99709370657
2005-06-19 08:29:23 +00:00
Dave Chapman
961c9a3e41 Added %fc WPS tag to display codec type - moved codectype from track_info struct into mp3info struct, initialise it on MAS platforms, and add it to the WPS.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6748 a1c6a512-1295-4272-9138-f99709370657
2005-06-18 16:24:27 +00:00
Linus Nielsen Feltzing
5058f7de05 ID3 parser bug fix by Ray Lambert
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6716 a1c6a512-1295-4272-9138-f99709370657
2005-06-15 08:46:13 +00:00
Jean-Philippe Bernardy
0f6b3796d6 long policy
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5863 a1c6a512-1295-4272-9138-f99709370657
2005-02-09 10:56:54 +00:00
Jens Arnold
c76c568b35 Const policed pointer arguments to functions, part 1
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4995 a1c6a512-1295-4272-9138-f99709370657
2004-08-16 23:37:23 +00:00
Jens Arnold
9478cc6f8a More const policeing step 4
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4983 a1c6a512-1295-4272-9138-f99709370657
2004-08-03 19:22:56 +00:00
Linus Nielsen Feltzing
f4f4111536 Added possibility to select the priority of the ID3 tags
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4962 a1c6a512-1295-4272-9138-f99709370657
2004-07-27 14:10:48 +00:00
Linus Nielsen Feltzing
559e515229 Now looks for TCOM and TCON before TCO
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4836 a1c6a512-1295-4272-9138-f99709370657
2004-07-05 22:28:02 +00:00
Daniel Stenberg
7ba7ffd843 remove extra ';'
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4754 a1c6a512-1295-4272-9138-f99709370657
2004-06-16 11:30:28 +00:00
Linus Nielsen Feltzing
743f23415b Stray semicolon removed
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4752 a1c6a512-1295-4272-9138-f99709370657
2004-06-16 11:26:18 +00:00
Björn Stenberg
bdaf5884ca Moved genre list and access function to id3.c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4692 a1c6a512-1295-4272-9138-f99709370657
2004-05-22 01:38:41 +00:00
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