diff options
| author | Jens Arnold <amiconn@rockbox.org> | 2007-10-18 22:37:33 +0000 |
|---|---|---|
| committer | Jens Arnold <amiconn@rockbox.org> | 2007-10-18 22:37:33 +0000 |
| commit | 2640bdb262d07bf910a6ff614834d73713bdf4a4 (patch) | |
| tree | b42bb69edb6410f91f2e30a2f29d838b17b56e57 /apps/codecs/demac/libdemac/decoder.c | |
| parent | 4a19ce39f8205f025b38dbc4297d591d033c8c2a (diff) | |
| download | rockbox-2640bdb262d07bf910a6ff614834d73713bdf4a4.zip rockbox-2640bdb262d07bf910a6ff614834d73713bdf4a4.tar.gz rockbox-2640bdb262d07bf910a6ff614834d73713bdf4a4.tar.bz2 rockbox-2640bdb262d07bf910a6ff614834d73713bdf4a4.tar.xz | |
APE codec: Assembler optimised vector math routines for coldfire. -c2000 is now usable at 130% realtime (was 107%), -c3000 is near realtime (93%, was 64%). -c1000 doesn't change.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15194 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs/demac/libdemac/decoder.c')
| -rw-r--r-- | apps/codecs/demac/libdemac/decoder.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/apps/codecs/demac/libdemac/decoder.c b/apps/codecs/demac/libdemac/decoder.c index 4f4a583..326e893 100644 --- a/apps/codecs/demac/libdemac/decoder.c +++ b/apps/codecs/demac/libdemac/decoder.c @@ -32,12 +32,15 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA /* Statically allocate the filter buffers */ -static int16_t filterbuf32[(32*3 + HISTORY_SIZE) * 2] IBSS_ATTR; /* 4480 bytes */ -static int16_t filterbuf256[(256*3 + HISTORY_SIZE) * 2] IBSS_ATTR; /* 5120 bytes */ +static int16_t filterbuf32[(32*3 + HISTORY_SIZE) * 2] /* 4480 bytes */ + IBSS_ATTR __attribute__((aligned(16))); +static int16_t filterbuf256[(256*3 + HISTORY_SIZE) * 2] /* 5120 bytes */ + IBSS_ATTR __attribute__((aligned(16))); /* This is only needed for "insane" files, and no Rockbox targets can hope to decode them in realtime anyway. */ -static int16_t filterbuf1280[(1280*3 + HISTORY_SIZE) * 2]; /* 17408 bytes */ +static int16_t filterbuf1280[(1280*3 + HISTORY_SIZE) * 2] /* 17408 bytes */ + __attribute__((aligned(16))); void init_frame_decoder(struct ape_ctx_t* ape_ctx, unsigned char* inbuffer, int* firstbyte, @@ -163,7 +166,7 @@ int decode_chunk(struct ape_ctx_t* ape_ctx, } /* Now apply the predictor decoding */ - predictor_decode_stereo(&ape_ctx->predictor,decoded0,decoded1,count); + predictor_decode_stereo(&ape_ctx->predictor,decoded0,decoded1,count); if (ape_ctx->bps == 8) { /* TODO: Handle 8-bit streams */ |