summaryrefslogtreecommitdiffstats
path: root/apps/codecs
AgeCommit message (Collapse)AuthorFilesLines
2007-09-02Apparently, negative exponents are possible when decoding exponential VLC. ↵Michael Giacomelli2-1/+9
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-08-30FS #7166. Musepack optimizations and cleanups. Huge speedup on ARM. Note ↵Thom Johansen5-517/+723
that all ARM (Ipod/Sansa/Gigabeat) targets will now play back Musepack files with somewhat reduced accuracy. Please get in touch via forums or Flyspray if you've got sample files where this is very apparent. Most users should hear no difference. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14531 a1c6a512-1295-4272-9138-f99709370657
2007-08-24Clean up iMDCT coefficient calculations.Michael Giacomelli1-28/+30
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14451 a1c6a512-1295-4272-9138-f99709370657
2007-08-16Faster Q1.31 multiply for ARM. Add some ARM asm windowing code. Simply ↵Michael Giacomelli2-6/+49
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-12Move WavPack metadata parsing to its own file and add handling of ↵Dave Bryant4-3/+23
non-standard sampling rates git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14289 a1c6a512-1295-4272-9138-f99709370657
2007-08-06use the full resolution we get from the WMA decoder and let the DSP code do ↵Marcoen Hirschberg3-19/+9
the rest git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14224 a1c6a512-1295-4272-9138-f99709370657
2007-08-06Fix warning.Michael Giacomelli1-1/+1
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14207 a1c6a512-1295-4272-9138-f99709370657
2007-08-06Clean up VLC functions.Michael Giacomelli2-24/+16
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14206 a1c6a512-1295-4272-9138-f99709370657
2007-08-04Flush-out cleared sections on dual core targets when loading plugins and codecs.Michael Sevakis1-0/+4
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14172 a1c6a512-1295-4272-9138-f99709370657
2007-08-02Cosmetic changes - TAB and whitespace policing.Dave Chapman2-1144/+1136
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14135 a1c6a512-1295-4272-9138-f99709370657
2007-08-02Initial attept at supporting Line Spectral Pairs. Various issues remain, ↵Michael Giacomelli3-78/+125
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-07-29Revert r14050 (apart from the non-related whitespace changes) and fix the ↵Dave Chapman5-26/+60
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-29Fix mp3 playback on the gigabeat by not putting code in IRAM. Someone ↵Michael Giacomelli3-10/+10
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-28FS #6705 - ARM optimisations for libmad by Tomasz Malesinski. Modified ↵Dave Chapman6-21/+1091
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-27fixes bug that prevented playback of WavPack files containing over 1000 ↵Dave Bryant1-7/+19
bytes of RIFF header data git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14019 a1c6a512-1295-4272-9138-f99709370657
2007-07-25Fix overflow in noise coding. Greatly improves sound quality of some low ↵Michael Giacomelli1-1/+1
bitrate files git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13975 a1c6a512-1295-4272-9138-f99709370657
2007-07-21Fix decoding of misc sample rates that no one ever usesMichael Giacomelli1-10/+10
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13946 a1c6a512-1295-4272-9138-f99709370657
2007-07-20Add incomplete support for files using noise coding but not LSP. In ↵Michael Giacomelli3-29/+1069
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-20Fix nasty bug that causes low bitrate files to crash because of an incorrect ↵Michael Giacomelli1-59/+25
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-18Cosmetic changes - update a comment and add more info to a DEBUGFDave Chapman1-2/+3
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13925 a1c6a512-1295-4272-9138-f99709370657
2007-07-16simplified the codec specification part in configureDaniel Stenberg1-2/+1
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13922 a1c6a512-1295-4272-9138-f99709370657
2007-07-16Forgot to add a file as usual.Michael Sevakis1-0/+399
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13920 a1c6a512-1295-4272-9138-f99709370657
2007-07-16Make the SPC codec run like it used to on Coldfire before -Os crushed it. ↵Michael Sevakis9-814/+609
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-15Clean out unused codeNils Wallménius8-547/+0
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13910 a1c6a512-1295-4272-9138-f99709370657
2007-07-13Fix warnings.Michael Giacomelli1-2/+3
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13866 a1c6a512-1295-4272-9138-f99709370657
2007-07-12WMA codec: Coldfire is capable of unaligned memory accesses, so lets make ↵Jens Arnold4-6/+34
use of it. ~1.5% speedup. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13865 a1c6a512-1295-4272-9138-f99709370657
2007-07-12Fix the above by including all required files and updating SOURCES.Michael Giacomelli2-1/+130
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13860 a1c6a512-1295-4272-9138-f99709370657
2007-07-12Sync the bitstream functions with ffmpeg. Switch wmadeci.c over to get_vlc2 ↵Michael Giacomelli9-632/+1143
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-11TAB and whitespace policeDave Chapman2-9/+9
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13858 a1c6a512-1295-4272-9138-f99709370657
2007-07-11Don't assume files are WMAv2, instead actually check that they are and quit ↵Michael Giacomelli2-5/+12
gracefully if they are not. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13855 a1c6a512-1295-4272-9138-f99709370657
2007-07-11Ancient ffmpeg bug fix that should never have been missed. Prevents ↵Michael Giacomelli1-2/+3
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-10ASF parser improvements - it now correctly handles files containing multiple ↵Dave Chapman1-42/+66
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-09Restore some lost copyright headers from the ffmpeg projectDave Chapman3-0/+60
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13834 a1c6a512-1295-4272-9138-f99709370657
2007-07-09Reorganise the wma_decode_superframe() function - split into a separate init ↵Dave Chapman3-65/+104
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-09ICONST_ATTR most constant tables in Speex. Results in a 10% improvement on ↵Dan Everton15-29/+46
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-09Code reorganisation - move the vlc functions back to common.c/common.h ↵Dave Chapman4-221/+222
(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-09Compute MDCT in place. Make that place within IRAM. Gives nice speed boost ↵Michael Giacomelli1-18/+18
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-09Move very commonly accessed array into IRAM. Should give a nice speedup on ↵Michael Giacomelli2-9/+13
Coldfire. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13827 a1c6a512-1295-4272-9138-f99709370657
2007-07-09wma_decode_end() doesn't exist any more - it was only used to deallocate memory.Dave Chapman1-2/+0
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13826 a1c6a512-1295-4272-9138-f99709370657
2007-07-09Code clean up.Michael Giacomelli1-117/+24
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13825 a1c6a512-1295-4272-9138-f99709370657
2007-07-08Inline wma_window functions. No real performance improvement. Also, thanks ↵Michael Giacomelli1-2/+2
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-08Merge bit reverse tables together.Michael Giacomelli1-17/+33
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13822 a1c6a512-1295-4272-9138-f99709370657
2007-07-08Fix rare overflow when decoding MDCT coefficients. As a bonus, decoding is ↵Michael Giacomelli1-17/+9
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-08Fix previousMichael Giacomelli3-4/+19
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13814 a1c6a512-1295-4272-9138-f99709370657
2007-07-08Move MDCT reconstruction window code over to new trig function. Improves ↵Michael Giacomelli3-45/+16
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-06Merged in first part of ffmpeg accuracy improvments. No change on my ↵Michael Giacomelli2-37/+17
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-06Merged in ffmpeg combined MDCT reconstruction. Saves us a 16KB buffer, and ↵Michael Giacomelli1-94/+83
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-04Yet more dead code removalDave Chapman5-152/+1
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13789 a1c6a512-1295-4272-9138-f99709370657
2007-07-04Remove some unused codeDave Chapman2-149/+0
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13788 a1c6a512-1295-4272-9138-f99709370657
2007-07-04Assemblerised CMUL() for ARM, giving ~20% speedup.Jens Arnold2-25/+23
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13787 a1c6a512-1295-4272-9138-f99709370657