Compat layer not tracking default sound device properly in pipewire
this issue can be reproduced in furnace chiptune tracker using sdl backend
reproduction steps: open furnace (my device is an HP Victus-15 fb2082wm laptop) make sure you are using sdl backend plug a headphone in
Expected result (as seen in sdl2): device auto switches
Actual result:
sound stops and you have to specify device manually instead of the
This reproduces for me here, I'm looking into it.
Wait, this doesn't reproduce for me, after all...it's just choosing a wrong default device at the system level (in my case, "Built-in Audio Digital Stereo (IEC958)", which doesn't have anything plugged into it, instead of the HDMI port, but appears to have migrated to it and played audio on it. When I plugged the USB headphones back in, it jumps correctly back to it.
Can you confirm that isn't what's happening to you? When it fails to play when headphones are plugged in, did the system actually switch to it? (the "Output Device" part in this screenshot...)
I'm assuming you're using <System default> for the device in Furnace. If you're not, I'm totally researching the wrong thing here.
pipewire itself does switch to the proper device, the SDL2 app (furnace in this case) doesn't
And furnace is definitely trying <System default>, right?
yes
This still doesn't reproduce for me, but it's possible https://github.com/libsdl-org/SDL/commit/4c035a1fd8d00a9d364d175f88af1fef0c6c5d66 will fix (or workaround) the problem.
this issue seems to have been fixed now