summaryrefslogtreecommitdiff
path: root/apps/codecs/libwma
AgeCommit message (Collapse)Author
2007-10-29Argh.Michael Giacomelli
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15368 a1c6a512-1295-4272-9138-f99709370657
2007-10-29Copyright.Michael Giacomelli
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15367 a1c6a512-1295-4272-9138-f99709370657
2007-10-29We removed the old Q15.16 precision trig functions from decoding ages ago, ↵Michael Giacomelli
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-19Move multiply routines into the header. Give Coldfire a fixmul32b(). Remove ↵Thom Johansen
some tabs and empty lines. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15205 a1c6a512-1295-4272-9138-f99709370657
2007-10-18Oversight in syncing on my end, sorry.Thom Johansen
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15184 a1c6a512-1295-4272-9138-f99709370657
2007-10-18Add Coldfire and ARM assembler for "reverse multiply and copy" function too. ↵Thom Johansen
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-18Woops, movem.l needs other order.Thom Johansen
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15178 a1c6a512-1295-4272-9138-f99709370657
2007-10-18Add Coldfire assembler for window and add function, yielding a nice speedup. ↵Thom Johansen
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-01move structures around in the header filesMarcoen Hirschberg
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14941 a1c6a512-1295-4272-9138-f99709370657
2007-10-01disable the ARM optimized MDCT for the Gigabeat for now as it creates a data ↵Marcoen Hirschberg
abort git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14940 a1c6a512-1295-4272-9138-f99709370657
2007-09-20reuse the largest sin and cos tables for smaller sizesMarcoen Hirschberg
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14786 a1c6a512-1295-4272-9138-f99709370657
2007-09-20fix a warning for coldfireMarcoen Hirschberg
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14779 a1c6a512-1295-4272-9138-f99709370657
2007-09-20get rid of warningsMarcoen Hirschberg
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14778 a1c6a512-1295-4272-9138-f99709370657
2007-09-20remove unused struct member and variableMarcoen Hirschberg
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14777 a1c6a512-1295-4272-9138-f99709370657
2007-09-20move (i)MDCT and FFT code to separate filesMarcoen Hirschberg
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14776 a1c6a512-1295-4272-9138-f99709370657
2007-09-20small cleanupsMarcoen Hirschberg
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14772 a1c6a512-1295-4272-9138-f99709370657
2007-09-02Fix warning.Jens Arnold
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14577 a1c6a512-1295-4272-9138-f99709370657
2007-09-02Apparently, negative exponents are possible when decoding exponential VLC. ↵Michael Giacomelli
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-24Clean up iMDCT coefficient calculations.Michael Giacomelli
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 Giacomelli
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-06use the full resolution we get from the WMA decoder and let the DSP code do ↵Marcoen Hirschberg
the rest git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14224 a1c6a512-1295-4272-9138-f99709370657
2007-08-06Fix warning.Michael Giacomelli
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14207 a1c6a512-1295-4272-9138-f99709370657
2007-08-06Clean up VLC functions.Michael Giacomelli
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14206 a1c6a512-1295-4272-9138-f99709370657
2007-08-02Cosmetic changes - TAB and whitespace policing.Dave Chapman
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 Giacomelli
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-25Fix overflow in noise coding. Greatly improves sound quality of some low ↵Michael Giacomelli
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 Giacomelli
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 Giacomelli
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 Giacomelli
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-13Fix warnings.Michael Giacomelli
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 Arnold
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 Giacomelli
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 Giacomelli
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 Chapman
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 Giacomelli
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 Giacomelli
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-09Restore some lost copyright headers from the ffmpeg projectDave Chapman
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 Chapman
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-09Code reorganisation - move the vlc functions back to common.c/common.h ↵Dave Chapman
(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 Giacomelli
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 Giacomelli
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 Chapman
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13826 a1c6a512-1295-4272-9138-f99709370657
2007-07-09Code clean up.Michael Giacomelli
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 Giacomelli
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 Giacomelli
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 Giacomelli
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 Giacomelli
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 Giacomelli
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 Giacomelli
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 Giacomelli
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