Commit graph

72 commits

Author SHA1 Message Date
Michael Giacomelli
ff9f3f8c04 Revert r14786 which resulted in a substantial reduction in accuracy to save a 7.6KB of RAM. Accuracy should be greatly improved now, and if we want to make that trade off again, I think of better ways to do it.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17783 a1c6a512-1295-4272-9138-f99709370657
2008-06-24 15:39:44 +00:00
Michael Giacomelli
dab9fa1ef7 Fix for WMAv1 decoding suggested by Rafael Carre. I don't think anyone out there will ever use V1, but its worth having correct code for its own sake.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17782 a1c6a512-1295-4272-9138-f99709370657
2008-06-24 15:17:14 +00:00
Michael Giacomelli
e7999873f5 Fix mistake in previous WMA commit. Also update comments to reflect changes.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17202 a1c6a512-1295-4272-9138-f99709370657
2008-04-21 00:46:55 +00:00
Michael Giacomelli
dac1ed5f41 This table is probably 128 entries long beginning with -60. Greatly improves FS#7488, but does not entirely fix it. Also, while I'm recomputing tables, use proper whitespace formating.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17162 a1c6a512-1295-4272-9138-f99709370657
2008-04-18 23:05:20 +00:00
Michael Giacomelli
861525852c Increase the size of one of the look up tables. Fixes 'burst of static' in some files. I still have no idea how big it really needs to be...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17103 a1c6a512-1295-4272-9138-f99709370657
2008-04-14 01:12:51 +00:00
Michael Giacomelli
82dc8175cf Make the WMA decoder less noisy in the sim.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17014 a1c6a512-1295-4272-9138-f99709370657
2008-04-07 02:32:48 +00:00
Michael Giacomelli
c6bbb0f690 Fix sim for now. Eventually I should change the decoder to error out if theres a problem allocating huffman tables.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17013 a1c6a512-1295-4272-9138-f99709370657
2008-04-07 02:25:09 +00:00
Michael Giacomelli
231f0c208d Let the console know when the huffman tables have overflown. This should never happen.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17012 a1c6a512-1295-4272-9138-f99709370657
2008-04-07 02:11:14 +00:00
Michael Giacomelli
4a808073c7 Amazingly, I've only been initing about 1/2 the huffman table entries needed to actually decode a WMA file for the last 8 months and yet somehow never noticed. Fixes FS#8713, FS#8606 and probably a lot of other files.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17011 a1c6a512-1295-4272-9138-f99709370657
2008-04-07 02:01:44 +00:00
Michael Giacomelli
03f1b98531 Fix misleading debug statement.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16838 a1c6a512-1295-4272-9138-f99709370657
2008-03-27 01:40:16 +00:00
Michael Giacomelli
5730da2ba8 Apply last fall's exponent fix to WMA v1 files as well.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16114 a1c6a512-1295-4272-9138-f99709370657
2008-01-19 23:00:50 +00:00
Michael Giacomelli
dadd80a8a6 If seek fails, don't insert nonsense for the current position. Also, make one of the error messages a bit more clear.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16002 a1c6a512-1295-4272-9138-f99709370657
2008-01-06 02:50:01 +00:00
Michael Giacomelli
781c82c0d6 Argh.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15368 a1c6a512-1295-4272-9138-f99709370657
2007-10-29 23:22:33 +00:00
Michael Giacomelli
31b74ecb21 Copyright.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15367 a1c6a512-1295-4272-9138-f99709370657
2007-10-29 23:21:42 +00:00
Michael Giacomelli
132bc634ed We removed the old Q15.16 precision trig functions from decoding ages ago, so no need to leave them in. Also, this code needs a GPL header.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15366 a1c6a512-1295-4272-9138-f99709370657
2007-10-29 23:16:41 +00:00
Thom Johansen
877ea486ba Move multiply routines into the header. Give Coldfire a fixmul32b(). Remove some tabs and empty lines.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15205 a1c6a512-1295-4272-9138-f99709370657
2007-10-19 12:27:38 +00:00
Thom Johansen
9a1a2fd686 Oversight in syncing on my end, sorry.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15184 a1c6a512-1295-4272-9138-f99709370657
2007-10-18 10:14:31 +00:00
Thom Johansen
6e4aa260d0 Add Coldfire and ARM assembler for "reverse multiply and copy" function too. Gives big speedup on Coldfire, small on ARM.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15183 a1c6a512-1295-4272-9138-f99709370657
2007-10-18 10:09:21 +00:00
Thom Johansen
fffc257897 Woops, movem.l needs other order.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15178 a1c6a512-1295-4272-9138-f99709370657
2007-10-18 00:48:00 +00:00
Thom Johansen
00662a235c Add Coldfire assembler for window and add function, yielding a nice speedup. Tweak ARM assembler version of same routine to act the same as the Coldfire version. Remove an error condition that newer ffmpegs do not bail out on. Files requiring this new behaviour have been observed.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15177 a1c6a512-1295-4272-9138-f99709370657
2007-10-18 00:28:10 +00:00
Marcoen Hirschberg
b8753ffdaa move structures around in the header files
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14941 a1c6a512-1295-4272-9138-f99709370657
2007-10-01 13:46:07 +00:00
Marcoen Hirschberg
6b559b2188 disable the ARM optimized MDCT for the Gigabeat for now as it creates a data abort
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14940 a1c6a512-1295-4272-9138-f99709370657
2007-10-01 13:42:03 +00:00
Marcoen Hirschberg
6475ad7821 reuse the largest sin and cos tables for smaller sizes
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14786 a1c6a512-1295-4272-9138-f99709370657
2007-09-20 17:35:36 +00:00
Marcoen Hirschberg
4d853fff2f fix a warning for coldfire
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14779 a1c6a512-1295-4272-9138-f99709370657
2007-09-20 13:52:41 +00:00
Marcoen Hirschberg
1be7314b39 get rid of warnings
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14778 a1c6a512-1295-4272-9138-f99709370657
2007-09-20 13:02:27 +00:00
Marcoen Hirschberg
b2abd67671 remove unused struct member and variable
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14777 a1c6a512-1295-4272-9138-f99709370657
2007-09-20 12:32:39 +00:00
Marcoen Hirschberg
1ddef375df move (i)MDCT and FFT code to separate files
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14776 a1c6a512-1295-4272-9138-f99709370657
2007-09-20 12:27:24 +00:00
Marcoen Hirschberg
cd5edbe52c small cleanups
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14772 a1c6a512-1295-4272-9138-f99709370657
2007-09-20 10:50:59 +00:00
Jens Arnold
20444c47a8 Fix warning.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14577 a1c6a512-1295-4272-9138-f99709370657
2007-09-02 11:06:29 +00:00
Michael Giacomelli
a514c60fd0 Apparently, negative exponents are possible when decoding exponential VLC. Should fix occasional glitches that happened in files of all bitrates.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14571 a1c6a512-1295-4272-9138-f99709370657
2007-09-02 03:28:49 +00:00
Michael Giacomelli
153d74443a Clean up iMDCT coefficient calculations.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14451 a1c6a512-1295-4272-9138-f99709370657
2007-08-24 20:02:50 +00:00
Michael Giacomelli
8159b9ee9a Faster Q1.31 multiply for ARM. Add some ARM asm windowing code. Simply replacing c code with loop unrolled + load/store multiple instructions makes a surprising difference on PP. Also, add comments to the windowing code.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14365 a1c6a512-1295-4272-9138-f99709370657
2007-08-16 03:33:15 +00:00
Marcoen Hirschberg
c43629f08b use the full resolution we get from the WMA decoder and let the DSP code do the rest
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14224 a1c6a512-1295-4272-9138-f99709370657
2007-08-06 23:34:28 +00:00
Michael Giacomelli
aa2b7cbe03 Fix warning.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14207 a1c6a512-1295-4272-9138-f99709370657
2007-08-06 02:10:49 +00:00
Michael Giacomelli
98f0d77879 Clean up VLC functions.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14206 a1c6a512-1295-4272-9138-f99709370657
2007-08-06 01:43:09 +00:00
Dave Chapman
2ff816fab6 Cosmetic changes - TAB and whitespace policing.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14135 a1c6a512-1295-4272-9138-f99709370657
2007-08-02 07:41:28 +00:00
Michael Giacomelli
206e883e78 Initial attept at supporting Line Spectral Pairs. Various issues remain, and the ffmpeg decoder itself often fails on certain valid LSP files. Expect some issues.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14134 a1c6a512-1295-4272-9138-f99709370657
2007-08-02 04:47:33 +00:00
Michael Giacomelli
54b80471a5 Fix overflow in noise coding. Greatly improves sound quality of some low bitrate files
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13975 a1c6a512-1295-4272-9138-f99709370657
2007-07-25 02:34:21 +00:00
Michael Giacomelli
e9c09d4d0e Fix decoding of misc sample rates that no one ever uses
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13946 a1c6a512-1295-4272-9138-f99709370657
2007-07-21 01:03:58 +00:00
Michael Giacomelli
bc3ada265b Add incomplete support for files using noise coding but not LSP. In practice, this means files >= 20kbps will probably work, and those below will probably not.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13945 a1c6a512-1295-4272-9138-f99709370657
2007-07-20 21:36:54 +00:00
Michael Giacomelli
bab671eb4d Fix nasty bug that causes low bitrate files to crash because of an incorrect assumption about MDCT window sizes on my part. Clears the way for further low bitrate fixes.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13937 a1c6a512-1295-4272-9138-f99709370657
2007-07-20 03:41:09 +00:00
Michael Giacomelli
4f9bffe18e Fix warnings.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13866 a1c6a512-1295-4272-9138-f99709370657
2007-07-13 01:41:31 +00:00
Jens Arnold
42bd5b46f0 WMA codec: Coldfire is capable of unaligned memory accesses, so lets make use of it. ~1.5% speedup.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13865 a1c6a512-1295-4272-9138-f99709370657
2007-07-12 22:12:25 +00:00
Michael Giacomelli
9ac2756e94 Fix the above by including all required files and updating SOURCES.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13860 a1c6a512-1295-4272-9138-f99709370657
2007-07-12 03:26:20 +00:00
Michael Giacomelli
362f894a53 Sync the bitstream functions with ffmpeg. Switch wmadeci.c over to get_vlc2 which is how ffmpeg now does it and is also slightly faster. Add in defines for later VLC memory usage optization. Kill some header files that weren't needed and update others that were out of sync. We're now much closer to the current ffmpeg codec which should make fixing the remaining issues much easier.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13859 a1c6a512-1295-4272-9138-f99709370657
2007-07-12 03:17:19 +00:00
Dave Chapman
a9df713ee9 TAB and whitespace police
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13858 a1c6a512-1295-4272-9138-f99709370657
2007-07-11 23:07:41 +00:00
Michael Giacomelli
28b0c58726 Don't assume files are WMAv2, instead actually check that they are and quit gracefully if they are not.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13855 a1c6a512-1295-4272-9138-f99709370657
2007-07-11 16:58:11 +00:00
Michael Giacomelli
00b16fab6c Ancient ffmpeg bug fix that should never have been missed. Prevents floating point value from truncating downward. My files are byte for byte identical with this fix, but the ffmpeg mailing list claims its important.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13846 a1c6a512-1295-4272-9138-f99709370657
2007-07-11 01:20:31 +00:00
Dave Chapman
0fd4e3f8e1 Restore some lost copyright headers from the ffmpeg project
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13834 a1c6a512-1295-4272-9138-f99709370657
2007-07-09 18:01:20 +00:00
Dave Chapman
88e32c2fc6 Reorganise the wma_decode_superframe() function - split into a separate init and decode functions. Each call to the decode function now decodes a single frame (2048 samples) instead of an entire superframe (which typically contained about 7 or 8 frames and can in theory contain up to 16 frames). This allows us to replace the 256KB output buffer with a 8KB buffer, and also perform more yields in the main decoding loop.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13833 a1c6a512-1295-4272-9138-f99709370657
2007-07-09 17:24:00 +00:00