[Bug 21655] MacOS: broken mixing in dsound8 tests + assertion failure
wine-bugs at winehq.org
wine-bugs at winehq.org
Wed Nov 23 18:37:14 CST 2011
http://bugs.winehq.org/show_bug.cgi?id=21655
--- Comment #7 from Raymond <superquad.vortex2 at gmail.com> 2011-11-23 18:37:14 CST ---
it is also broken in winealsa too
440Hz tone when using primary buffer of 24bit become noise
dsound8.c:651: Test failed: Primary and secondary buffers have different vtbls.
ds3d8.c:337: Playing 1 second 440Hz tone at 11025x16x2
ds3d8.c:522: Test failed: The sound played for 861 ms instead of 1000 ms
dsound8.c:640: Testing a primary buffer at 96000x32x2 (fmt=1) with a
secondary buffer at 11025x16x2
dsound8.c:651: Test failed: Primary and secondary buffers have different vtbls.
ds3d8.c:337: Playing 1 second 440Hz tone at 11025x16x2
est.exe.so: mixer.c:330: DSOUND_BufPtrDiff: Assertion `ptr1 < buflen' failed.
dsound8: unhandled exception 80000101 at 0x68000832
AudioClient_GetMixFormat() prefer FLOAT_LE for those "plughw" device and limit
the rate to 48000Hz but user is allowed to change dsound's default sample rate
in registry to 96000Hz
fmt->Format.wFormatTag = WAVE_FORMAT_EXTENSIBLE;
if(snd_pcm_format_mask_test(formats, SND_PCM_FORMAT_FLOAT_LE)){
fmt->Format.wBitsPerSample = 32;
fmt->SubFormat = KSDATAFORMAT_SUBTYPE_IEEE_FLOAT;
}else if(snd_pcm_format_mask_test(formats, SND_PCM_FORMAT_S16_LE)){
fmt->Format.wBitsPerSample = 16;
fmt->SubFormat = KSDATAFORMAT_SUBTYPE_PCM;
}else if(snd_pcm_format_mask_test(formats, SND_PCM_FORMAT_U8)){
fmt->Format.wBitsPerSample = 8;
fmt->SubFormat = KSDATAFORMAT_SUBTYPE_PCM;
}else if(snd_pcm_format_mask_test(formats, SND_PCM_FORMAT_S32_LE)){
fmt->Format.wBitsPerSample = 32;
fmt->SubFormat = KSDATAFORMAT_SUBTYPE_PCM;
}else if(snd_pcm_format_mask_test(formats, SND_PCM_FORMAT_S24_3LE)){
fmt->Format.wBitsPerSample = 24;
fmt->SubFormat = KSDATAFORMAT_SUBTYPE_PCM;
}else{
ERR("Didn't recognize any available ALSA formats\n");
hr = E_FAIL;
goto exit;
}
if(max_rate >= 48000)
fmt->Format.nSamplesPerSec = 48000;
else if(max_rate >= 44100)
fmt->Format.nSamplesPerSec = 44100;
else if(max_rate >= 22050)
fmt->Format.nSamplesPerSec = 22050;
else if(max_rate >= 11025)
fmt->Format.nSamplesPerSec = 11025;
else if(max_rate >= 8000)
fmt->Format.nSamplesPerSec = 8000;
else{
ERR("Unknown max rate: %u\n", max_rate);
hr = E_FAIL;
goto exit;
}
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.
More information about the wine-bugs
mailing list