diff options
author | Thom Johansen <thomj@rockbox.org> | 2006-02-13 19:24:36 +0000 |
---|---|---|
committer | Thom Johansen <thomj@rockbox.org> | 2006-02-13 19:24:36 +0000 |
commit | 153f906d74eeff933a44fdf038b292d8d543e8f0 (patch) | |
tree | 488c120304caf2d8c25b7bdb57c9d8633f694bf8 /apps/codecs | |
parent | 65bfd83ce082cbd58b8bbbbb4bf3a5cbb2e60002 (diff) | |
download | rockbox-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
Diffstat (limited to 'apps/codecs')
-rw-r--r-- | apps/codecs/libmusepack/synth_filter.c | 3 | ||||
-rw-r--r-- | apps/codecs/mpc.c | 10 |
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 | |||
367 | "mac.l %%d2, %%a5, (992*4, %[V]), %%a5, %%acc0\n\t" | 367 | "mac.l %%d2, %%a5, (992*4, %[V]), %%a5, %%acc0\n\t" |
368 | "mac.l %%d3, %%a5, %%acc0\n\t" | 368 | "mac.l %%d3, %%a5, %%acc0\n\t" |
369 | "movclr.l %%acc0, %%d0\n\t" | 369 | "movclr.l %%acc0, %%d0\n\t" |
370 | "asl.l #1, %%d0\n\t" | ||
371 | "move.l %%d0, (%[Data])+\n" | 370 | "move.l %%d0, (%[Data])+\n" |
372 | : [Data] "+a" (Data) | 371 | : [Data] "+a" (Data) |
373 | : [V] "a" (V), [D] "a" (D) | 372 | : [V] "a" (V), [D] "a" (D) |
@@ -378,7 +377,7 @@ static void Synthese_Filter_float_internal(MPC_SAMPLE_FORMAT * OutData,MPC_SAMPL | |||
378 | + 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]) | 377 | + 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]) |
379 | + 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]) | 378 | + 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]) |
380 | + 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]) | 379 | + 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]) |
381 | , 2); | 380 | , 1); |
382 | 381 | ||
383 | Data += 1; | 382 | Data += 1; |
384 | #endif | 383 | #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) | |||
92 | 92 | ||
93 | ci->configure(CODEC_DSP_ENABLE, (bool *)true); | 93 | ci->configure(CODEC_DSP_ENABLE, (bool *)true); |
94 | ci->configure(DSP_DITHER, (bool *)false); | 94 | ci->configure(DSP_DITHER, (bool *)false); |
95 | 95 | ci->configure(DSP_SET_SAMPLE_DEPTH, (long *)(28)); | |
96 | /* NOTE: this _should_ be set to MPC_FIXED_POINT_SCALE_SHIFT, not with | ||
97 | a 1 subtracted. However, doing so yields an output with only half the | ||
98 | amplitude it should have, so currently we use what's here, as it gives | ||
99 | correct level output. */ | ||
100 | ci->configure(DSP_SET_SAMPLE_DEPTH, (long *)(MPC_FIXED_POINT_SCALE_SHIFT - 1)); | ||
101 | /* disable these until we can figure out what's going on. | ||
102 | ci->configure(DSP_SET_CLIP_MAX, (long *)MPC_FIXED_POINT_SCALE); | ||
103 | ci->configure(DSP_SET_CLIP_MIN, (long *)-MPC_FIXED_POINT_SCALE);*/ | ||
104 | ci->configure(CODEC_SET_FILEBUF_CHUNKSIZE, (long *)(1024*16)); | 96 | ci->configure(CODEC_SET_FILEBUF_CHUNKSIZE, (long *)(1024*16)); |
105 | 97 | ||
106 | /* Create a decoder instance */ | 98 | /* Create a decoder instance */ |