http://bugs.winehq.org/show_bug.cgi?id=29274
Bug #: 29274 Summary: Steam on Mac - mic test fails and crashes Counter Strike 1.6 Product: Wine Version: 1.3.34 Platform: x86-64 OS/Version: Mac OS X Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: tuckdesign@yahoo.com Classification: Unclassified
Created attachment 37861 --> http://bugs.winehq.org/attachment.cgi?id=37861 Winedebug dump with +coreaudio
When starting Counter Strike 1.6 game crashes or shows error messages and then continues without sound. Similar thing happens if you click "Test microphone" in Steam Settings>Voice. Attaching debug of coreaudio.
Found one solution, but not sure it is proper one:
Appears that in dlls/winecoreaudio/mmdevdrv.c in AudioCaptureClient_ReleaseBuffer function
This->public_buffer is sometimes empty and makes this crash.
So, changed:
pbuf_frames = This->public_buffer->mAudioDataByteSize / This->fmt->nBlockAlign;
to:
if (This->public_buffer) pbuf_frames = This->public_buffer->mAudioDataByteSize / This->fmt->nBlockAlign;
Programmer myself, but don't have time to explore where real error is. This fix makes game work without crash, but think problem is where is This->public_buffer released (or not set...)