summaryrefslogtreecommitdiff
path: root/apps/codecs (follow)
Commit message (Collapse)AuthorAge
...
* Improvements to specialized dividers for APE codec:Andrew Mahone2010-01-28
| | | | | | | | | * Use Newton-Raphson divider on ARMv5e and ARMv6, about 7% speedup on Gigabeat S. * On ARMv4 targets using IRAM, remove insane filter buffer from IRAM, fill available IRAM with LUT of reciprocals for small divisors - speedup varies according to target and available IRAM, APE normal sample is approx. 109% RT on e200. * Rename apps/codecs/lib/udiv32_armv4.S to apps/codecs/lib/udiv32_arm.S, which includes dividers for all ARM targets specialized for APE. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24354 a1c6a512-1295-4272-9138-f99709370657
* Try one more time to fix bitness warnings in WAV.Michael Giacomelli2010-01-27
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24349 a1c6a512-1295-4272-9138-f99709370657
* Commit FS#10423 by Yoshihisa Uchida. Adds support for floating point PCM to ↵Michael Giacomelli2010-01-27
| | | | | | libpcm. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24348 a1c6a512-1295-4272-9138-f99709370657
* Fix warnings on 32 bit sim.Michael Giacomelli2010-01-27
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24347 a1c6a512-1295-4272-9138-f99709370657
* Commit FS#10422 by Yoshihisa Uchida. Seperates WAV and AIFF parsing from ↵Michael Giacomelli2010-01-27
| | | | | | PCM decoding by introducing libpcm, a library for decoding linear and non-uniform PCM independently of the container format. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24346 a1c6a512-1295-4272-9138-f99709370657
* *.link: depends on config file where plugin buffer size is setRafaël Carré2010-01-24
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24322 a1c6a512-1295-4272-9138-f99709370657
* This should fix FS#10917, and also fix channel swapping i introduced in ↵Nils Wallménius2010-01-18
| | | | | | r23784. Lets hope the third time's the charm git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24271 a1c6a512-1295-4272-9138-f99709370657
* This should fix FS#10917, unfortunately i have no target evailable to test onNils Wallménius2010-01-18
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24270 a1c6a512-1295-4272-9138-f99709370657
* Fix typo causing l+r mono encoding to use only one channelNils Wallménius2010-01-18
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24269 a1c6a512-1295-4272-9138-f99709370657
* Invert divisor earlier in udiv32_arm, allowing the div0 test to be done ↵Andrew Mahone2010-01-03
| | | | | | before entering the 32-bit divide portion of the code, and making the handling of div0 simpler. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24166 a1c6a512-1295-4272-9138-f99709370657
* Set svn:keywords property on .c and .h files that didn't already have it. ↵Bertrik Sikken2010-01-03
| | | | | | Correct svn:executable property on some files. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24165 a1c6a512-1295-4272-9138-f99709370657
* More tabs removedAndree Buschmann2010-01-03
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24157 a1c6a512-1295-4272-9138-f99709370657
* Use long jump to reach __div0 from udiv32_arm if building with IRAM and ↵Andrew Mahone2010-01-03
| | | | | | without EABI. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24152 a1c6a512-1295-4272-9138-f99709370657
* More comments for udiv32_armv4.S, reduce zero divisor test to one cycle for ↵Andrew Mahone2010-01-03
| | | | | | the skipped branch by setting flags when inverting divisor, 32-bit numerators are handled by calling the 31-bit divider and fixing the results. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24151 a1c6a512-1295-4272-9138-f99709370657
* Second part of FS#10832 by Juliusz Chroboczek. Ignore empty mdat chunks in ↵Michael Giacomelli2010-01-02
| | | | | | mp4 files. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24148 a1c6a512-1295-4272-9138-f99709370657
* Commit first part of FS#10832 by Juliusz Chroboczek. Allows playback of ↵Michael Giacomelli2010-01-02
| | | | | | unstreamable AAC/ALAC files by stepping through the file to find the index, potientially rebuffering. This is likely to impose a battery life hit on files which are unstreamable and not much smaller then the buffer, but should not impact streamable files at all. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24147 a1c6a512-1295-4272-9138-f99709370657
* Add missing EOF newline.Andrew Mahone2010-01-02
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24143 a1c6a512-1295-4272-9138-f99709370657
* Remove special cases from udiv32_armv4.S, except for zero divisor and large ↵Andrew Mahone2010-01-02
| | | | | | numerator. Improvement of 1.23MHz on e200 with ape normal. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24142 a1c6a512-1295-4272-9138-f99709370657
* Simplify some expressions using the ? operatorBertrik Sikken2010-01-01
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24136 a1c6a512-1295-4272-9138-f99709370657
* Add 31/31-bit unsigned division in apps/codecs/lib/udiv_arm.S, with 2 cycles ↵Andrew Mahone2009-12-31
| | | | | | / iteration, falling back to previous 32-bit, 3 cycle / iteration code when needed (well under 1% of divisions in sample file). APE normal sample is now 96.90% realtime, approx 1.3% improved vs svn. TODO: unify divisor normalization for both trial subtraction routines, possibly use divisor bits to select 31- vs 32-bit division. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24130 a1c6a512-1295-4272-9138-f99709370657
* Assembler optimised bitreverse for ARM, again a little bit faster and ↵Jens Arnold2009-12-23
| | | | | | 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
* Improved bitrev with approach suggested by Jens Arnold, gives 0.5%-1% ↵Nils Wallménius2009-12-23
| | | | | | 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
* Use optimised byteswap function in bitrev for a tiny speedup on coldfire and ↵Nils Wallménius2009-12-21
| | | | | | 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
* Commit both patches in FS#10833 - Protect against division by zero in AAC ↵Michael Giacomelli2009-12-14
| | | | | | (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
* Improved bitrev12, using a larger LUT to save one lookup, speeds up vorbis ↵Nils Wallménius2009-12-13
| | | | | | about 2% on beast, about 0.5% on h300 git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23973 a1c6a512-1295-4272-9138-f99709370657
* Fix red, DESCALE_SHIFT macro was missing a right-parenthesis.Andrew Mahone2009-12-13
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23968 a1c6a512-1295-4272-9138-f99709370657
* Libfaad pow2/log2 improvements:Andrew Mahone2009-12-13
| | | | | | | | | 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
* Comment var only used by already commented out debug code, delete #if 0'ed ↵Nils Wallménius2009-12-12
| | | | | | block move a comment and fix some broken indentation git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23945 a1c6a512-1295-4272-9138-f99709370657
* Remove inline asm that hasn't been useful for years, no speed differenceNils Wallménius2009-12-10
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23928 a1c6a512-1295-4272-9138-f99709370657
* Remove some sample functions from codeclib - these were for verifying the ↵Andrew Mahone2009-12-09
| | | | | | 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
* Extend av_log2 in codeclib into a generic for scanning for set bits, which ↵Andrew Mahone2009-12-09
| | | | | | 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
* Fix red: av_log2 undefined for ARM_ARCH <= 4, missing codeclib.h includes.Andrew Mahone2009-12-06
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23869 a1c6a512-1295-4272-9138-f99709370657
* slightly faster asm av_log2 for armv6 (currently only Gigabeat S)Nils Wallménius2009-12-06
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23868 a1c6a512-1295-4272-9138-f99709370657
* Fix yellow: mixed signed/unsigned in conditional.Andrew Mahone2009-12-05
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23867 a1c6a512-1295-4272-9138-f99709370657
* Slightly improve av_log2 in codeclib on ARMv6.Andrew Mahone2009-12-05
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23866 a1c6a512-1295-4272-9138-f99709370657
* Move av_log2 function and asociated table to the codec lib, remove 3 ↵Nils Wallménius2009-12-05
| | | | | | 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
* Oops, correct typo that made the previous commit uselessNils Wallménius2009-11-29
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23794 a1c6a512-1295-4272-9138-f99709370657
* Disable strict aliasing for speex for now to get rid of warnings, some very ↵Nils Wallménius2009-11-29
| | | | | | nasty casting in here git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23793 a1c6a512-1295-4272-9138-f99709370657
* Fix yellow by making the ifdef hell slightly worseNils Wallménius2009-11-29
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23790 a1c6a512-1295-4272-9138-f99709370657
* Enable strict aliasing optimizations for codecs on gcc versions >= 4.0, fix ↵Nils Wallménius2009-11-29
| | | | | | 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
* Use clz instruction to calculate integer logarithms, speeds up decoding of ↵Nils Wallménius2009-11-29
| | | | | | one flac 8 sample by 12%. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23783 a1c6a512-1295-4272-9138-f99709370657
* #if 0 out unused stuffNils Wallménius2009-11-29
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23782 a1c6a512-1295-4272-9138-f99709370657
* Use clz instruction to count leading zeroes on armv5+, gives about 2% ↵Nils Wallménius2009-11-29
| | | | | | speedup with one sample on the Gigabeat S git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23781 a1c6a512-1295-4272-9138-f99709370657
* These macros have been replaced by (UN)LIKELY macros and were not used anywhere.Nils Wallménius2009-11-29
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23780 a1c6a512-1295-4272-9138-f99709370657
* Add support for the MP4 file type 'isom'. Based on FS#10790 with an ↵Magnus Holmgren2009-11-22
| | | | | | 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
* Fix warning on new gcc for checking value or truth of undefined _WIN32 and MIPS.Andrew Mahone2009-11-20
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23670 a1c6a512-1295-4272-9138-f99709370657
* Avoid possible memory corruptionNils Wallménius2009-11-19
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23666 a1c6a512-1295-4272-9138-f99709370657
* Set svn:keywords property.Mohamed Tarek2009-11-18
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23660 a1c6a512-1295-4272-9138-f99709370657
* Handle mid-track resumes in RM.Mohamed Tarek2009-11-18
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23659 a1c6a512-1295-4272-9138-f99709370657
* Make the codecs use more IRAM on S5L870x, as we have plenty of it.Michael Sparmann2009-11-09
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23594 a1c6a512-1295-4272-9138-f99709370657