summaryrefslogtreecommitdiff
path: root/apps/codecs/libmusepack
diff options
context:
space:
mode:
authorThom Johansen <thomj@rockbox.org>2005-11-06 23:05:49 +0000
committerThom Johansen <thomj@rockbox.org>2005-11-06 23:05:49 +0000
commit4d9be96a819206534594f79e856fbbd7880588d4 (patch)
treeeb1c3af104d7957061c03a08d8f23156597f84ee /apps/codecs/libmusepack
parentc8193b8da503859eeeb4d551fdbe523759421394 (diff)
downloadrockbox-4d9be96a819206534594f79e856fbbd7880588d4.zip
rockbox-4d9be96a819206534594f79e856fbbd7880588d4.tar.gz
rockbox-4d9be96a819206534594f79e856fbbd7880588d4.tar.bz2
rockbox-4d9be96a819206534594f79e856fbbd7880588d4.tar.xz
Changed output format of libmpcdec to non-interleaved stereo for a slight speed boost. Also stopped wasting 10kb of IRAM in the output sample buffer.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7769 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs/libmusepack')
-rw-r--r--apps/codecs/libmusepack/synth_filter.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/apps/codecs/libmusepack/synth_filter.c b/apps/codecs/libmusepack/synth_filter.c
index bd3c3e8..e01da55 100644
--- a/apps/codecs/libmusepack/synth_filter.c
+++ b/apps/codecs/libmusepack/synth_filter.c
@@ -372,8 +372,7 @@ static void Synthese_Filter_float_internal(MPC_SAMPLE_FORMAT * OutData,MPC_SAMPL
"mac.l %%d3, %%a5, %%acc0\n\t"
"movclr.l %%acc0, %%d0\n\t"
"asl.l #1, %%d0\n\t"
- "move.l %%d0, (%[Data])\n\t"
- "addq.l #8, %[Data]"
+ "move.l %%d0, (%[Data])+\n"
: [Data] "+a" (Data)
: [V] "a" (V), [D] "a" (D)
: "d0", "d1", "d2", "d3", "a5");
@@ -389,7 +388,7 @@ static void Synthese_Filter_float_internal(MPC_SAMPLE_FORMAT * OutData,MPC_SAMPL
#endif
}
V -= 32;//bleh
- OutData+=64;
+ OutData+=32;
}
}
}
@@ -409,7 +408,7 @@ mpc_decoder_synthese_filter_float(mpc_decoder *d, MPC_SAMPLE_FORMAT* OutData)
memmove(d->V_R + MPC_V_MEM, d->V_R, 960 * sizeof(MPC_SAMPLE_FORMAT) );
Synthese_Filter_float_internal(
- OutData + 1,
+ OutData + MPC_FRAME_LENGTH,
(MPC_SAMPLE_FORMAT *)(d->V_R + MPC_V_MEM),
(MPC_SAMPLE_FORMAT *)(d->Y_R [0]));
}