Skip to main content
Topic: Foobar2000 and Windows Audio hanging when using DirectSound output (Read 314 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Foobar2000 and Windows Audio hanging when using DirectSound output

I don't know when this started happening, unfortunately, but it seems like it may have been caused by some Windows update because Foobar2000 was installed and working normally before and suddenly one day in the last few months I couldn't open it without having issues. I finally got around to looking into it today.

At first: When trying to launch foobar2000, it wouldn't appear. Some system tasks would also hang, like populating network drives in Explorer. After a short time, foobar would finally appear but simultaneously the Windows Audio service would crash. It would seem that foobar2000 is getting tangled up with the audio service and the audio service is getting terminated for hanging (according to Event Viewer).

Now: I've saved Null as the audio output so foobar launches normally, but when I try to switch to a DirectSound source and apply, foobar2000 hangs indefinitely. It does not cause the Windows Audio service to crash until a short period after manually terminating foobar2000.

I've run foobar2000 in safe mode, which makes no difference.

OS Name: Microsoft Windows 10 Pro
Version: 10.0.17763 Build 17763
Windows Version 1809
foobar2000 version: 1.4.3

Process Explorer thread stacks (combined some identical thread stacks):
Code: [Select]
TID 22636: combase.dll!CoGetErrorInfo_0x2530
=================================================
0x0000000000000000
wow64cpu.dll!TurboDispatchJumpAddressEnd+0x544
wow64cpu.dll!TurboDispatchJumpAddressEnd+0x9e
wow64cpu.dll!BTCpuSimulate+0x9
wow64.dll!Wow64LdrpInitialize+0x25a
wow64.dll!Wow64LdrpInitialize+0x120
ntdll.dll!LdrInitializeThunk+0x17b
ntdll.dll!LdrInitializeThunk+0x63
ntdll.dll!LdrInitializeThunk+0xe
ntdll.dll!ZwWaitForMultipleObjects+0xc
combase.dll!WindowsGetStringRawBuffer+0x700
combase.dll!WindowsGetStringRawBuffer+0x408
combase.dll!CoGetErrorInfo+0x254f
KERNEL32.DLL!BaseThreadInitThunk+0x19
ntdll.dll!RtlGetAppContainerNamedObjectPath+0xed
ntdll.dll!RtlGetAppContainerNamedObjectPath+0xbd


TID 23472: foobar2000.exe+0x1576ba
=================================================
0x0000000000000000
ntdll.dll!ZwAlpcSendWaitReceivePort+0x14
wow64.dll!Wow64ShallowThunkSIZE_T32TO64+0xc7f
wow64.dll!Wow64SystemServiceEx+0x153
wow64cpu.dll!TurboDispatchJumpAddressEnd+0xb
wow64cpu.dll!BTCpuSimulate+0x9
wow64.dll!Wow64LdrpInitialize+0x25a
wow64.dll!Wow64LdrpInitialize+0x120
ntdll.dll!LdrInitShimEngineDynamic+0x31dd
ntdll.dll!memset+0x1d339
ntdll.dll!LdrInitializeThunk+0x63
ntdll.dll!LdrInitializeThunk+0xe
ntdll.dll!ZwAlpcSendWaitReceivePort+0xc
RPCRT4.dll!NdrClientCall2+0xd87
RPCRT4.dll!NdrClientCall4+0x14
AUDIOSES.DLL+0x4278a
AUDIOSES.DLL+0x42824
AUDIOSES.DLL+0x365d1
MMDevApi.dll!Ordinal29+0x196
foobar2000.exe+0x353b2
foobar2000.exe+0x3569e
foobar2000.exe+0x35033
foobar2000.exe+0x35794
foobar2000.exe+0x1039d9
foobar2000.exe+0xb04b4
foobar2000.exe+0xae10c
foobar2000.exe+0xdccd6
foobar2000.exe+0xd1e78
foobar2000.exe+0xd1aea
foobar2000.exe+0xd30f0


TID 2216: gdiplus!GdiplusStartup+0x1970
=================================================
0x0000000000000000
wow64win.dll+0x17cc4
wow64win.dll+0x332a
wow64.dll!Wow64SystemServiceEx+0x153
wow64cpu.dll!TurboDispatchJumpAddressEnd+0xb
wow64cpu.dll!BTCpuSimulate+0x9
wow64.dll!Wow64LdrpInitialize+0x25a
wow64.dll!Wow64LdrpInitialize+0x120
ntdll.dll!LdrInitializeThunk+0x17b
ntdll.dll!LdrInitializeThunk+0x63
ntdll.dll!LdrInitializeThunk+0xe
win32u.dll!NtUserMsgWaitForMultipleObjectsEx+0xc
USER32.dll!MsgWaitForMultipleObjects+0x4d
gdiplus.dll!GdiplusStartup+0x19f6
gdiplus.dll!GdiplusStartup+0x198a
KERNEL32.DLL!BaseThreadInitThunk+0x19
ntdll.dll!RtlGetAppContainerNamedObjectPath+0xed
ntdll.dll!RtlGetAppContainerNamedObjectPath+0xbd


TID 23192/23008: ntdll!RtlAcquirePebLock+0x5f0
=================================================
0x0000000000000000
ntdll.dll!ZwWaitForWorkViaWorkerFactory+0x14
wow64.dll!Wow64ShallowThunkSIZE_T32TO64+0x1734
wow64.dll!Wow64SystemServiceEx+0x153
wow64cpu.dll!TurboDispatchJumpAddressEnd+0xb
wow64cpu.dll!BTCpuSimulate+0x9
wow64.dll!Wow64LdrpInitialize+0x25a
wow64.dll!Wow64LdrpInitialize+0x120
ntdll.dll!LdrInitializeThunk+0x17b
ntdll.dll!LdrInitializeThunk+0x63
ntdll.dll!LdrInitializeThunk+0xe
ntdll.dll!NtWaitForWorkViaWorkerFactory+0xc
KERNEL32.DLL!BaseThreadInitThunk+0x19
ntdll.dll!RtlGetAppContainerNamedObjectPath+0xed
ntdll.dll!RtlGetAppContainerNamedObjectPath+0xbd


TID 10072/10904/14276/21608: ucrtbase.dll!_o_iswdigit+0x70
=================================================
0x0000000000000000
wow64cpu.dll!TurboDispatchJumpAddressEnd+0x544
wow64cpu.dll!TurboDispatchJumpAddressEnd+0x9e
wow64cpu.dll!BTCpuSimulate+0x9
wow64.dll!Wow64LdrpInitialize+0x25a
wow64.dll!Wow64LdrpInitialize+0x120
ntdll.dll!LdrInitializeThunk+0x17b
ntdll.dll!LdrInitializeThunk+0x63
ntdll.dll!LdrInitializeThunk+0xe
ntdll.dll!ZwWaitForMultipleObjects+0xc
KERNELBASE.dll!WaitForMultipleObjects+0x18
foobar2000.exe+0x3d366
foobar2000.exe+0x13ad5a
foobar2000.exe+0x13adf9
KERNEL32.DLL!BaseThreadInitThunk+0x19
ntdll.dll!RtlGetAppContainerNamedObjectPath+0xed
ntdll.dll!RtlGetAppContainerNamedObjectPath+0xbd

Re: Foobar2000 and Windows Audio hanging when using DirectSound output

Reply #1
Does the same hang happen with other DirectSound using software? Something like iTunes and VLC should use DS by default.
I don't see anything weird in the stack traces. I'd be curious to hear if the same hang happens with other audio outputs.

Re: Foobar2000 and Windows Audio hanging when using DirectSound output

Reply #2
I checked MPC-HC and VLC with DirectSound output. They work fine.

I can use the WASAPI plugin to play sound on an output in exclusive mode, and that works.

I also went digging and found an option to integrate with Windows 10 Universal Audio Control or something like that. Enabling that makes foobar hang the audio service immediately, even if its output is set to null.

Re: Foobar2000 and Windows Audio hanging when using DirectSound output

Reply #3
if you provide a memory dump of the hang (instructions here) I'm sure Peter would like to take a look.

 
SimplePortal 1.0.0 RC1 © 2008-2019