Browse Source

oss_driver: Use float to S32 conversion if requested

sample_move_d32u24_sS() converts into samples like 0x00****** but S32
format expects samples like 0x********. Therefore it will not use the
full volume range when also using sample_move_d32u24_sS() for S32.

Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
tags/v1.9.13
Timo Wischer Filipe Coelho <falktx@falktx.com> 6 years ago
parent
commit
c5a0f5ea1c
3 changed files with 6 additions and 6 deletions
  1. +2
    -2
      solaris/oss/JackBoomerDriver.cpp
  2. +2
    -2
      solaris/oss/JackOSSAdapter.cpp
  3. +2
    -2
      solaris/oss/JackOSSDriver.cpp

+ 2
- 2
solaris/oss/JackBoomerDriver.cpp View File

@@ -87,7 +87,7 @@ static inline void CopyAndConvertIn(jack_sample_t *dst, void *src, size_t nframe
case 32: { case 32: {
signed int *s32src = (signed int*)src; signed int *s32src = (signed int*)src;
s32src += channel; s32src += channel;
sample_move_dS_s32u24(dst, (char*)s32src, nframes, byte_skip);
sample_move_dS_s32(dst, (char*)s32src, nframes, byte_skip);
break; break;
} }
} }
@@ -112,7 +112,7 @@ static inline void CopyAndConvertOut(void *dst, jack_sample_t *src, size_t nfram
case 32: { case 32: {
signed int *s32dst = (signed int*)dst; signed int *s32dst = (signed int*)dst;
s32dst += channel; s32dst += channel;
sample_move_d32u24_sS((char*)s32dst, src, nframes, byte_skip, NULL);
sample_move_d32_sS((char*)s32dst, src, nframes, byte_skip, NULL);
break; break;
} }
} }


+ 2
- 2
solaris/oss/JackOSSAdapter.cpp View File

@@ -52,7 +52,7 @@ static inline void CopyAndConvertIn(jack_sample_t *dst, void *src, size_t nframe
case 32: { case 32: {
signed int *s32src = (signed int*)src; signed int *s32src = (signed int*)src;
s32src += channel; s32src += channel;
sample_move_dS_s32u24(dst, (char*)s32src, nframes, chcount<<2);
sample_move_dS_s32(dst, (char*)s32src, nframes, chcount<<2);
break; break;
} }
} }
@@ -77,7 +77,7 @@ static inline void CopyAndConvertOut(void *dst, jack_sample_t *src, size_t nfram
case 32: { case 32: {
signed int *s32dst = (signed int*)dst; signed int *s32dst = (signed int*)dst;
s32dst += channel; s32dst += channel;
sample_move_d32u24_sS((char*)s32dst, src, nframes, chcount<<2, NULL);
sample_move_d32_sS((char*)s32dst, src, nframes, chcount<<2, NULL);
break; break;
} }
} }


+ 2
- 2
solaris/oss/JackOSSDriver.cpp View File

@@ -86,7 +86,7 @@ static inline void CopyAndConvertIn(jack_sample_t *dst, void *src, size_t nframe
case 32: { case 32: {
signed int *s32src = (signed int*)src; signed int *s32src = (signed int*)src;
s32src += channel; s32src += channel;
sample_move_dS_s32u24(dst, (char*)s32src, nframes, chcount<<2);
sample_move_dS_s32(dst, (char*)s32src, nframes, chcount<<2);
break; break;
} }
} }
@@ -111,7 +111,7 @@ static inline void CopyAndConvertOut(void *dst, jack_sample_t *src, size_t nfram
case 32: { case 32: {
signed int *s32dst = (signed int*)dst; signed int *s32dst = (signed int*)dst;
s32dst += channel; s32dst += channel;
sample_move_d32u24_sS((char*)s32dst, src, nframes, chcount<<2, NULL);
sample_move_d32_sS((char*)s32dst, src, nframes, chcount<<2, NULL);
break; break;
} }
} }


Loading…
Cancel
Save