Hello -
So, I've spent some time trying to see if my issue with FXS has been reported by other users, and if so, if anyone has a suggested resolution or workaround. I have found a lot of entries describing similar issues to what I'm experiencing with various suggestions of things to try to resolve the issue. Unfortunately, after going through a majority of those suggestions, I'm still having the same intermittent issue in FXS. I have also gone through the “first-aid-kit” list with no success. However, through the various testing & install/reinstalls of the app & drivers, I decided to open up this ticket to provide some information that might be of use to the developers to help debug this potential issue. I'll try to describe the best that I can.
Bug Description
I believe my issue has already been reported by varius other users files under different categories. My FXS issues would fit under any one of these: Bluetooth Connectivity Issues, FXS Random Application Crashes, FXS Random Audio Drops/cutouts, FXS Audio Drops/Cutouts and/or App crashes when new Bluetooth Headset connects or Disconnects.
To Reproduce
So, all of these issues seem to be very random. My best suggestion to try to reproduce would be have at least 2 bluetooth audio devices available, and randomly connect them, with FXS running (either auto switch to new device, or unchecked to manually change output devices). Have a YouTube video open in Firefox and playing. Have an video playing (trying both playing & just open and paused) outside of the browser - I'm using KMPlayer specifically. While these are playing, turn on 1 of the BT-Audio devices, let it connect. This will most often cause the audio to drop (The audio playing through FXS to my TV via HDMI will cut out). This drop happens regardless of the FXS - swith automatically setting is on or off. If the audio drops, and in FXS, I swith the output to the bluetooth, then switch the audio back to the previous device (my case, the TV) - the audio might come back. Sometimes, the FXS app may actually hang, and then it may crash completely, or it might recover in a minute or so. Now, during the same time, the Youtube video playing in Firefox mostly like freezes (same as if the internet connection would have been cut). Sometimes, if I do a Refresh on the Youtube page and it reloads and I start playing it, I'd say a 50/50 shot, this will bring back the Audio to whatever I have selected in FXS. If that does not bring back the audio, then I would turn off and back on the BT-audio device and if FXSound already has that device selected, a fair shot the audio will be heard on the BL-Headset. I may have to do that off/back on process 2-3 times. On the third time it might connect. Note that if I have a video playing in KMplayer, the video playback either freezes or playback becomes very stuttered and slow in KMPlayer.
One scenario I've noticed that seems to be a reliable way to get the audio to start replaying on the BT-Headset via FXS during these random drops is this: I've got a youtube video and a KMPlayer video playing, I connect my BT-headset, FXS Auto switches to the headset & the audio is dropped. There is a good chance that if I just exit FXS, the audio will suddenly start playing to my BT-headset, just through regular Windows 10 Audio output - not through FXS which I just shut down. Now, if I start FXS back up, and give it a few seconds, the audio resets, and audio is reconnected & enhanced via FXS again, playing through to my BT-headset as expected. But again, this process results are hit or miss. I'd say a 60% chance this will work, 30% it will not, 10% chance the app will just crash again.
Regarding the times when the FXS app crashes. This seemed to be happening quite often at first. This has become less frequent since I've gone through others' suggestions such as removing unused bluetooth devices, doing fresh installs of devices (bluetooth, bluetooth headsets, etc). I have set Windows to capture the crash dumps when the FXS app crashes. I've probably captured well over 30 app crashes over a week or so period of time. I've opened up these dump files, and they are always the same (every single one lists the same information, and, it seems to point to a volumechange procedure or process). I'm posting the text of the latest crash dump file analysis below. As I said, every single crash dump file is exactly the same.
I'm hoping that this information might help the you narrow in on the cause of this. It almost seems that this bug might be the cause of a lot of these issues, so resolving this might resolve a lot of them. I guess, there's a chance as well that something specific on my PC is the root cause of this, I'm not sure. Hope this helps.
Expected behavior
Not to have these application crashes to occur, and to have a much more "seemless" audio output switching in FXS.
Screenshots
Not applicable
System information
-Windows 10
-Latest version of FXS v1.1.20.0
-KMPlayer (x86) - Latest version
-Intel Wireless Bluetooth
-Bluetooth audio devices in particular. I don't use HDMI or hard connected audio devices very much.
-Note: All windows drivers for ALL devices are up to date and all Windows 10 Updates are installed.
** NOTES **
NOTE 1: I've also done multiple uninstalls, re-installs, ensuring the FXS driver was deleted completely from the driver store and reinstalled new, none of which resolved these issues.
NOTE 2: I've noticed references to some issues with HDMI monitors and audio lags, etc. I have run the Latency Monitor, and yes, that app does say that I've got higher than normal latency that might be causing issues. I've worked to get that lowered, but not resolved. However, I don't have issues with audio lagging or glitching WHEN I'm getting audio through FXS. The only "lagging" or "glitching" is most often in KMPlayer and when the audio has been dropped while FXS is running. I'm assuming that KMPlayer is struggling to figure out the proper output audio to use, resulting in it's glitched and often the app will just completely freeze and I'll have to end task it until I can get FXS sorted out and playing audio again.
FXSound Crash Dump File Analysis Text
Microsoft (R) Windows Debugger Version 10.0.19041.685 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.
Loading Dump File [C:\TempMatt\fxsound\CrashDumps\FxSound.exe.24544.dmp]
User Mini Dump File with Full Memory: Only application data is available
Symbol search path is: srv*
Executable search path is:
Windows 10 Version 19045 MP (16 procs) Free x64
Product: WinNt, suite: SingleUserTS Personal
19041.1.amd64fre.vb_release.191206-1406
Machine Name:
Debug session time: Thu Dec 21 11:34:56.000 2023 (UTC - 6:00)
System Uptime: 0 days 17:56:40.572
Process Uptime: 0 days 0:05:35.000
................................................................
........
This dump file has an exception of interest stored in it.
The stored exception information can be accessed via .ecxr.
(5fe0.2594): Access violation - code c0000005 (first/second chance not available)
For analysis of this file, run !analyze -v
ntdll!NtWaitForMultipleObjects+0x14:
00007ffc`3124db34 c3 ret
0:009> !analyze -v
Exception Analysis
Key Values String 1
Key : AV.Dereference
Value : NullPtr
Key : AV.Fault
Value: Read
Key : Analysis.CPU.Sec
Value: 0
Key : Analysis.DebugAnalysisProvider.CPP
Value: Create: 8007007e on INTELONE
Key : Analysis.DebugData
Value: CreateObject
Key : Analysis.DebugModel
Value: CreateObject
Key : Analysis.Elapsed.Sec
Value: 1
Key : Analysis.Memory.CommitPeak.Mb
Value: 151
Key : Analysis.System
Value: CreateObject
Key : Timeline.OS.Boot.DeltaSec
Value: 64600
Key : Timeline.Process.Start.DeltaSec
Value: 335
NTGLOBALFLAG: 0
PROCESS_BAM_CURRENT_THROTTLED: 0
PROCESS_BAM_PREVIOUS_THROTTLED: 0
APPLICATION_VERIFIER_FLAGS: 0
CONTEXT: (.ecxr)
rax=0000000000000000 rbx=00007ff7c168e5a0 rcx=0000000000000000
rdx=0000000000000000 rsi=0000000000000001 rdi=0000000000000001
rip=00007ff7c13170a4 rsp=0000005ce27ff810 rbp=0000005ce27ffbc8
r8=00007ff7c168ea0c r9=0000005ce27ff190 r10=0000020f291fadc0
r11=0000020f2ec64b10 r12=0000000000000e0d r13=0000020f2e5b7120
r14=0000020f2e9d7690 r15=0000005ce27ff930
iopl=0 nv up ei pl nz na po nc
cs=0033 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00010206
FxSound+0xb70a4:
00007ff7c13170a4 488b01 mov rax,qword ptr [rcx] ds:00000000
00000000=????????????????
Resetting default scope
EXCEPTION_RECORD: (.exr -1)
ExceptionAddress: 00007ff7c13170a4 (FxSound+0x00000000000b70a4)
ExceptionCode: c0000005 (Access violation)
ExceptionFlags: 00000000
NumberParameters: 2
Parameter[0]: 0000000000000000
Parameter[1]: 0000000000000000
Attempt to read from address 0000000000000000
PROCESS_NAME: FxSound.exe
READ_ADDRESS: 0000000000000000
ERROR_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%p referenced memory at 0x%p. The memory could not be %s.
EXCEPTION_CODE_STR: c0000005
EXCEPTION_PARAMETER1: 0000000000000000
EXCEPTION_PARAMETER2: 0000000000000000
STACK_TEXT:
0000005ce27ff810 00007ffc
27f0f4d6 : 0000005ce27ff8b8 00000000
00000001 0000020f2e885bf0 0000020f
2e9d7620 : FxSound+0xb70a4
0000005ce27ff850 00007ffc
27f0ea42 : 0000000000000000 0000005c
e27ff920 0000000000000000 00000000
00000001 : AudioSes!CVolumeChangedEvent::Invoke+0x26
0000005ce27ff880 00007ffc
27f0f6a7 : 0000020f00000000 0000005c
e27ff930 00007ff7c169ad58 00000000
00000001 : AudioSes!CLockedList<ATL::CComPtr,0,0>::ForEachEntry+0xea
0000005ce27ff910 00007ffc
27e14d84 : 0000020f2db94160 0000020f
2e577630 0000000000000000 00000000
00000000 : AudioSes!CAudioEndpointVolume::OnVolumeChangedEvent+0xe7
0000005ce27ff950 00007ffc
31220cd9 : 0000020f2db94160 0000020f
00000b09 0000020f2e5b7120 0000020f
2db94250 : MMDevAPI!CMediaNotifications::OnMediaNotificationWorkerHandler+0x1f4
0000005ce27ffa00 00007ffc
312031ba : 0000020f29120af8 0000020f
2db66500 0000000000000000 0000020f
29120b68 : ntdll!TppSimplepExecuteCallback+0x99
0000005ce27ffa50 00007ffc
2f6a7344 : 0000000000000000 00000000
00000000 0000000000000000 00000000
00000000 : ntdll!TppWorkerThread+0x68a
0000005ce27ffd50 00007ffc
312026b1 : 0000000000000000 00000000
00000000 0000000000000000 00000000
00000000 : kernel32!BaseThreadInitThunk+0x14
0000005ce27ffd80 00000000
00000000 : 0000000000000000 00000000
00000000 0000000000000000 00000000
00000000 : ntdll!RtlUserThreadStart+0x21
SYMBOL_NAME: FxSound+b70a4
MODULE_NAME: FxSound
IMAGE_NAME: FxSound.exe
STACK_COMMAND: ~9s ; .ecxr ; kb
FAILURE_BUCKET_ID: NULL_POINTER_READ_c0000005_FxSound.exe!Unknown
OS_VERSION: 10.0.19041.1
BUILDLAB_STR: vb_release
OSPLATFORM_TYPE: x64
OSNAME: Windows 10
FAILURE_ID_HASH: {1545195b-1d08-84c5-33ee-b8f8b95b6c62}
Followup: MachineOwner