Andree Buschmann
dedffd3f40
Fix bug in libatrac which lead to playback errors and/or distortions with some atrac3 files.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28642 a1c6a512-1295-4272-9138-f99709370657
2010-11-22 23:26:39 +00:00
Michael Giacomelli
e5361590e7
Align various libwma buffers. Saves about 1 MHz on the Gigabeat S.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28640 a1c6a512-1295-4272-9138-f99709370657
2010-11-22 07:04:32 +00:00
Michael Giacomelli
0e53651062
Force alignment of various data structures in libmad. Speeds up Gigabeat S decoding by about 1MHz.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28639 a1c6a512-1295-4272-9138-f99709370657
2010-11-22 02:51:13 +00:00
Andree Buschmann
f99b896017
Remove tabs.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28635 a1c6a512-1295-4272-9138-f99709370657
2010-11-21 21:54:46 +00:00
Andree Buschmann
1aac58553c
Comment unused function.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28634 a1c6a512-1295-4272-9138-f99709370657
2010-11-21 18:59:24 +00:00
Andree Buschmann
3c83cea151
Remove unused define.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28633 a1c6a512-1295-4272-9138-f99709370657
2010-11-21 18:48:45 +00:00
Andree Buschmann
6cff0e72de
Use MEM_ALIGN_ATTR in libdemac instead of fixed alignment. Speeds up arm11 by ~6%.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28632 a1c6a512-1295-4272-9138-f99709370657
2010-11-21 17:58:42 +00:00
Andree Buschmann
0dbc4a6cae
Use MEM_ALIGN_ATTR in mpc codec. Speed up by 22-24% was measured on ARM11.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28627 a1c6a512-1295-4272-9138-f99709370657
2010-11-21 14:03:55 +00:00
Michael Giacomelli
f54cbfa164
Commit first part of FS#11235 by Buschel and I. Improves scheduling on arm9 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-20 19:06:05 +00:00
Nils Wallménius
8a2c480af7
libtremor: Use larger cachesize for codebook decoding on targets with 1MB 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-18 15:51:59 +00:00
Michael Giacomelli
b965c24c0b
ffmpeg flac does actually support up to 192k sample rates, and my test file 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-17 00:49:09 +00:00
Nils Wallménius
76027b5951
libtremor: correct constraint for coldfire asm, swap can only be used on data registers.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28604 a1c6a512-1295-4272-9138-f99709370657
2010-11-15 16:02:17 +00:00
Andree Buschmann
bb56bc4ba0
Minor speed up of mpc requantization.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28563 a1c6a512-1295-4272-9138-f99709370657
2010-11-12 07:09:09 +00:00
Andree Buschmann
ee610d47c7
Re-submit ARM asm optimizations in mpc synthesis as the performance 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-12 07:07:57 +00:00
Andree Buschmann
3f4e0cf25b
Set alignment for major data arrays in the mpc codec. This avoids 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-12 07:04:07 +00:00
Michael Giacomelli
c38378eff1
Remove some benchmarking code accidentally included in the previous commit.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28550 a1c6a512-1295-4272-9138-f99709370657
2010-11-10 18:34:27 +00:00
Michael Giacomelli
f51189fa4d
Commit FS#11709 by me. Introduces ARMv5E optimized iQMF for atrac3 based on 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-10 18:29:29 +00:00
Andree Buschmann
de0fcc3500
Introduce macros to ARM asm atrac3 filterbank for better readability.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28546 a1c6a512-1295-4272-9138-f99709370657
2010-11-10 07:16:04 +00:00
Andree Buschmann
92c38a728e
Roll back r28488 as it slows down mpc by 2% on S5L8701.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28545 a1c6a512-1295-4272-9138-f99709370657
2010-11-09 22:19:07 +00:00
Andree Buschmann
ebcfb13a86
Correct comment.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28540 a1c6a512-1295-4272-9138-f99709370657
2010-11-09 21:48:33 +00:00
Dominik Wenger
23cf4ad82f
update the asap codec to version 2.1.2
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28535 a1c6a512-1295-4272-9138-f99709370657
2010-11-08 20:25:14 +00:00
Andree Buschmann
5e4dc32287
Clean up libmad, remove unused compile options and source paths.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28532 a1c6a512-1295-4272-9138-f99709370657
2010-11-07 21:42:28 +00:00
Andree Buschmann
2df7a275c1
Tiny refactoring of libmad's synthesis filter. This allows minor speed up 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-07 21:15:13 +00:00
Teruaki Kawashima
930a8a5050
set mode argument for open() where O_CREAT flag is/can be set.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28527 a1c6a512-1295-4272-9138-f99709370657
2010-11-07 11:45:20 +00:00
Nils Wallménius
f174c3513b
libmusepack: use postindexing on the pointer when storing to increment it 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-05 16:21:25 +00:00
Nils Wallménius
9d98583a18
libmusepack: tiny optimization of the ARMv4 mpc_decoder_windowing_D 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-05 11:49:30 +00:00
Nils Wallménius
dbdc0a8a8c
libmusepack: ARMv6 assembler for mpc_decoder_windowing_D, speeds up decoding 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-05 11:20:50 +00:00
Andree Buschmann
c355122cce
Minor optimization of mpc codec via moving dewindowing asm to icode section for S5L870x.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28454 a1c6a512-1295-4272-9138-f99709370657
2010-11-02 21:13:39 +00:00
Andree Buschmann
560d89130f
Using icode attribute for S5L870x is faster on some codecs. Speed up for mpc is ~3%, for aac ~1%.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28453 a1c6a512-1295-4272-9138-f99709370657
2010-11-02 21:06:20 +00:00
Andree Buschmann
48bb3d00db
Optimize mpc's synthesis filter by reducing stalls for arm9 and above. Speed 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-02 21:00:34 +00:00
Nils Wallménius
0e5cd90f46
Fix typo from r28026 causing warnings on newer gcc.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28439 a1c6a512-1295-4272-9138-f99709370657
2010-11-01 21:37:57 +00:00
Andree Buschmann
5245c9254a
Fix FS#11710. On Coldfire CPU's mpc uses a speed optimization which was not correctly re-initialized when rebuffering.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28437 a1c6a512-1295-4272-9138-f99709370657
2010-11-01 20:43:17 +00:00
Nils Wallménius
dfac9503eb
libtremor: tweak a hot function for codebook decoding, mostly moving pointer 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-31 14:48:40 +00:00
Nils Wallménius
78b2711e58
libtremor: introduce asm optimized version of the channel_couple function 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-31 08:19:19 +00:00
Nils Wallménius
c1bfe4eb62
libtremor: tiny optimization 0.5%-1.5% on coldfire and PP
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28285 a1c6a512-1295-4272-9138-f99709370657
2010-10-16 09:58:21 +00:00
Dave Hooper
a5b17b4511
Rearrange and remove some manual register assignments, make use of pointer 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-12 23:29:17 +00:00
Frank Gevaerts
e94eea9538
Invalidate the CPU cache after clearing bss, to make sure that bss variables 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-10 20:49:21 +00:00
Thomas Martitz
bf301fdbb6
Fix a few div0 cases forgotten in r27684 to enable enabling asm optimizations for android builds.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28235 a1c6a512-1295-4272-9138-f99709370657
2010-10-10 14:43:40 +00:00
Andree Buschmann
27122e4cc9
Fix FS#11650. Correct sliencing of subband in mpc decoder. Thanks to Leo Witt for reporting and supporting.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28200 a1c6a512-1295-4272-9138-f99709370657
2010-10-02 23:02:36 +00:00
Andree Buschmann
2ddcd7fd94
Optimization of mpc's buffering routines through using the maximum possible buffer size. This reduces read access calls.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28198 a1c6a512-1295-4272-9138-f99709370657
2010-10-02 17:52:12 +00:00
Andree Buschmann
32838e96d0
Finally fix FS#11476 (data abort when playing some sv8 mpc files on lowmem 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
2010-10-02 17:43:36 +00:00
Nils Wallménius
5b2d7e23a0
ARMv6 supports unaligned memory accesses and they are enabled on our only ARMv6 target so we might as well use them. Speeds up decoding of a flac8 file by 3.5%.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28183 a1c6a512-1295-4272-9138-f99709370657
2010-09-29 13:20:03 +00:00
Michael Giacomelli
cc6ef19dd9
Remove some unused variables.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28118 a1c6a512-1295-4272-9138-f99709370657
2010-09-19 22:09:11 +00:00
Rafaël Carré
f8d1509a95
flac: more detailed debug message
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28087 a1c6a512-1295-4272-9138-f99709370657
2010-09-15 07:44:03 +00:00
Andree Buschmann
24d8e8ef1a
Minor macro redefinition in libfaad to avoid FIXED_POINT ifdef'ing.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28085 a1c6a512-1295-4272-9138-f99709370657
2010-09-14 20:40:56 +00:00
Andree Buschmann
9fb54ae32b
More unification of FIXED_POINT and FLOAT. Small refactoring.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28084 a1c6a512-1295-4272-9138-f99709370657
2010-09-14 20:26:01 +00:00
Andree Buschmann
82c143c4e1
Also correct autocorrelation for yet undefined SBR_LOW_POWER. Unify FIXED_POINT and FLOAT implementation.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28083 a1c6a512-1295-4272-9138-f99709370657
2010-09-14 19:53:13 +00:00
Andree Buschmann
c8da311de4
Fix scaling error that was introduced with r28069. With this fix the level of the hf-spectrum will be correct when decoding aac-he files.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28081 a1c6a512-1295-4272-9138-f99709370657
2010-09-14 19:31:00 +00:00
Andree Buschmann
e98ee2d696
Correct comment.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28080 a1c6a512-1295-4272-9138-f99709370657
2010-09-14 19:17:21 +00:00
Andree Buschmann
b543a2a5d2
Correct autocorrelation function in libfaad. It used the wrong fract part for the multiplication macros. Introduce appropriate solution to avoid overflow.
...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28079 a1c6a512-1295-4272-9138-f99709370657
2010-09-14 19:05:09 +00:00