summaryrefslogtreecommitdiff
path: root/apps/codecs/libfaad/bits.c
diff options
context:
space:
mode:
authorAndree Buschmann <AndreeBuschmann@t-online.de>2010-07-01 21:18:42 +0000
committerAndree Buschmann <AndreeBuschmann@t-online.de>2010-07-01 21:18:42 +0000
commit52f17dfe9d5221fdc83b2c5d719fe701dce46f24 (patch)
tree6fdecfc1e9560e2566214bc8336b401df02663bc /apps/codecs/libfaad/bits.c
parentb013fb76c464b5125026b4d6c95c49a046d0924c (diff)
downloadrockbox-52f17dfe9d5221fdc83b2c5d719fe701dce46f24.tar.gz
rockbox-52f17dfe9d5221fdc83b2c5d719fe701dce46f24.zip
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
Diffstat (limited to 'apps/codecs/libfaad/bits.c')
-rw-r--r--apps/codecs/libfaad/bits.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/apps/codecs/libfaad/bits.c b/apps/codecs/libfaad/bits.c
index a010e830ed..f1a36235bd 100644
--- a/apps/codecs/libfaad/bits.c
+++ b/apps/codecs/libfaad/bits.c
@@ -33,9 +33,10 @@
33#include "bits.h" 33#include "bits.h"
34 34
35/* Need to be large enough to fit the largest compressed sample in a file. 35/* Need to be large enough to fit the largest compressed sample in a file.
36 * Samples a little larger than 1 KB observed in a 256 kbps file. 36 * Samples were observed to need up to 1500 bytes (400 kbps nero aac).
37 */ 37 */
38uint8_t static_buffer[2048]; 38#define BUFFER_SIZE 2048
39uint8_t static_buffer[BUFFER_SIZE] IBSS_ATTR;
39 40
40/* initialize buffer, call once before first getbits or showbits */ 41/* initialize buffer, call once before first getbits or showbits */
41void faad_initbits(bitfile *ld, const void *_buffer, const uint32_t buffer_size) 42void faad_initbits(bitfile *ld, const void *_buffer, const uint32_t buffer_size)
@@ -47,7 +48,7 @@ void faad_initbits(bitfile *ld, const void *_buffer, const uint32_t buffer_size)
47 48
48 memset(ld, 0, sizeof(bitfile)); 49 memset(ld, 0, sizeof(bitfile));
49 50
50 if (buffer_size == 0 || _buffer == NULL) 51 if (buffer_size == 0 || _buffer == NULL || (buffer_size+12)>BUFFER_SIZE)
51 { 52 {
52 ld->error = 1; 53 ld->error = 1;
53 ld->no_more_reading = 1; 54 ld->no_more_reading = 1;