pulseaudio 13.99.1 forgets program-to-device associations
Straight copy&paste from my Fedora bug - https://bugzilla.redhat.com/show_bug.cgi?id=1818570 (I was asked to report upstream)
I have mpv and similar programs set to play sound through HDMI out to the TV, while other programs (displaying on my monitor) play through speakers on this desk. Standard setup, I think.
With PulseAudio 13.0, if I disable the HDMI out [1], the program switches to the PC speakers, and then if I re-enable HDMI audio [2], the program moves back to the TV speakers, just as I expect, PA respects user's setting.
With PulseAudio 13.99.1, when a program set to play on the TV is rerouted to the default device (either disabling that sink while stream is playing OR starting the program with that output disabled), it will FORGET its setting and from then on, will always play on the default output, disregarding if the TV out is on or off.
I also have Audacity set to play through my USB condenser microphone's headphone output (for monitoring / delay compensation), but I normally don't have the USB device connected. So again - if I let it pass through PulseAudio, it will require constant switching to the USB device and PA will keep forgetting the setting.
Reading https://www.freedesktop.org/wiki/Software/PulseAudio/Notes/14.0/ I suspect this is the reason: "Moving a stream to the default sink removes the "manually routed" status of the stream"
The description on the wiki says: "When a stream is playing to a non-default sink and the user moves it to the current default sink, that is now interpreted as a request to remove the "manually routed" status from the stream".
The bug is that it's NOT THE USER moving the stream to the default sink. It's PulseAudio itself. And yet it still removes the manually routed status.
The best way of solving the previous "issue", would be to add an option of "use default" to programs like pavucontrol (this is what Windows does IIRC). The current work-around is acceptable (even if confusing to the user), but only if it removes the "manual route" when the user switches sink for the stream manually, not when PA does it automatically (which in my case is exactly when I don't want the setting to be forgotten :))
I've downgraded PulseAudio to 13.0 for the time being, but really hope this can be fixed before 14.0 release.
[1] Basically: xrandr --output HDMI-0 --off; pacmd set-card-profile alsa_card.pci-0000_01_00.1 off
[2] again xrandr for video + pacmd set-card-profile alsa_card.pci-0000_01_00.1 output:hdmi-stereo-extra1