diff options
Diffstat (limited to 'apps/recorder/pcm_record.c')
-rw-r--r-- | apps/recorder/pcm_record.c | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/apps/recorder/pcm_record.c b/apps/recorder/pcm_record.c index 0a6e1b5a51..9b0e779485 100644 --- a/apps/recorder/pcm_record.c +++ b/apps/recorder/pcm_record.c @@ -890,12 +890,12 @@ copy_buffer_mono_lr(void *dst, const void *src, size_t src_size) /* Copy with mono conversion - output 1/2 size of input */ static void * ICODE_ATTR -copy_buffer_mono_l(void *dst, const void *src, size_t src_size) +copy_buffer_mono_r(void *dst, const void *src, size_t src_size) { int16_t *d = (int16_t*)dst; - int16_t const *s = (int16_t const*)src - 2; + int16_t const *s = (int16_t const*)src - 1; ssize_t copy_size = src_size; - /* mono = L */ + /* mono = R */ do *d++ = *(s += 2); while ((copy_size -= PCM_SAMP_SIZE) > 0); @@ -903,20 +903,28 @@ copy_buffer_mono_l(void *dst, const void *src, size_t src_size) return dst; } +#if 1 +static void * ICODE_ATTR +copy_buffer_mono_l(void *dst, const void *src, size_t src_size) +{ + return copy_buffer_mono_r(dst, src -1, src_size); +} +#else /* Copy with mono conversion - output 1/2 size of input */ static void * ICODE_ATTR -copy_buffer_mono_r(void *dst, const void *src, size_t src_size) +copy_buffer_mono_l(void *dst, const void *src, size_t src_size) { int16_t *d = (int16_t*)dst; - int16_t const *s = (int16_t const*)src - 1; + int16_t const *s = (int16_t const*)src - 2; ssize_t copy_size = src_size; - /* mono = R */ + /* mono = L */ do *d++ = *(s += 2); while ((copy_size -= PCM_SAMP_SIZE) > 0); return dst; } +#endif /** pcm_rec_* group **/ |