[pulseaudio-discuss] Audio APP (sink-input) bind to the sink with only unplugged hdmi-audio ports on it
Hui Wang
hui.wang at canonical.com
Sun Sep 30 07:03:31 UTC 2018
This issue is also reported to:
https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/579
Recently we found a weird issue on many laptops with the ubuntu 18.04,
it uses the pulseaudio-11.1 (I guess the PA of the latest version also
has this problem). The issue is like this:
1. boot the system up without plugging a hdmi monitor
2. run an audio app to play sound (e.g. $speaker-test)
3. the sound outputs from analog-speaker
4. plug a monitor with audio capability (through DP or HDMI port)
5. the sound still outputs from analog-speaker
6. open sound-setting (gnome-control-center --> choose sound), you will
see two output devies: speaker and HDMI audio
7. choose HDMI audio, the sound will switch to HDIM audio from speaker
(pa will remember speaker-test prefer to use hdmi-audio sink)
8. unplug the monitor, the default-sink is switching to analog-speaker,
but the sound of speaker-test still route to hdmi-audio sink
9. run other sound apps, they all route sound to default sink
(analog-speaker), but speaker-test always routes to hdmi-audio sink,
as a result, speaker-test can't output sound anymore unless we
replug a monitor with audio capability then the speaker-test output
from hdmi-audio again.
10. if we want the speaker-test to route to analog-speaker, two ways:
run pacmd move-sink-input or plug a monitor, after two audio devices
(hdmi audio and speaker) show up in the sound-setting, select
analog-speaker manually.
This issue only happens on the laptops with 2 audio cards, analog
devices on one card, hdmi audio on the other card. This kind of laptops
are very common, like I+A (Intel graphic + Amd Graphic), I+N(Intel +
Nvidia), and A AMD.
This issue will not happen on the laptops with only Intel graphic card,
since both analog and hdmi audio belong to one sound card. When hdmi
monitor is unplugged, the hdmi sink will be removed from PA, then all
sink-inputs will route to the only left sink: analog-sink.
This issue will not happen on BT or USB audio. Unlike hdmi audio, BT and
USB audio cards will be removed totally from PA when they are
unpluged/unconnected, so they don't have this issue as well.
The root cause of this issue is although the hdmi monitor is unplugged,
the hdmi-sink still exists, and sink-input is selected by user to bind
to this sink, so the pa doesn't care about if this sink has valid port
or not, it bind the sink-input to this sink unconditionally.
Maybe we could improve it like this: if the user selected sink only has
available_no ports, the pa will switch all sink-inputs of this sink to
other sinks (like default_sink) temporarily, once the selected sink has
availble ports, all sink-inputs switch back to this sink.
Any good ideas?
Thanks,
Hui.
More information about the pulseaudio-discuss
mailing list