forked from len0rd/rockbox
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
This commit is contained in:
parent
5e182e0862
commit
7197c0e588
3 changed files with 13 additions and 9 deletions
|
|
@ -124,8 +124,8 @@ typedef struct mpc_decoder_t {
|
||||||
|
|
||||||
MPC_SAMPLE_FORMAT V_L[MPC_V_MEM + 960];
|
MPC_SAMPLE_FORMAT V_L[MPC_V_MEM + 960];
|
||||||
MPC_SAMPLE_FORMAT V_R[MPC_V_MEM + 960];
|
MPC_SAMPLE_FORMAT V_R[MPC_V_MEM + 960];
|
||||||
MPC_SAMPLE_FORMAT Y_L[36][32];
|
MPC_SAMPLE_FORMAT (*Y_L)[32];
|
||||||
MPC_SAMPLE_FORMAT Y_R[36][32];
|
MPC_SAMPLE_FORMAT (*Y_R)[32];
|
||||||
MPC_SAMPLE_FORMAT SCF[256]; ///< holds adapted scalefactors (for clipping prevention)
|
MPC_SAMPLE_FORMAT SCF[256]; ///< holds adapted scalefactors (for clipping prevention)
|
||||||
//@}
|
//@}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -121,6 +121,8 @@ static inline mpc_int32_t mpc_decoder_huffman_decode_fastest(mpc_decoder *d, con
|
||||||
static void mpc_move_next(mpc_decoder *d);
|
static void mpc_move_next(mpc_decoder *d);
|
||||||
|
|
||||||
mpc_uint32_t Speicher[MPC_DECODER_MEMSIZE];
|
mpc_uint32_t Speicher[MPC_DECODER_MEMSIZE];
|
||||||
|
MPC_SAMPLE_FORMAT Y_L[36][32];
|
||||||
|
MPC_SAMPLE_FORMAT Y_R[36][32];
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// utility functions
|
// utility functions
|
||||||
|
|
@ -380,8 +382,8 @@ mpc_decoder_reset_synthesis(mpc_decoder *d)
|
||||||
static void
|
static void
|
||||||
mpc_decoder_reset_y(mpc_decoder *d)
|
mpc_decoder_reset_y(mpc_decoder *d)
|
||||||
{
|
{
|
||||||
memset(d->Y_L, 0, sizeof d->Y_L);
|
memset(d->Y_L, 0, sizeof Y_L);
|
||||||
memset(d->Y_R, 0, sizeof d->Y_R);
|
memset(d->Y_R, 0, sizeof Y_R);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
@ -395,8 +397,8 @@ mpc_decoder_reset_globals(mpc_decoder *d)
|
||||||
d->StreamVersion = 0;
|
d->StreamVersion = 0;
|
||||||
d->MS_used = 0;
|
d->MS_used = 0;
|
||||||
|
|
||||||
memset(d->Y_L , 0, sizeof d->Y_L );
|
memset(d->Y_L , 0, sizeof Y_L );
|
||||||
memset(d->Y_R , 0, sizeof d->Y_R );
|
memset(d->Y_R , 0, sizeof Y_R );
|
||||||
memset(d->SCF_Index_L , 0, sizeof d->SCF_Index_L );
|
memset(d->SCF_Index_L , 0, sizeof d->SCF_Index_L );
|
||||||
memset(d->SCF_Index_R , 0, sizeof d->SCF_Index_R );
|
memset(d->SCF_Index_R , 0, sizeof d->SCF_Index_R );
|
||||||
memset(d->Res_L , 0, sizeof d->Res_L );
|
memset(d->Res_L , 0, sizeof d->Res_L );
|
||||||
|
|
@ -1487,6 +1489,8 @@ void mpc_decoder_setup(mpc_decoder *d, mpc_reader *r)
|
||||||
LOOKUP ( mpc_table_HuffDSCF, 16, LUTDSCF );
|
LOOKUP ( mpc_table_HuffDSCF, 16, LUTDSCF );
|
||||||
|
|
||||||
d->Speicher = Speicher;
|
d->Speicher = Speicher;
|
||||||
|
d->Y_L = Y_L;
|
||||||
|
d->Y_R = Y_R;
|
||||||
|
|
||||||
#if defined(CPU_COLDFIRE)&& !defined(SIMULATOR)
|
#if defined(CPU_COLDFIRE)&& !defined(SIMULATOR)
|
||||||
coldfire_set_macsr(EMAC_FRACTIONAL | EMAC_SATURATE);
|
coldfire_set_macsr(EMAC_FRACTIONAL | EMAC_SATURATE);
|
||||||
|
|
@ -1642,8 +1646,8 @@ mpc_bool_t mpc_decoder_seek_seconds(mpc_decoder *d, double seconds)
|
||||||
|
|
||||||
void mpc_decoder_reset_state(mpc_decoder *d) {
|
void mpc_decoder_reset_state(mpc_decoder *d) {
|
||||||
|
|
||||||
memset(d->Y_L , 0, sizeof d->Y_L );
|
memset(d->Y_L , 0, sizeof Y_L );
|
||||||
memset(d->Y_R , 0, sizeof d->Y_R );
|
memset(d->Y_R , 0, sizeof Y_R );
|
||||||
#ifdef SCF_HACK
|
#ifdef SCF_HACK
|
||||||
memset(d->SCF_Index_L , -128, sizeof d->SCF_Index_L );
|
memset(d->SCF_Index_L , -128, sizeof d->SCF_Index_L );
|
||||||
memset(d->SCF_Index_R , -128, sizeof d->SCF_Index_R );
|
memset(d->SCF_Index_R , -128, sizeof d->SCF_Index_R );
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,7 @@ mpc_bool_t canseek_impl(void *data)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
MPC_SAMPLE_FORMAT sample_buffer[MPC_DECODER_BUFFER_LENGTH];
|
MPC_SAMPLE_FORMAT sample_buffer[MPC_DECODER_BUFFER_LENGTH] IBSS_ATTR;
|
||||||
mpc_uint32_t seek_table[10000];
|
mpc_uint32_t seek_table[10000];
|
||||||
|
|
||||||
#ifdef USE_IRAM
|
#ifdef USE_IRAM
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue