diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/dsp.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/apps/dsp.c b/apps/dsp.c index 3d02f5a630..309c8a229c 100644 --- a/apps/dsp.c +++ b/apps/dsp.c | |||
@@ -305,7 +305,7 @@ static long downsample(long **dst, long **src, int count, | |||
305 | long *d[2] = { dst[0], dst[1] }; | 305 | long *d[2] = { dst[0], dst[1] }; |
306 | int pos = phase >> 16; | 306 | int pos = phase >> 16; |
307 | int i = 1, j; | 307 | int i = 1, j; |
308 | int num_channels = src[0] == src[1] ? 1 : 2; | 308 | int num_channels = dsp->stereo_mode == STEREO_MONO ? 1 : 2; |
309 | 309 | ||
310 | for (j = 0; j < num_channels; j++) { | 310 | for (j = 0; j < num_channels; j++) { |
311 | last_sample = r->last_sample[j]; | 311 | last_sample = r->last_sample[j]; |
@@ -343,7 +343,7 @@ static long upsample(long **dst, long **src, int count, struct resample_data *r) | |||
343 | long *d[2] = { dst[0], dst[1] }; | 343 | long *d[2] = { dst[0], dst[1] }; |
344 | int i = 0, j; | 344 | int i = 0, j; |
345 | int pos; | 345 | int pos; |
346 | int num_channels = src[0] == src[1] ? 1 : 2; | 346 | int num_channels = dsp->stereo_mode == STEREO_MONO ? 1 : 2; |
347 | 347 | ||
348 | while ((pos = phase >> 16) == 0) | 348 | while ((pos = phase >> 16) == 0) |
349 | { | 349 | { |
@@ -395,7 +395,10 @@ static inline int resample(long* src[], int count) | |||
395 | } | 395 | } |
396 | 396 | ||
397 | src[0] = dst[0]; | 397 | src[0] = dst[0]; |
398 | src[1] = dst[1]; | 398 | if (dsp->stereo_mode != STEREO_MONO) |
399 | src[1] = dst[1]; | ||
400 | else | ||
401 | src[1] = dst[0]; | ||
399 | } | 402 | } |
400 | else | 403 | else |
401 | { | 404 | { |