summaryrefslogtreecommitdiff
path: root/apps/codecs
diff options
context:
space:
mode:
authorDave Bryant <bryant@rockbox.org>2006-01-08 08:38:18 +0000
committerDave Bryant <bryant@rockbox.org>2006-01-08 08:38:18 +0000
commitc78b019944a1e79116855355a10f120be52668ff (patch)
treeff52c7cc43ec6ee9d9f85706ab722379f3c7c1a2 /apps/codecs
parentdad0011e319d4ec94da82ab6171c598370f593b0 (diff)
downloadrockbox-c78b019944a1e79116855355a10f120be52668ff.tar.gz
rockbox-c78b019944a1e79116855355a10f120be52668ff.zip
I figured out what was *really* causing the MPC track-change noise, so I
backed out Thom's change and made the appropriate change. Note that this should not fix the track change *pop* because there still seems to be a problem decoding the first and last several hundred samples of MPC files. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8306 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs')
-rw-r--r--apps/codecs/libmusepack/mpc_decoder.c11
-rw-r--r--apps/codecs/mpc.c8
2 files changed, 10 insertions, 9 deletions
diff --git a/apps/codecs/libmusepack/mpc_decoder.c b/apps/codecs/libmusepack/mpc_decoder.c
index f8fdd8889e..024e7ab2c2 100644
--- a/apps/codecs/libmusepack/mpc_decoder.c
+++ b/apps/codecs/libmusepack/mpc_decoder.c
@@ -269,11 +269,15 @@ mpc_decoder_huffman_decode_faster(mpc_decoder *d, const HuffmanTyp* Table)
269 return Table->Value; 269 return Table->Value;
270} 270}
271 271
272MPC_SAMPLE_FORMAT V_L[MPC_V_MEM + 960] IBSS_ATTR;
273MPC_SAMPLE_FORMAT V_R[MPC_V_MEM + 960] IBSS_ATTR;
274
272static void 275static void
273mpc_decoder_reset_v(mpc_decoder *d) 276mpc_decoder_reset_v(mpc_decoder *d)
274{ 277{
275 memset(d->V_L, 0, sizeof d->V_L); 278 /* since d->V_L and d->V_R are now pointers, sizeof (d->V_x) will no longer work */
276 memset(d->V_R, 0, sizeof d->V_R); 279 memset(d->V_L, 0, sizeof V_L);
280 memset(d->V_R, 0, sizeof V_R);
277} 281}
278 282
279static void 283static void
@@ -1106,9 +1110,6 @@ mpc_decoder_read_bitstream_sv7(mpc_decoder *d)
1106 } 1110 }
1107} 1111}
1108 1112
1109MPC_SAMPLE_FORMAT V_L[MPC_V_MEM + 960] IBSS_ATTR;
1110MPC_SAMPLE_FORMAT V_R[MPC_V_MEM + 960] IBSS_ATTR;
1111
1112void mpc_decoder_setup(mpc_decoder *d, mpc_reader *r) 1113void mpc_decoder_setup(mpc_decoder *d, mpc_reader *r)
1113{ 1114{
1114 d->r = r; 1115 d->r = r;
diff --git a/apps/codecs/mpc.c b/apps/codecs/mpc.c
index 2d2aa6ed66..db2501525e 100644
--- a/apps/codecs/mpc.c
+++ b/apps/codecs/mpc.c
@@ -81,6 +81,10 @@ enum codec_status codec_start(struct codec_api *api)
81 mpc_streaminfo info; 81 mpc_streaminfo info;
82 82
83 TEST_CODEC_API(api); 83 TEST_CODEC_API(api);
84 #ifdef USE_IRAM
85 ci->memcpy(iramstart, iramcopy, iramend - iramstart);
86 #endif
87
84 ci->configure(CODEC_DSP_ENABLE, (bool *)true); 88 ci->configure(CODEC_DSP_ENABLE, (bool *)true);
85 ci->configure(DSP_DITHER, (bool *)false); 89 ci->configure(DSP_DITHER, (bool *)false);
86 90
@@ -103,10 +107,6 @@ enum codec_status codec_start(struct codec_api *api)
103 reader.data = ci; 107 reader.data = ci;
104 108
105next_track: 109next_track:
106 #ifdef USE_IRAM
107 ci->memcpy(iramstart, iramcopy, iramend - iramstart);
108 #endif
109
110 if (codec_init(api)) 110 if (codec_init(api))
111 return CODEC_ERROR; 111 return CODEC_ERROR;
112 112