summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThom Johansen <thomj@rockbox.org>2006-02-13 19:24:36 +0000
committerThom Johansen <thomj@rockbox.org>2006-02-13 19:24:36 +0000
commit153f906d74eeff933a44fdf038b292d8d543e8f0 (patch)
tree488c120304caf2d8c25b7bdb57c9d8633f694bf8
parent65bfd83ce082cbd58b8bbbbb4bf3a5cbb2e60002 (diff)
downloadrockbox-153f906d74eeff933a44fdf038b292d8d543e8f0.tar.gz
rockbox-153f906d74eeff933a44fdf038b292d8d543e8f0.zip
Start converting codecs to use internal sample format (28 bits + sign,
or s3.28 fixed point). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8680 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/codecs/libmusepack/synth_filter.c3
-rw-r--r--apps/codecs/mpc.c10
2 files changed, 2 insertions, 11 deletions
diff --git a/apps/codecs/libmusepack/synth_filter.c b/apps/codecs/libmusepack/synth_filter.c
index 56bf65ea12..a2127f01c5 100644
--- a/apps/codecs/libmusepack/synth_filter.c
+++ b/apps/codecs/libmusepack/synth_filter.c
@@ -367,7 +367,6 @@ static void Synthese_Filter_float_internal(MPC_SAMPLE_FORMAT * OutData,MPC_SAMPL
"mac.l %%d2, %%a5, (992*4, %[V]), %%a5, %%acc0\n\t"
"mac.l %%d3, %%a5, %%acc0\n\t"
"movclr.l %%acc0, %%d0\n\t"
- "asl.l #1, %%d0\n\t"
"move.l %%d0, (%[Data])+\n"
: [Data] "+a" (Data)
: [V] "a" (V), [D] "a" (D)
@@ -378,7 +377,7 @@ static void Synthese_Filter_float_internal(MPC_SAMPLE_FORMAT * OutData,MPC_SAMPL
+ MPC_MULTIPLY_FRACT(V[256],D[ 4]) + MPC_MULTIPLY_FRACT(V[352],D[ 5]) + MPC_MULTIPLY_FRACT(V[384],D[ 6]) + MPC_MULTIPLY_FRACT(V[480],D[ 7])
+ MPC_MULTIPLY_FRACT(V[512],D[ 8]) + MPC_MULTIPLY_FRACT(V[608],D[ 9]) + MPC_MULTIPLY_FRACT(V[640],D[10]) + MPC_MULTIPLY_FRACT(V[736],D[11])
+ MPC_MULTIPLY_FRACT(V[768],D[12]) + MPC_MULTIPLY_FRACT(V[864],D[13]) + MPC_MULTIPLY_FRACT(V[896],D[14]) + MPC_MULTIPLY_FRACT(V[992],D[15])
- , 2);
+ , 1);
Data += 1;
#endif
diff --git a/apps/codecs/mpc.c b/apps/codecs/mpc.c
index 25071b9d5d..78d3e80644 100644
--- a/apps/codecs/mpc.c
+++ b/apps/codecs/mpc.c
@@ -92,15 +92,7 @@ enum codec_status codec_start(struct codec_api *api)
ci->configure(CODEC_DSP_ENABLE, (bool *)true);
ci->configure(DSP_DITHER, (bool *)false);
-
- /* NOTE: this _should_ be set to MPC_FIXED_POINT_SCALE_SHIFT, not with
- a 1 subtracted. However, doing so yields an output with only half the
- amplitude it should have, so currently we use what's here, as it gives
- correct level output. */
- ci->configure(DSP_SET_SAMPLE_DEPTH, (long *)(MPC_FIXED_POINT_SCALE_SHIFT - 1));
- /* disable these until we can figure out what's going on.
- ci->configure(DSP_SET_CLIP_MAX, (long *)MPC_FIXED_POINT_SCALE);
- ci->configure(DSP_SET_CLIP_MIN, (long *)-MPC_FIXED_POINT_SCALE);*/
+ ci->configure(DSP_SET_SAMPLE_DEPTH, (long *)(28));
ci->configure(CODEC_SET_FILEBUF_CHUNKSIZE, (long *)(1024*16));
/* Create a decoder instance */