Commit graph

66 commits

Author SHA1 Message Date
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
Daniel Stenberg
2e6d604bb6 Stop hiding errors by redirecting stderr to /dev/null. If we really need to do re-introduce somewhere we should rather make it dependent on the V variable so that make V=1 would still show the error and only "normal" builds would hide it.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20090 a1c6a512-1295-4272-9138-f99709370657
2009-02-23 08:45:16 +00:00
Bertrik Sikken
8e22f7f5b0 Make local functions static in codecs, where possible.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19612 a1c6a512-1295-4272-9138-f99709370657
2008-12-29 19:49:48 +00:00
Björn Stenberg
a091d20ba0 Added 'keywords' and 'eol-style' properties.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19218 a1c6a512-1295-4272-9138-f99709370657
2008-11-25 19:54:23 +00:00
Björn Stenberg
303b455ceb Remove .a files before running ar, to avoid problems with renamed files remaining in the library.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19160 a1c6a512-1295-4272-9138-f99709370657
2008-11-20 16:49:55 +00:00
Björn Stenberg
c6b3d38a15 New makefile solution: A single invocation of 'make' to build the entire tree. Fully controlled dependencies give faster and more correct recompiles.
Many #include lines adjusted to conform to the new standards.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19146 a1c6a512-1295-4272-9138-f99709370657
2008-11-20 11:27:31 +00:00
Michael Giacomelli
46f85c4c54 Combine the Vorbis, WMA and AAC IMDCT functions and put them into the codeclib. Combined IMDCT is now based on existing Tremor transform. Reduces CPU for 192k AAC by 21MHz on Coldfire, and 5MHz on PP5024. WMA and Vorbis should have no functional changes since they already used this code. Further optimization is possible and would benefit all 3 codecs.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18412 a1c6a512-1295-4272-9138-f99709370657
2008-09-04 18:02:10 +00:00
Michael Giacomelli
54903eb7fa Use WMA windowing optimizations for AAC. Saves about 3.5MHz on Coldfire, and about 2 MHz on ARM. Thanks to amiconn for help with Coldfire ASM improvements. Next step: dump faad IMDCT.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18238 a1c6a512-1295-4272-9138-f99709370657
2008-08-10 20:19:38 +00:00
Michael Giacomelli
b9eb18260f Too much on the last commit.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18085 a1c6a512-1295-4272-9138-f99709370657
2008-07-17 18:36:47 +00:00
Michael Giacomelli
1334738071 Use Tremor IMDCT for WMA. Gives a ~20% speedup on ARM and coldfire. All my test samples gave equivilent or better accuracy (>>16 bit), but there may still be problems. Code becomes somewhat less readable since the IMDCT has bits of Vorbis in it, but this is not a serious issue and the old ffmpeg transform remains in SVN if anyone wants it. Also, WMA now passes Vorbis as the fastest transform codec on ARM, although MPC remains the fastest lossy codec overall.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18084 a1c6a512-1295-4272-9138-f99709370657
2008-07-17 17:43:49 +00:00
Nils Wallménius
999d3e89a8 Put pointer arrays in the correct iram section, tiny const police to make it possible too
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17677 a1c6a512-1295-4272-9138-f99709370657
2008-06-02 17:56:37 +00:00
Nicolas Pennequin
367aec35d7 Fix a couple quirks from the previous commit.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17370 a1c6a512-1295-4272-9138-f99709370657
2008-05-05 10:49:31 +00:00
Nicolas Pennequin
357ffb3c46 Convert the whole codebase to UTF-8, except docs/COMMITTERS and tools/creative.c, which need checking.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17369 a1c6a512-1295-4272-9138-f99709370657
2008-05-05 10:32:46 +00:00
Magnus Holmgren
ae00bd69d6 AAC decoder: Remove suspicious use of the REAL_CONST macro. I don't know what triggers the execution of this code, but this change stops some floating point math code from being linked. It looks like the right thing to do...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16590 a1c6a512-1295-4272-9138-f99709370657
2008-03-09 12:36:30 +00:00
Jens Arnold
99db6dbafe Revert the buggy warning fix for gcc 4.2. It caused a sim built with gcc 4.2 to segfault. Get rid of the warning by introducing a temporary variable instead. Obviously the cfft1(pos|neg)() call is too complex for gcc 4.2 to cope without that tempvar. Oh well...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16292 a1c6a512-1295-4272-9138-f99709370657
2008-02-12 19:57:26 +00:00
Daniel Stenberg
1456415cab make the gcc work-around somewhat more inclusive for gcc 4.2.X where X is 1
or bigger


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16238 a1c6a512-1295-4272-9138-f99709370657
2008-02-07 00:02:41 +00:00
Daniel Stenberg
5c0cf6ef2c a rather lame attempt to silence the gcc 4.2.3 warnings on what seems to be
legitimate code


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16237 a1c6a512-1295-4272-9138-f99709370657
2008-02-06 23:51:54 +00:00
Dan Everton
19f487b451 Revert previous 'fix'. Did not actually fix the warning as I wasn't paying attention.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15899 a1c6a512-1295-4272-9138-f99709370657
2007-12-09 03:54:12 +00:00
Dan Everton
147980e1e5 Fix warnings in libfaad
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15898 a1c6a512-1295-4272-9138-f99709370657
2007-12-09 03:40:40 +00:00
Magnus Holmgren
8fadf6bbe0 Fix playback of HE-AACv2 (aka SBR+PS) files.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14807 a1c6a512-1295-4272-9138-f99709370657
2007-09-21 17:39:24 +00:00
Dave Chapman
f02cba8096 Code cleaning - remove some unnecessary defined(SIMULATOR) checks
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13369 a1c6a512-1295-4272-9138-f99709370657
2007-05-10 13:16:08 +00:00
Daniel Stenberg
20a5926d2e build with -Wundef to make sure we have spelled the defines right in #if lines
and have the proper includes included etc


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12360 a1c6a512-1295-4272-9138-f99709370657
2007-02-17 21:54:17 +00:00
Jens Arnold
a796260a6b Next step of Makefile tuning: * Use 'make' internal commands for printing messages. Saves build time especially on cygwin. * SILENT variable used in more places. * Bitmap build system uses one Makefille less.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11369 a1c6a512-1295-4272-9138-f99709370657
2006-10-27 21:48:06 +00:00
Jens Arnold
d1ce4e779e Consistent style of 'make' messages. Always use ranlib after ar.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11322 a1c6a512-1295-4272-9138-f99709370657
2006-10-23 22:33:39 +00:00
Magnus Holmgren
38168222ae AAC codec: Fix buffer overrun on high-bitrate files.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11179 a1c6a512-1295-4272-9138-f99709370657
2006-10-10 19:22:40 +00:00
Magnus Holmgren
db3b70c748 AAC codec: Reduce IRAM usage slightly, to fix the profile builds (on Coldfire).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11102 a1c6a512-1295-4272-9138-f99709370657
2006-10-01 15:39:23 +00:00