summaryrefslogtreecommitdiff
path: root/apps/codecs/libmusepack/mpc_decoder.c
diff options
context:
space:
mode:
authorThom Johansen <thomj@rockbox.org>2006-09-01 12:09:20 +0000
committerThom Johansen <thomj@rockbox.org>2006-09-01 12:09:20 +0000
commit7197c0e588bef139327772e96c2ac74bf6540208 (patch)
tree8e3c39bb93e00b4e7e37bc035e3174634dd5e8a8 /apps/codecs/libmusepack/mpc_decoder.c
parent5e182e08620fd5aa7743bf83d759f6847cd76b45 (diff)
downloadrockbox-7197c0e588bef139327772e96c2ac74bf6540208.tar.gz
rockbox-7197c0e588bef139327772e96c2ac74bf6540208.zip
Put Musepack output data array back in IRAM for faster DSP processing. Patch by Andrew Cupper.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10844 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs/libmusepack/mpc_decoder.c')
-rw-r--r--apps/codecs/libmusepack/mpc_decoder.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/apps/codecs/libmusepack/mpc_decoder.c b/apps/codecs/libmusepack/mpc_decoder.c
index 4bf36bddc6..89d7254356 100644
--- a/apps/codecs/libmusepack/mpc_decoder.c
+++ b/apps/codecs/libmusepack/mpc_decoder.c
@@ -121,6 +121,8 @@ static inline mpc_int32_t mpc_decoder_huffman_decode_fastest(mpc_decoder *d, con
121static void mpc_move_next(mpc_decoder *d); 121static void mpc_move_next(mpc_decoder *d);
122 122
123mpc_uint32_t Speicher[MPC_DECODER_MEMSIZE]; 123mpc_uint32_t Speicher[MPC_DECODER_MEMSIZE];
124MPC_SAMPLE_FORMAT Y_L[36][32];
125MPC_SAMPLE_FORMAT Y_R[36][32];
124 126
125//------------------------------------------------------------------------------ 127//------------------------------------------------------------------------------
126// utility functions 128// utility functions
@@ -380,8 +382,8 @@ mpc_decoder_reset_synthesis(mpc_decoder *d)
380static void 382static void
381mpc_decoder_reset_y(mpc_decoder *d) 383mpc_decoder_reset_y(mpc_decoder *d)
382{ 384{
383 memset(d->Y_L, 0, sizeof d->Y_L); 385 memset(d->Y_L, 0, sizeof Y_L);
384 memset(d->Y_R, 0, sizeof d->Y_R); 386 memset(d->Y_R, 0, sizeof Y_R);
385} 387}
386 388
387static void 389static void
@@ -395,8 +397,8 @@ mpc_decoder_reset_globals(mpc_decoder *d)
395 d->StreamVersion = 0; 397 d->StreamVersion = 0;
396 d->MS_used = 0; 398 d->MS_used = 0;
397 399
398 memset(d->Y_L , 0, sizeof d->Y_L ); 400 memset(d->Y_L , 0, sizeof Y_L );
399 memset(d->Y_R , 0, sizeof d->Y_R ); 401 memset(d->Y_R , 0, sizeof Y_R );
400 memset(d->SCF_Index_L , 0, sizeof d->SCF_Index_L ); 402 memset(d->SCF_Index_L , 0, sizeof d->SCF_Index_L );
401 memset(d->SCF_Index_R , 0, sizeof d->SCF_Index_R ); 403 memset(d->SCF_Index_R , 0, sizeof d->SCF_Index_R );
402 memset(d->Res_L , 0, sizeof d->Res_L ); 404 memset(d->Res_L , 0, sizeof d->Res_L );
@@ -1487,6 +1489,8 @@ void mpc_decoder_setup(mpc_decoder *d, mpc_reader *r)
1487 LOOKUP ( mpc_table_HuffDSCF, 16, LUTDSCF ); 1489 LOOKUP ( mpc_table_HuffDSCF, 16, LUTDSCF );
1488 1490
1489 d->Speicher = Speicher; 1491 d->Speicher = Speicher;
1492 d->Y_L = Y_L;
1493 d->Y_R = Y_R;
1490 1494
1491 #if defined(CPU_COLDFIRE)&& !defined(SIMULATOR) 1495 #if defined(CPU_COLDFIRE)&& !defined(SIMULATOR)
1492 coldfire_set_macsr(EMAC_FRACTIONAL | EMAC_SATURATE); 1496 coldfire_set_macsr(EMAC_FRACTIONAL | EMAC_SATURATE);
@@ -1642,8 +1646,8 @@ mpc_bool_t mpc_decoder_seek_seconds(mpc_decoder *d, double seconds)
1642 1646
1643void mpc_decoder_reset_state(mpc_decoder *d) { 1647void mpc_decoder_reset_state(mpc_decoder *d) {
1644 1648
1645 memset(d->Y_L , 0, sizeof d->Y_L ); 1649 memset(d->Y_L , 0, sizeof Y_L );
1646 memset(d->Y_R , 0, sizeof d->Y_R ); 1650 memset(d->Y_R , 0, sizeof Y_R );
1647#ifdef SCF_HACK 1651#ifdef SCF_HACK
1648 memset(d->SCF_Index_L , -128, sizeof d->SCF_Index_L ); 1652 memset(d->SCF_Index_L , -128, sizeof d->SCF_Index_L );
1649 memset(d->SCF_Index_R , -128, sizeof d->SCF_Index_R ); 1653 memset(d->SCF_Index_R , -128, sizeof d->SCF_Index_R );