summaryrefslogtreecommitdiff
path: root/apps/dsp.h
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2007-02-07 00:51:50 +0000
committerMichael Sevakis <jethead71@rockbox.org>2007-02-07 00:51:50 +0000
commitaba6ca0881d1481b4047b2d7834d70ca2eb5c64b (patch)
tree6635b98840dcf4936b3c1ca641c00c32ea1b3e7f /apps/dsp.h
parentdd50c863e60488662dee8f28f7292389ade42bac (diff)
downloadrockbox-aba6ca0881d1481b4047b2d7834d70ca2eb5c64b.tar.gz
rockbox-aba6ca0881d1481b4047b2d7834d70ca2eb5c64b.zip
Fix resampling clicking as much as possible at the moment. 1) Upsampling clicked because of size inaccuracies returned by DSP. Fix by simplifying audio system to use per-channel sample count from codec to pcm buffer. 2) Downsampling affected by 1) and was often starting passed the end of the data when not enough was available to generate an output sample. Fix by clamping input range to last sample in buffer and using the last sample value in the buffer. A perfect fix will require a double buffering scheme on the resampler to sufficient data during small data transients on both ends at all times of the down ratio on input and the up ratio on output.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12218 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/dsp.h')
-rw-r--r--apps/dsp.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/apps/dsp.h b/apps/dsp.h
index ccea8cba34..5217224797 100644
--- a/apps/dsp.h
+++ b/apps/dsp.h
@@ -206,9 +206,9 @@ enum {
206 206
207#define DIV64(x, y, z) (long)(((long long)(x) << (z))/(y)) 207#define DIV64(x, y, z) (long)(((long long)(x) << (z))/(y))
208 208
209long dsp_process(char *dest, const char *src[], long size); 209int dsp_process(char *dest, const char *src[], int count);
210long dsp_input_size(long size); 210int dsp_input_count(int count);
211long dsp_output_size(long size); 211int dsp_output_count(int count);
212int dsp_stereo_mode(void); 212int dsp_stereo_mode(void);
213bool dsp_configure(int setting, void *value); 213bool dsp_configure(int setting, void *value);
214void dsp_set_replaygain(bool always); 214void dsp_set_replaygain(bool always);