Commit graph

540 commits

Author SHA1 Message Date
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
Dave Bryant
bcf97a4801 Move WavPack metadata parsing to its own file and add handling of non-standard sampling rates
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14289 a1c6a512-1295-4272-9138-f99709370657
2007-08-12 06:36:06 +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
Michael Sevakis
8edfff979b Flush-out cleared sections on dual core targets when loading plugins and codecs.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14172 a1c6a512-1295-4272-9138-f99709370657
2007-08-04 00:11:41 +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
Dave Chapman
f52c178517 Revert r14050 (apart from the non-related whitespace changes) and fix the S3C2440 (Gigabeat F/X) problems introduced by my r14041 commit in a slightly different way: Introduce a mad_iram.h file and centralise all IRAM-related decisions in there (similar to how Tremor does it). Now checks for CPU type (S3C2440) instead of target (TOSHIBA_GIGABEAT_F) and there is also a .ibss variable in syth_full_arm.S which shouldn't go in IRAM on S3C2440 targets. Closes FS#7500
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14057 a1c6a512-1295-4272-9138-f99709370657
2007-07-29 16:40:11 +00:00
Michael Giacomelli
f68ab0d497 Fix mp3 playback on the gigabeat by not putting code in IRAM. Someone actually familar with the gigabeat port should check this.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14050 a1c6a512-1295-4272-9138-f99709370657
2007-07-29 05:21:20 +00:00
Dave Chapman
66b51909c0 FS #6705 - ARM optimisations for libmad by Tomasz Malesinski. Modified slightly by me to not put code in IRAM for PP502x (it's slower), and for the mpegplayer version of libmad for PP5002 (there isn't enough room). On my ipod Color, it increases a 320kbps MP3 test file from 169% realtime to 188% realtime. Reported speedup on the ipod 3G was from 118% to 155% realtime for a 192kbps MP3.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14041 a1c6a512-1295-4272-9138-f99709370657
2007-07-28 15:21:25 +00:00
Dave Bryant
ee7caed7d9 fixes bug that prevented playback of WavPack files containing over 1000 bytes of RIFF header data
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14019 a1c6a512-1295-4272-9138-f99709370657
2007-07-27 03:18:45 +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
Dave Chapman
e6a3f7d731 Cosmetic changes - update a comment and add more info to a DEBUGF
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13925 a1c6a512-1295-4272-9138-f99709370657
2007-07-18 09:43:12 +00:00
Daniel Stenberg
8219912d91 simplified the codec specification part in configure
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13922 a1c6a512-1295-4272-9138-f99709370657
2007-07-16 22:25:41 +00:00
Michael Sevakis
84501494ce Forgot to add a file as usual.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13920 a1c6a512-1295-4272-9138-f99709370657
2007-07-16 21:16:52 +00:00
Michael Sevakis
8552eff9e4 Make the SPC codec run like it used to on Coldfire before -Os crushed it. Build as a lib using the old -O option. Should not impact ARM targets.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13919 a1c6a512-1295-4272-9138-f99709370657
2007-07-16 21:03:25 +00:00
Nils Wallménius
497a1f07bd Clean out unused code
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13910 a1c6a512-1295-4272-9138-f99709370657
2007-07-15 19:55:30 +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
47e969278b ASF parser improvements - it now correctly handles files containing multiple payloads. i.e. files where the audio packets are split into multiple payloads, and streams where audio/video payloads are mixed within the same packet.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13840 a1c6a512-1295-4272-9138-f99709370657
2007-07-10 13:37:16 +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
Dan Everton
07fabd1cd1 ICONST_ATTR most constant tables in Speex. Results in a 10% improvement on Coldfire (200% to 220% realtime). Almost certainly not the best use of IRAM, but it works now.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13831 a1c6a512-1295-4272-9138-f99709370657
2007-07-09 11:18:10 +00:00
Dave Chapman
85aa3a8d38 Code reorganisation - move the vlc functions back to common.c/common.h (where they originally were in the ffmpeg source). This code is still identical to the ffmpeg source.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13830 a1c6a512-1295-4272-9138-f99709370657
2007-07-09 10:53:56 +00:00
Michael Giacomelli
4b1cf3ea44 Compute MDCT in place. Make that place within IRAM. Gives nice speed boost on ARM. Probably make a huge difference on Coldfire.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13828 a1c6a512-1295-4272-9138-f99709370657
2007-07-09 02:48:32 +00:00
Michael Giacomelli
5a1999eacd Move very commonly accessed array into IRAM. Should give a nice speedup on Coldfire.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13827 a1c6a512-1295-4272-9138-f99709370657
2007-07-09 01:59:33 +00:00
Dave Chapman
0361fd5e50 wma_decode_end() doesn't exist any more - it was only used to deallocate memory.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13826 a1c6a512-1295-4272-9138-f99709370657
2007-07-09 00:35:36 +00:00
Michael Giacomelli
899212858c Code clean up.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13825 a1c6a512-1295-4272-9138-f99709370657
2007-07-09 00:21:19 +00:00
Michael Giacomelli
9b176d88c8 Inline wma_window functions. No real performance improvement. Also, thanks to Benjamin Larsson for cleaning up some code I was simply to lazy to fix myself.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13823 a1c6a512-1295-4272-9138-f99709370657
2007-07-08 22:03:56 +00:00
Michael Giacomelli
610d3b4cc5 Merge bit reverse tables together.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13822 a1c6a512-1295-4272-9138-f99709370657
2007-07-08 21:52:49 +00:00
Michael Giacomelli
93bc5ef1d6 Fix rare overflow when decoding MDCT coefficients. As a bonus, decoding is now slightly faster. Thanks to preglow for suggesting I test with a full scale normalized square wave.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13815 a1c6a512-1295-4272-9138-f99709370657
2007-07-08 06:06:00 +00:00
Michael Giacomelli
030dce6f88 Fix previous
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13814 a1c6a512-1295-4272-9138-f99709370657
2007-07-08 05:57:14 +00:00
Michael Giacomelli
f5114daa73 Move MDCT reconstruction window code over to new trig function. Improves accuracy significantly and slightly reduces code size. Codec SNR now appears to be limited by truncation to 16 bit. Comparison to MS decoder gives > 91 dB of agreement, and a lower RMS error verses the source wav then MS. Additionally, move one commonly accessed table into IRAM.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13813 a1c6a512-1295-4272-9138-f99709370657
2007-07-08 05:16:24 +00:00
Michael Giacomelli
2f1da8d24a Merged in first part of ffmpeg accuracy improvments. No change on my samples, but brings us closer to ffmpeg's source and clears the way for additional bug fixes.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13804 a1c6a512-1295-4272-9138-f99709370657
2007-07-06 02:44:58 +00:00
Michael Giacomelli
e0473717e5 Merged in ffmpeg combined MDCT reconstruction. Saves us a 16KB buffer, and gives a nice speed increase. Brings code much closer to ffmpeg's.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13803 a1c6a512-1295-4272-9138-f99709370657
2007-07-06 01:50:24 +00:00
Dave Chapman
9b96d66621 Yet more dead code removal
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13789 a1c6a512-1295-4272-9138-f99709370657
2007-07-04 20:45:00 +00:00
Dave Chapman
ba3f4ed565 Remove some unused code
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13788 a1c6a512-1295-4272-9138-f99709370657
2007-07-04 20:27:26 +00:00
Jens Arnold
e7cdd6cbc6 Assemblerised CMUL() for ARM, giving ~20% speedup.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13787 a1c6a512-1295-4272-9138-f99709370657
2007-07-04 19:23:18 +00:00
Michael Giacomelli
fe8ae10ab4 Attempt #2
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13786 a1c6a512-1295-4272-9138-f99709370657
2007-07-04 17:51:52 +00:00
Michael Giacomelli
51b3bbbf1c Opps fix static ASM function on coldfire
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13785 a1c6a512-1295-4272-9138-f99709370657
2007-07-04 17:26:24 +00:00