Commit graph

91 commits

Author SHA1 Message Date
Andree Buschmann
03e23d1113 Implement error handling for libfaad's memory allocation. Do not allocate PS related types dynamically anymore to minimize code changes.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29854 a1c6a512-1295-4272-9138-f99709370657
2011-05-10 19:04:24 +00:00
Andree Buschmann
f79769c541 Minor loop optimization in libfaad's is/ms decoding.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29837 a1c6a512-1295-4272-9138-f99709370657
2011-05-08 19:36:08 +00:00
Andree Buschmann
dcf0f8de4a Submit FS#12081. Check validity of channel configuration, comment unneeded code that is too inflexible to work with MAX_CHANNELS = 2. Fixes compiler warnings with GCC 4.6.0.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29784 a1c6a512-1295-4272-9138-f99709370657
2011-04-26 21:30:51 +00:00
Andree Buschmann
a602f46d69 Rework of libfaad in several areas. Allow removal of malloc with a new define FAAD_STATIC_ALLOC (in common.h). For now malloc is not fully removed but used by a few arrays needed for AAC-HE SBR+PS only. Reason to keep malloc is to have this amount of memory available for AAC-LC files which might require large m4a tables. The changes make the allocation routines much smaller, better centralized and allow to move duplicated code from aac.c/raa.c to libfaad. The rework includes removal of (now and former) unused code as well.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29778 a1c6a512-1295-4272-9138-f99709370657
2011-04-24 20:19:05 +00:00
Andree Buschmann
15e9053afb Clean up array sizes in the SBR + PS part of libfaad. Add MAX_NTSRPS (=38), use MAX_NTSR and MAX_NTSRHFG at the right places. RAM (IRAM) usage is reduced by 2 KB.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29773 a1c6a512-1295-4272-9138-f99709370657
2011-04-24 13:54:02 +00:00
Andree Buschmann
e9c5190de7 Headroom in AAC SBR HF-generator's fixed point implementation of autocorrelation was too small. Fixes FS#12019.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29622 a1c6a512-1295-4272-9138-f99709370657
2011-03-20 15:57:38 +00:00
Andree Buschmann
ae019419ff Use the very large IRAM of S5L870x to speed up AAC-HE by ~1-5%.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29212 a1c6a512-1295-4272-9138-f99709370657
2011-02-05 20:22:12 +00:00
Andree Buschmann
8033cb6250 Use MEM_ALIGN_ATTR in libfaad. Remove global array and re-use existing one.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29211 a1c6a512-1295-4272-9138-f99709370657
2011-02-05 19:50:16 +00:00
Andree Buschmann
8b540fa9d9 Speed up AAC-HE SBR by 2% on S5L8701. Use MEM_ALIGN on critical arrays and avoid stalls in asm code.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29209 a1c6a512-1295-4272-9138-f99709370657
2011-02-05 14:29:47 +00:00
Nils Wallménius
c8535f27d1 Switch coldfire builds over to new toolchain using gcc 4.5.2 and binutils 2.20.1
Retune codec compiler optimizations with new compiler. Overall speedup with aac and flac getting big speedups.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29042 a1c6a512-1295-4272-9138-f99709370657
2011-01-12 22:28:43 +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
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
Andree Buschmann
cba9d259b0 Further libfaad cleanup. Make libfaad compilable for floating point. Floating point cannot be used as reference though, as errorous noise is the result.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28071 a1c6a512-1295-4272-9138-f99709370657
2010-09-14 06:03:39 +00:00
Andree Buschmann
f24e130017 Further libfaad cleanup.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28070 a1c6a512-1295-4272-9138-f99709370657
2010-09-13 21:23:32 +00:00
Andree Buschmann
ddb936a0c5 Clean up libfaad's fixed point implementation.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28069 a1c6a512-1295-4272-9138-f99709370657
2010-09-13 20:57:22 +00:00
Andree Buschmann
7def0f5cbd Restore libfaad's IRAM configuration.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27942 a1c6a512-1295-4272-9138-f99709370657
2010-08-29 19:27:11 +00:00
Andree Buschmann
cdca5efce9 Fix FS#11539. Undo r23967 and use another way to achieve results for negative exponents for pow(2,x). This solves heavy distortions on some aac encoded files and clicks/noise on track change.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27941 a1c6a512-1295-4272-9138-f99709370657
2010-08-29 19:03:05 +00:00
Andree Buschmann
9fc1f55a0f Fix residual aac-he distortion reported via forum. Bug was introduded with r27364.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27898 a1c6a512-1295-4272-9138-f99709370657
2010-08-26 20:37:46 +00:00
Andree Buschmann
20de4c55a2 Fix libfaad error that was introduced with r27225. Noise bursts during playback of several files were reported in the forums.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27868 a1c6a512-1295-4272-9138-f99709370657
2010-08-23 23:14:32 +00:00
Rafaël Carré
29b2a049de faad: move inline function in header
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27683 a1c6a512-1295-4272-9138-f99709370657
2010-08-03 17:59:59 +00:00
Andree Buschmann
c9a4fb0d0d Clean up libfaad's sbr-qmf code. Move array to correct #ifdef-path, introduce macro, beautify indentations.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27394 a1c6a512-1295-4272-9138-f99709370657
2010-07-11 22:02:06 +00:00
Andree Buschmann
fe61885e48 Minor correction to macros, beautification of loop.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27391 a1c6a512-1295-4272-9138-f99709370657
2010-07-11 18:41:41 +00:00
Andree Buschmann
cef3681bae Further changes to aac-he decoding. Refactor and rearrange dct tabs to be able to use consecutive addresses (this allows additional optimization for ARM through ldm-usage). Define a macro for identical butterfly operations and exchange 2 butterflyies with less compex operations.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27384 a1c6a512-1295-4272-9138-f99709370657
2010-07-11 14:40:05 +00:00
Jens Arnold
911ed00171 Revert accidental change.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27382 a1c6a512-1295-4272-9138-f99709370657
2010-07-11 13:58:02 +00:00
Jens Arnold
12857cedfa EMACify HE-AAC QMF on coldfire: 5% speedup on MCF5249.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27381 a1c6a512-1295-4272-9138-f99709370657
2010-07-11 13:44:41 +00:00
Andree Buschmann
6cf66eb08c Refacture parts of libfaad filterbank. Faster windowing for 8-short-window sequences.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27380 a1c6a512-1295-4272-9138-f99709370657
2010-07-11 12:33:35 +00:00
Andree Buschmann
2f271ac54a Just another MHz saved on ARM for aac he decoding.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27365 a1c6a512-1295-4272-9138-f99709370657
2010-07-10 00:11:39 +00:00
Andree Buschmann
e7ffe1cd4a More work on libfaad's aac he decoder. Resort table to allow more efficient load access.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27364 a1c6a512-1295-4272-9138-f99709370657
2010-07-09 21:42:21 +00:00
Rafaël Carré
ae79b67956 Revert r27359
The ipod4g has enough free IRAM when built with gcc 4.4 eabi

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27362 a1c6a512-1295-4272-9138-f99709370657
2010-07-09 19:58:55 +00:00
Andree Buschmann
c6898a0d55 Fix red. Remove a small array from IRAM that is not critical to performance.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27359 a1c6a512-1295-4272-9138-f99709370657
2010-07-09 18:49:33 +00:00
Andree Buschmann
811af5968a Submit FS#11461. Major speedup for aac he profile (PP5002 +20%, PP5020 +15%, PP5022 +19%, MCF5249 +35%, MCF5250 +80%), still not realtime on most targets though. This change does a lot of refactoring in the sbr filters and the dct, switching to our optimized codeclib fft and tweaking IRAM usage.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27358 a1c6a512-1295-4272-9138-f99709370657
2010-07-09 18:32:37 +00:00
Andree Buschmann
91d6fa7e1b Remove unneeded libfaad files from SOURCE.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27320 a1c6a512-1295-4272-9138-f99709370657
2010-07-06 19:23:13 +00:00
Andree Buschmann
4158192975 Submit FS#11450. Change compile option for libfaad to -O2 for ARM target and -O1 for other CPUs. This speeds up decoding by 1-5%.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27297 a1c6a512-1295-4272-9138-f99709370657
2010-07-05 19:29:09 +00:00
Andree Buschmann
5633ece5a8 Remove false comment.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27228 a1c6a512-1295-4272-9138-f99709370657
2010-07-01 22:32:46 +00:00
Andree Buschmann
c794c1feae Fix red and yellow. Needed to remove one codebook from IRAM due to full IRAM on iPod4G.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27226 a1c6a512-1295-4272-9138-f99709370657
2010-07-01 21:39:55 +00:00
Andree Buschmann
52f17dfe9d Submit FS#11445. Speed up of faad (aac) decoder via several optimizations like refactoring some requantization routines, moving several arrays and code tables to IRAM, using an optimized swap32() function and inlining several huffman decoder functions. Decoding is sped up by ~10% (PP5002, PP5022, MCF5249) and ~22% (MCF5250).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27225 a1c6a512-1295-4272-9138-f99709370657
2010-07-01 21:18:42 +00:00
Thomas Martitz
50a6ca39ad Move c/h files implementing/defining standard library stuff into a new libc directory, also standard'ify some parts of the code base (almost entirely #include fixes).
This is to a) to cleanup firmware/common and firmware/include a bit, but also b) for Rockbox as an application which should use the host system's c library and headers, separating makes it easy to exclude our files from the build.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25850 a1c6a512-1295-4272-9138-f99709370657
2010-05-06 21:04:40 +00:00
Andree Buschmann
398b37124e Remove all tabs within codec path.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24862 a1c6a512-1295-4272-9138-f99709370657
2010-02-22 19:44:05 +00:00
Michael Giacomelli
93caf52db5 Use new MDCT library for libfaad. Speeds up AAC-LC by 2.5MHz.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24781 a1c6a512-1295-4272-9138-f99709370657
2010-02-20 00:29:31 +00:00
Andrew Mahone
5783bef32c Fix red, DESCALE_SHIFT macro was missing a right-parenthesis.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23968 a1c6a512-1295-4272-9138-f99709370657
2009-12-13 04:06:45 +00:00
Andrew Mahone
af5bad46d8 Libfaad pow2/log2 improvements:
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-13 03:45:40 +00:00
Andrew Mahone
85aad9b397 Extend av_log2 in codeclib into a generic for scanning for set bits, which 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-09 02:24:45 +00:00
Michael Giacomelli
0a1baa36b1 Fix FS#10174 by correcting an oversimplification of the AAC window switching code I introduced with the unified IMDCT library. Should significantly improve accuracy for all AAC files.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20821 a1c6a512-1295-4272-9138-f99709370657
2009-04-29 17:44:02 +00:00
Michael Giacomelli
f5884fdeb6 Disable AAC-SBR, AAC-SSR, and AAC-PS on Sansa clip. Clean up warnings introduced by this. Enable compiling the AAC codec on the Clip. Due to lack of memory for seek tables, files over 10 minutes long or so will probably fail.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20781 a1c6a512-1295-4272-9138-f99709370657
2009-04-25 03:51:58 +00:00
Jens Arnold
6421f94c0d Silence warning from 'ar' if the archive had to be created.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20151 a1c6a512-1295-4272-9138-f99709370657
2009-03-01 09:04:15 +00:00