- fixed int24 Mono to Stereo mixer (affects Mono streams starting in Exclusive mode)
pa_converters: 
 - avoid using 64-bit integer math for Int24_To_Float32 and Int24_To_Int32 under x64 Posix platforms (long is 64-bit there), now using explicit PaInt32 type
This commit is contained in:
dmitrykos 2010-03-25 23:27:27 +00:00
commit d714962621
2 changed files with 15 additions and 18 deletions

View file

@ -850,8 +850,8 @@ static BOOL UseWOW64VistaWorkaround()
// ------------------------------------------------------------------------------------------
#define _WASAPI_MONO_TO_STEREO_MIXER(TYPE)\
TYPE * __restrict to = __to;\
TYPE * __restrict from = __from;\
TYPE * __restrict to = (TYPE *)__to;\
TYPE * __restrict from = (TYPE *)__from;\
TYPE * __restrict end = from + count;\
while (from != end)\
{\
@ -875,10 +875,7 @@ static void _MixMonoToStereo_16(void *__to, void *__from, UINT32 count)
// ------------------------------------------------------------------------------------------
static void _MixMonoToStereo_24(void *__to, void *__from, UINT32 count)
{
#pragma pack(push, 1)
typedef struct wasapi_int24 { BYTE d[3]; } wasapi_int24; //<< 24 bit value, packed to 1 byte to avoid padding
#pragma pack(pop)
_WASAPI_MONO_TO_STEREO_MIXER(wasapi_int24);
_WASAPI_MONO_TO_STEREO_MIXER(int); // !!! int24 data is contained in 32-bit containers
}
// ------------------------------------------------------------------------------------------