We are currently migrating Bugzilla to GitHub issues.
Any changes made to the bug tracker now will be lost, so please do not post new bugs or make changes to them.
When we're done, all bug URLs will redirect to their equivalent location on the new bug tracker.

Bug 5485

Summary: Timeout on love2d when using Microphone of specific headset
Product: SDL Reporter: lukas
Component: joystickAssignee: Sam Lantinga <slouken>
Status: RESOLVED WONTFIX QA Contact: Sam Lantinga <slouken>
Severity: normal    
Priority: P2    
Version: don't know   
Hardware: x86_64   
OS: Windows 10   

Description lukas 2021-01-19 14:41:56 UTC
https://github.com/love2d/love/issues/1643

Does this rely to SDL?
Comment 1 Sam Lantinga 2021-01-19 16:46:58 UTC
It does sound like an SDL issue. Any chance you can send me the headset for debugging? If not, any chance we can do remote interactive debugging over Zoom?
Comment 2 lukas 2021-01-27 19:24:36 UTC
Hey Sam, I wrote an email to you but you didn't respond.

Of couse we can do remote debugging which would make a lot more sense than sending the headset from germany. 

https://en.sharkoon.com/product/19984
https://en.sharkoon.com/product/30231
Those are the two products I could reproduce the bug with, just in case this helps you in general.

I'm available for debugging in the evenings from 6pm CET / 9am PST. But you can suggest a time of your choice.
Comment 3 Sam Lantinga 2021-01-27 19:44:22 UTC
I didn't get your e-mail for some reason. I just sent you e-mail, is now good?
Comment 4 Sam Lantinga 2021-01-27 20:38:44 UTC
This is a bug in the driver for the USB device. It's hanging inside of this call:
    IDirectInput8_EnumDevices(dinput, DI8DEVCLASS_GAMECTRL, EnumJoysticksCallback, pContext, DIEDFL_ATTACHEDONLY);

Here is the stack trace showing a hang in the driver:
 	ntdll.dll!NtDeviceIoControlFile()	Unknown
 	KERNELBASE.dll!DeviceIoControl()	Unknown
 	kernel32.dll!DeviceIoControlImplementation()	Unknown
 	hid.dll!DeviceIoControlHelper()	Unknown
 	hid.dll!HidD_GetProductString()	Unknown
 	dinput8.dll!fGetProductStringFromDevice()	Unknown
 	dinput8.dll!CHid_GetProperty()	Unknown
 	dinput8.dll!CHid_GetDeviceInfo()	Unknown
 	dinput8.dll!CDIDev_GetDeviceInfoW()	Unknown
 	dinput8.dll!CDIDEnum_Next()	Unknown
 	dinput8.dll!CDIObj_EnumDevicesW()	Unknown

At this point there's nothing we can do in SDL other than disable DirectInput support.