summaryrefslogtreecommitdiff
path: root/apps/codecs
AgeCommit message (Collapse)Author
2009-12-23Assembler optimised bitreverse for ARM, again a little bit faster and ↵Jens Arnold
smaller. * Separated 'x' and 'ret' gives gcc a bit more freedom regarding register allocation (except on coldfire where it doesn't matter). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24107 a1c6a512-1295-4272-9138-f99709370657
2009-12-23Improved bitrev with approach suggested by Jens Arnold, gives 0.5%-1% ↵Nils Wallménius
speedup for tremor decoding on sansa c200 (PP) and a tiny speedup on coldfire as well git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24102 a1c6a512-1295-4272-9138-f99709370657
2009-12-21Use optimised byteswap function in bitrev for a tiny speedup on coldfire and ↵Nils Wallménius
pp and about 1-2% speedup on gigabeat s (due to the armv6 rev instruction) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24095 a1c6a512-1295-4272-9138-f99709370657
2009-12-14Commit both patches in FS#10833 - Protect against division by zero in AAC ↵Michael Giacomelli
(mp4) codec by Juliusz Chroboczek. Adds some return value checking so that faad errors don't crash rockbox when decoding broken or unsupported files. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23983 a1c6a512-1295-4272-9138-f99709370657
2009-12-13Improved bitrev12, using a larger LUT to save one lookup, speeds up vorbis ↵Nils Wallménius
about 2% on beast, about 0.5% on h300 git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23973 a1c6a512-1295-4272-9138-f99709370657
2009-12-13Fix red, DESCALE_SHIFT macro was missing a right-parenthesis.Andrew Mahone
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23968 a1c6a512-1295-4272-9138-f99709370657
2009-12-13Libfaad pow2/log2 improvements:Andrew Mahone
Correct pow2_* to calculate correct output for input < 0.0 or between 0.0 and 1.0 instead of returning 0. This will change output, but the float version of this codec uses pow(2.0,x) in place of these functions, so this behavior was probably a bug Replace 64-bit multiply in pow2_* with left or right shift by whole part of input, rounding if shifting right. An ARM-specific optimized version is provided as a C inline function, other targets use a C macro. Increase constant size of table for pow2 to improve accuracy, also avoid early truncation in linear interpolation of result. Move constant tables for pow2 and log2 to iram. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23967 a1c6a512-1295-4272-9138-f99709370657
2009-12-12Comment var only used by already commented out debug code, delete #if 0'ed ↵Nils Wallménius
block move a comment and fix some broken indentation git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23945 a1c6a512-1295-4272-9138-f99709370657
2009-12-10Remove inline asm that hasn't been useful for years, no speed differenceNils Wallménius
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23928 a1c6a512-1295-4272-9138-f99709370657
2009-12-09Remove some sample functions from codeclib - these were for verifying the ↵Andrew Mahone
generated asm for bs_generic and never intended for use. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23911 a1c6a512-1295-4272-9138-f99709370657
2009-12-09Extend av_log2 in codeclib into a generic for scanning for set bits, which ↵Andrew Mahone
can provide either log2 or leading-zero-count output, and can force mapping 0 input to 0 output if needed (otherwise 0 input produces undefined result). Replace av_log2 in lib/codeclib.h, floor_log2 and wl_min_lzc in libfaad/common.c and common.h, and count_leading_zeros in libalac/alac.c with macros using bs_generic. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23903 a1c6a512-1295-4272-9138-f99709370657
2009-12-06Fix red: av_log2 undefined for ARM_ARCH <= 4, missing codeclib.h includes.Andrew Mahone
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23869 a1c6a512-1295-4272-9138-f99709370657
2009-12-06slightly faster asm av_log2 for armv6 (currently only Gigabeat S)Nils Wallménius
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23868 a1c6a512-1295-4272-9138-f99709370657
2009-12-05Fix yellow: mixed signed/unsigned in conditional.Andrew Mahone
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23867 a1c6a512-1295-4272-9138-f99709370657
2009-12-05Slightly improve av_log2 in codeclib on ARMv6.Andrew Mahone
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23866 a1c6a512-1295-4272-9138-f99709370657
2009-12-05Move av_log2 function and asociated table to the codec lib, remove 3 ↵Nils Wallménius
identical implementations, always have LUT in iram (gives a *tiny* speedup on coldfire), make the clz based function return the same value as the non clz based function for 0 input to be safe (slows down flac ~2% on the gigabeat S) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23858 a1c6a512-1295-4272-9138-f99709370657
2009-11-29Oops, correct typo that made the previous commit uselessNils Wallménius
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23794 a1c6a512-1295-4272-9138-f99709370657
2009-11-29Disable strict aliasing for speex for now to get rid of warnings, some very ↵Nils Wallménius
nasty casting in here git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23793 a1c6a512-1295-4272-9138-f99709370657
2009-11-29Fix yellow by making the ifdef hell slightly worseNils Wallménius
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23790 a1c6a512-1295-4272-9138-f99709370657
2009-11-29Enable strict aliasing optimizations for codecs on gcc versions >= 4.0, fix ↵Nils Wallménius
alising violations that this uncovered, gives small speedups for most codecs, FS#10801 git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23784 a1c6a512-1295-4272-9138-f99709370657
2009-11-29Use clz instruction to calculate integer logarithms, speeds up decoding of ↵Nils Wallménius
one flac 8 sample by 12%. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23783 a1c6a512-1295-4272-9138-f99709370657
2009-11-29#if 0 out unused stuffNils Wallménius
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23782 a1c6a512-1295-4272-9138-f99709370657
2009-11-29Use clz instruction to count leading zeroes on armv5+, gives about 2% ↵Nils Wallménius
speedup with one sample on the Gigabeat S git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23781 a1c6a512-1295-4272-9138-f99709370657
2009-11-29These macros have been replaced by (UN)LIKELY macros and were not used anywhere.Nils Wallménius
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23780 a1c6a512-1295-4272-9138-f99709370657
2009-11-22Add support for the MP4 file type 'isom'. Based on FS#10790 with an ↵Magnus Holmgren
additional fix, making the sample file play. Also updated some debug prints. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23708 a1c6a512-1295-4272-9138-f99709370657
2009-11-20Fix warning on new gcc for checking value or truth of undefined _WIN32 and MIPS.Andrew Mahone
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23670 a1c6a512-1295-4272-9138-f99709370657
2009-11-19Avoid possible memory corruptionNils Wallménius
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23666 a1c6a512-1295-4272-9138-f99709370657
2009-11-18Set svn:keywords property.Mohamed Tarek
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23660 a1c6a512-1295-4272-9138-f99709370657
2009-11-18Handle mid-track resumes in RM.Mohamed Tarek
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23659 a1c6a512-1295-4272-9138-f99709370657
2009-11-09Make the codecs use more IRAM on S5L870x, as we have plenty of it.Michael Sparmann
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23594 a1c6a512-1295-4272-9138-f99709370657
2009-11-08Reenable -O2 for Wavpack, which appears to have been lost during makefile ↵Michael Giacomelli
clean up. Improves wavpack decoding performance by several MHz on ARM and Coldfire. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23566 a1c6a512-1295-4272-9138-f99709370657
2009-10-04Add STATICIRAM_NOT_MDCT as a workaround for the gcc bug where static ↵Dave Chapman
functions are not long called. This is currently only an issue on the Nano2G (S5L8701 CPU) which is the only ARM target with enough IRAM for these functions. Also add multiple-inclusion protection for config-tremor.h. All plugins and codecs now compile cleanly for the Nano2G. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22914 a1c6a512-1295-4272-9138-f99709370657
2009-10-03Smarter check for failed packet parsing in RM. Also fixes a bug in playback ↵Mohamed Tarek
where sometimes "codec failure" is splashed at the end of playback. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22880 a1c6a512-1295-4272-9138-f99709370657
2009-10-02Commit unrolled version of WMA's exponent decode taken from latest ffmpeg. ↵Michael Giacomelli
Gives a 1% speedup @ 192kbps. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22871 a1c6a512-1295-4272-9138-f99709370657
2009-09-30Actually qualify the tables put into .irodata in r22849 as 'const'. Also ↵Jens Arnold
mark fftorder[] as 'const'. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22860 a1c6a512-1295-4272-9138-f99709370657
2009-09-30FS#10122 - Fix wrong format type of logf functions in speex.cTomer Shalev
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22857 a1c6a512-1295-4272-9138-f99709370657
2009-09-29Change IDATA to ICONST for lookup tables since they're actually constant.Michael Giacomelli
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22849 a1c6a512-1295-4272-9138-f99709370657
2009-09-07Fix for FS#10492, by Aoyumi: Data abort errors when playing some Vorbis files.Magnus Holmgren
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22653 a1c6a512-1295-4272-9138-f99709370657
2009-08-30Further performance optimization of the atrac3 decoder. Rework the internal ↵Andree Buschmann
sample representation and usage of dsp routines. For now a quick and dirty solution is used to add a fract part of 2 bits. Through this several buffers and functions as well as copy loops could be removed. Furthermore add some ASM for coldfire and place some additional data in IRAM on PP5022/24 and X5/M5. Speedup on ARM: +3%, speedup on Coldfire: +639%. Both ARM and Coldfire can decode in realtime now. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22561 a1c6a512-1295-4272-9138-f99709370657
2009-08-29fix redAndree Buschmann
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22549 a1c6a512-1295-4272-9138-f99709370657
2009-08-29Submit interim version of FS#10565. Performance optimization of atrac3 ↵Andree Buschmann
decoder for ARM. Introduce ASM routines for multiplications and two synthesis loops, refactured parts of synthesis and windowing. Speeds up decoding by a factor of 2.4 on PP502x. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22548 a1c6a512-1295-4272-9138-f99709370657
2009-08-29C code is NOT faster on S3C2440 - tested by AlexP on r22529Dave Hooper
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22530 a1c6a512-1295-4272-9138-f99709370657
2009-08-29Don't know why svn decided to delete tlsf/src... Maybe due to some aborted ↵Magnus Holmgren
tests I did to see where it would be best to place TLSF. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22529 a1c6a512-1295-4272-9138-f99709370657
2009-08-29FS#10466: Introduce a real malloc for tremor.Magnus Holmgren
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22528 a1c6a512-1295-4272-9138-f99709370657
2009-08-29Removed remaining MB usageDave Hooper
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22527 a1c6a512-1295-4272-9138-f99709370657
2009-08-29Fix condition code clobbers (and one TAB) for inline arm code in lib and ↵Dave Hooper
libtremor git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22526 a1c6a512-1295-4272-9138-f99709370657
2009-08-29Rerrange some registers in butterfly_generic to combine some 2-word stores ↵Dave Hooper
into 4-word stores and remove some redundant mov instructions. Shave off some additional instructions (stacking and additions) in butterfly_32 by getting butterfly_8 and butterfly_16 to do the address incrementing for us. Add a few comments. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22525 a1c6a512-1295-4272-9138-f99709370657
2009-08-24Add stdint.h to the codeclib when compiled outside of rockbox so that ↵Michael Giacomelli
int32_t is typedef'ed. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22502 a1c6a512-1295-4272-9138-f99709370657
2009-08-17Put ATRAC3Context in IRAM, 2.5% speedup on PP502x, 20% on ColdFire.Mohamed Tarek
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22374 a1c6a512-1295-4272-9138-f99709370657
2009-08-16revert r22337 for libwma for now since it broke wma playback on ARM due to ↵Mohamed Tarek
alignment issues. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22347 a1c6a512-1295-4272-9138-f99709370657