summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Bryant <bryant@rockbox.org>2005-09-30 21:11:31 +0000
committerDave Bryant <bryant@rockbox.org>2005-09-30 21:11:31 +0000
commitf0fe3c94772ddf971810e5082dcfb9b0ac462ae4 (patch)
tree3ee8e43a93fd3441bbb9b71a094406a83e4435a8
parenta1de081a1b22fdcb8c5530f702866ca658cc68c2 (diff)
downloadrockbox-f0fe3c94772ddf971810e5082dcfb9b0ac462ae4.tar.gz
rockbox-f0fe3c94772ddf971810e5082dcfb9b0ac462ae4.zip
Fix some WavPack bugs by forcing DSP use even when not needed for sampling rate
conversion or ReplayGain. Costs about 12% boost ratio when DSP would not have been used before. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7573 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/codecs/wavpack.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/apps/codecs/wavpack.c b/apps/codecs/wavpack.c
index 12a05bbe37..e97724a94e 100644
--- a/apps/codecs/wavpack.c
+++ b/apps/codecs/wavpack.c
@@ -26,6 +26,9 @@
static struct codec_api *ci;
+#define FORCE_DSP_USE /* fixes some WavPack bugs; adds about 12% to boost ratio
+ (when DSP would not have been used) */
+
#define BUFFER_SIZE 4096
static long temp_buffer [BUFFER_SIZE] IDATA_ATTR;
@@ -75,6 +78,11 @@ enum codec_status codec_start(struct codec_api* api)
while (!*ci->taginfo_ready && !ci->stop_codec)
ci->sleep(1);
+#ifdef FORCE_DSP_USE
+ ci->configure(CODEC_DSP_ENABLE, (bool *)true);
+ ci->configure(DSP_SET_FREQUENCY, (long *)(ci->id3->frequency));
+ codec_set_replaygain(ci->id3);
+#else
if (ci->id3->frequency != NATIVE_FREQUENCY ||
ci->global_settings->replaygain) {
ci->configure(CODEC_DSP_ENABLE, (bool *)true);
@@ -83,7 +91,8 @@ enum codec_status codec_start(struct codec_api* api)
}
else
ci->configure(CODEC_DSP_ENABLE, (bool *)false);
-
+#endif
+
/* Create a decoder instance */
wpc = WavpackOpenFileInput (read_callback, error);