summaryrefslogtreecommitdiff
path: root/apps/codecs
AgeCommit message (Collapse)Author
2010-12-05make WavPack library check the extent of the block that it is parsing so ↵Dave Bryant
that it cannot run into the next block; also enhance the metadata code to handle the case of files with non-audio blocks at the beginning (which can happen if the source WAV file has lots of RIFF data) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28736 a1c6a512-1295-4272-9138-f99709370657
2010-12-04libtremor: merge upstream revision 17374 and some inline/icode tweaks to ↵Nils Wallménius
maintain speed. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28732 a1c6a512-1295-4272-9138-f99709370657
2010-12-01Remove tabsAndree Buschmann
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28719 a1c6a512-1295-4272-9138-f99709370657
2010-12-01codeclib: inline assembler for fft4 and fft8 on coldfire, small 0.2-0.3MHz ↵Nils Wallménius
speedup with gcc 3.4, larger 0.6-0.8MHz speedup with gcc 4.4/4.5 git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28716 a1c6a512-1295-4272-9138-f99709370657
2010-11-29ARM9 optimized synth_full for libmad. Speeds up mp3 decoding by an even 2 ↵Michael Giacomelli
MHz on all ARM9 and later devices. Note this is only optimized for arm9 (non-E), although it is faster on later devices. An arm9E/11 version will be needed for optimal performance on newer devices. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28710 a1c6a512-1295-4272-9138-f99709370657
2010-11-26libtremor: small tweak to coldfire inline asm function MULT31_SHIFT15, ↵Nils Wallménius
saving one instruction, *tiny* speedup, output unchanged git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28666 a1c6a512-1295-4272-9138-f99709370657
2010-11-24codeclib: there is no need to limit the outputs of the coldfire X(N)PROD_R ↵Nils Wallménius
macros to data registers, no significant speed diff git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28656 a1c6a512-1295-4272-9138-f99709370657
2010-11-23codeclib: don't mark the outputs for the coldfire X(N)PROD_R asm macros as ↵Nils Wallménius
earlyclobbers as they are not, lets gcc produce better code. Speedup of 0.2-0.3MHz for codecs using the mdct, (larger speedup when building with gcc 4.4). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28650 a1c6a512-1295-4272-9138-f99709370657
2010-11-22Use MEM_ALIGN_ATTR in libatrac3.Andree Buschmann
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28643 a1c6a512-1295-4272-9138-f99709370657
2010-11-22Fix bug in libatrac which lead to playback errors and/or distortions with ↵Andree Buschmann
some atrac3 files. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28642 a1c6a512-1295-4272-9138-f99709370657
2010-11-22Align various libwma buffers. Saves about 1 MHz on the Gigabeat S.Michael Giacomelli
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28640 a1c6a512-1295-4272-9138-f99709370657
2010-11-22Force alignment of various data structures in libmad. Speeds up Gigabeat S ↵Michael Giacomelli
decoding by about 1MHz. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28639 a1c6a512-1295-4272-9138-f99709370657
2010-11-21Remove tabs.Andree Buschmann
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28635 a1c6a512-1295-4272-9138-f99709370657
2010-11-21Comment unused function.Andree Buschmann
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28634 a1c6a512-1295-4272-9138-f99709370657
2010-11-21Remove unused define.Andree Buschmann
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28633 a1c6a512-1295-4272-9138-f99709370657
2010-11-21Use MEM_ALIGN_ATTR in libdemac instead of fixed alignment. Speeds up arm11 ↵Andree Buschmann
by ~6%. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28632 a1c6a512-1295-4272-9138-f99709370657
2010-11-21Use MEM_ALIGN_ATTR in mpc codec. Speed up by 22-24% was measured on ARM11.Andree Buschmann
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28627 a1c6a512-1295-4272-9138-f99709370657
2010-11-20Commit first part of FS#11235 by Buschel and I. Improves scheduling on arm9 ↵Michael Giacomelli
for two filter macros in libmad that are almost never called. A larger speed up will be possible when the remaining ASM code is improved. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28624 a1c6a512-1295-4272-9138-f99709370657
2010-11-18libtremor: Use larger cachesize for codebook decoding on targets with 1MB ↵Nils Wallménius
codec buffer. speedups as follows: ~3%/2MHz on high bitrate files (500kbps) on Gigabeat S ~1%/0.5MHz on high bitrate files (500kbps) on Fuze v1 ~3%/1MHz (128kbps) - 12%/7MHz (500kbps) on H300 ~2%/0.5MHz (128kbps) - 10%/3.5MHz (500kbps) on C200 v1 git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28615 a1c6a512-1295-4272-9138-f99709370657
2010-11-17ffmpeg flac does actually support up to 192k sample rates, and my test file ↵Michael Giacomelli
seems to decode fine, so lets enable it. Note that using 192khz is over 6 times slower then 44.1khz on my test file, so I recommend sticking to more reasonable bitrates. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28609 a1c6a512-1295-4272-9138-f99709370657
2010-11-15libtremor: correct constraint for coldfire asm, swap can only be used on ↵Nils Wallménius
data registers. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28604 a1c6a512-1295-4272-9138-f99709370657
2010-11-12Minor speed up of mpc requantization.Andree Buschmann
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28563 a1c6a512-1295-4272-9138-f99709370657
2010-11-12Re-submit ARM asm optimizations in mpc synthesis as the performance ↵Andree Buschmann
regressions on S5L870x have been solved with r28561. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28562 a1c6a512-1295-4272-9138-f99709370657
2010-11-12Set alignment for major data arrays in the mpc codec. This avoids ↵Andree Buschmann
performance regressions on S5L870x CPUs when changing code and allows further improvements. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28561 a1c6a512-1295-4272-9138-f99709370657
2010-11-10Remove some benchmarking code accidentally included in the previous commit.Michael Giacomelli
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28550 a1c6a512-1295-4272-9138-f99709370657
2010-11-10Commit FS#11709 by me. Introduces ARMv5E optimized iQMF for atrac3 based on ↵Michael Giacomelli
packed multiply instructions. Additionally, improves scheduling on arm9 and arm11 and forces cache alignment of buffers on all targets. Accuracy is slightly reduced, but still greater then 16 bit. Clip+ CPU clock required for LP2 files decreases by 13MHz and ARM11 by 18MHz. No performance or accuracy changes on armv4 or non-arm. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28549 a1c6a512-1295-4272-9138-f99709370657
2010-11-10Introduce macros to ARM asm atrac3 filterbank for better readability.Andree Buschmann
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28546 a1c6a512-1295-4272-9138-f99709370657
2010-11-09Roll back r28488 as it slows down mpc by 2% on S5L8701.Andree Buschmann
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28545 a1c6a512-1295-4272-9138-f99709370657
2010-11-09Correct comment.Andree Buschmann
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28540 a1c6a512-1295-4272-9138-f99709370657
2010-11-08update the asap codec to version 2.1.2Dominik Wenger
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28535 a1c6a512-1295-4272-9138-f99709370657
2010-11-07Clean up libmad, remove unused compile options and source paths.Andree Buschmann
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28532 a1c6a512-1295-4272-9138-f99709370657
2010-11-07Tiny refactoring of libmad's synthesis filter. This allows minor speed up ↵Andree Buschmann
and higher precision on ARM, plus a simplification in dct32 configuration. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28531 a1c6a512-1295-4272-9138-f99709370657
2010-11-07set mode argument for open() where O_CREAT flag is/can be set.Teruaki Kawashima
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28527 a1c6a512-1295-4272-9138-f99709370657
2010-11-05libmusepack: use postindexing on the pointer when storing to increment it ↵Nils Wallménius
for free, saves another instruction in the loop in mpc_decoder_windowing_D speed difference is in the noise though. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28492 a1c6a512-1295-4272-9138-f99709370657
2010-11-05libmusepack: tiny optimization of the ARMv4 mpc_decoder_windowing_D ↵Nils Wallménius
implementations, using register indexed addressing to store data, saving one instruction in the loop and deleting one instruction adter the loop which isn't needed. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28488 a1c6a512-1295-4272-9138-f99709370657
2010-11-05libmusepack: ARMv6 assembler for mpc_decoder_windowing_D, speeds up decoding ↵Nils Wallménius
of 128kbps sample file 2MHz, or 8%, on gigabeat S. The output difference to the c implementation and the other ARM implementation is +/-1 in less than 0.1% of the output samples. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28487 a1c6a512-1295-4272-9138-f99709370657
2010-11-02Minor optimization of mpc codec via moving dewindowing asm to icode section ↵Andree Buschmann
for S5L870x. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28454 a1c6a512-1295-4272-9138-f99709370657
2010-11-02Using icode attribute for S5L870x is faster on some codecs. Speed up for mpc ↵Andree Buschmann
is ~3%, for aac ~1%. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28453 a1c6a512-1295-4272-9138-f99709370657
2010-11-02Optimize mpc's synthesis filter by reducing stalls for arm9 and above. Speed ↵Andree Buschmann
up ranges from 4% (nano 2g) to 11% (beast). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28452 a1c6a512-1295-4272-9138-f99709370657
2010-11-01Fix typo from r28026 causing warnings on newer gcc.Nils Wallménius
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28439 a1c6a512-1295-4272-9138-f99709370657
2010-11-01Fix FS#11710. On Coldfire CPU's mpc uses a speed optimization which was not ↵Andree Buschmann
correctly re-initialized when rebuffering. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28437 a1c6a512-1295-4272-9138-f99709370657
2010-10-31libtremor: tweak a hot function for codebook decoding, mostly moving pointer ↵Nils Wallménius
lookups outside the loop. Speeds up decoding by 3-6% on Coldfire and a small speedup on arm too git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28419 a1c6a512-1295-4272-9138-f99709370657
2010-10-31libtremor: introduce asm optimized version of the channel_couple function ↵Nils Wallménius
for Coldfire and optimize the arm as version, speedup ~1% on Coldfire and PortalPlayer. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28405 a1c6a512-1295-4272-9138-f99709370657
2010-10-16libtremor: tiny optimization 0.5%-1.5% on coldfire and PPNils Wallménius
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28285 a1c6a512-1295-4272-9138-f99709370657
2010-10-12Rearrange and remove some manual register assignments, make use of pointer ↵Dave Hooper
address increments for free on arm, and remove macros in favour of explicit inline fns. also add memory clobbers to all uses of stm in inline asm. appears to resolve issues with codeclib failing to work as expected when using ARM_ASM optimisations on targets with native position independent code (e.g. android rockbox targets, but also tremor on non-rockbox targets that has been patched with the fastermdct patches) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28262 a1c6a512-1295-4272-9138-f99709370657
2010-10-10Invalidate the CPU cache after clearing bss, to make sure that bss variables ↵Frank Gevaerts
that are used via non-cached aliases don't read garbage. This fixes FS#11653 for me git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28236 a1c6a512-1295-4272-9138-f99709370657
2010-10-10Fix a few div0 cases forgotten in r27684 to enable enabling asm ↵Thomas Martitz
optimizations for android builds. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28235 a1c6a512-1295-4272-9138-f99709370657
2010-10-02Fix FS#11650. Correct sliencing of subband in mpc decoder. Thanks to Leo ↵Andree Buschmann
Witt for reporting and supporting. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28200 a1c6a512-1295-4272-9138-f99709370657
2010-10-02Optimization of mpc's buffering routines through using the maximum possible ↵Andree Buschmann
buffer size. This reduces read access calls. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28198 a1c6a512-1295-4272-9138-f99709370657
2010-10-02Finally fix FS#11476 (data abort when playing some sv8 mpc files on lowmem ↵Andree Buschmann
targets like Clip+/Fuzev1/Fuzev2). This fix disables loading of seek tables from the sv8 bitstream. Those table are located at the end of sv8-files. When playing sv8 files this resulted in seek to filebegin, then fileend, then back to filebegin. Such seeking behaviour results in heavy rebuffering when playing files on targets with low RAM. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28197 a1c6a512-1295-4272-9138-f99709370657