[pulseaudio-discuss] [PATCH 2/3] module-port-manager: Add new port manager module

Alexander E. Patrakov patrakov at gmail.com
Tue Mar 10 12:42:22 PDT 2015


10.03.2015 23:28, Alexander E. Patrakov wrote:
> I have read the rest of the patch, and could not find anything 
> obviously wrong. But I have not tested it, either, so it is not an 
> "ack" yet. I intend to do some testing in the next hour and also 
> tomorrow.
>

OK, first log of meaningless-random-monkey testing on my desktop PC.

I have two Intel HDA soundcards - one for analog + spdif, and one for 
HDMI, with three outputs. The Dell monitor is connected to HDMI 1, HDMI 
2 is unused, and the LG TV is connected to HDMI 3. The Dell monitor is 
capable of accepting audio over HDMI, but I don't use this capability. 
The LG TV, obviously, can play sounds, and I use it sometimes. There is 
also a Logitech webcam.

Initially, before killing the old copy of pulseaudio, the analog 
soundcard was using the Analog Stereo Duplex profile, my headphones were 
plugged in, and HDMI card was using Digital Stereo (HDMI 3) output 
(unplugged, because the LG TV was initially powered off).

So, I killed pulseaudio, it got restarted and loaded the new module. 
Result: the profiles stayed the same.

I started VLC and opened an audio file. It started playing from analog 
headphones. Then I turned the TV on, thus making its port available. 
Result: the profiles did not change, the audio continued from 
headphones, but pavucontrol noticed that HDMI3 is now plugged in.

So far, the module lists all sink-related stuff as "(auto)".

I unplugged the headphones, just to see what happens. Result: it changed 
the profile of the HDMI card to Digital Stereo (HDMI) output, but did 
not move VLC output there. For me, it's rather incomplete. Or rather, 
the module should have noticed that there is already a non-default 
profile selected from prehistoric times, and bump its port priority.

I manually switched the profile to Digital Stereo (HDMI 3) output, then 
moved VLC output to the TV.

Then I plugged my headphones back in. Result: nothing changed, and the 
log still lists all output-related entries as "(auto)".

Moved to analog output. Read the description - oh, I am supposed to mark 
the sink as default for the module to notice.

Marked the analog output as a fallback sink (but it was already). Turned 
the TV off. Still all "(auto)".

Turned the TV on. Marked HDMI3 as fallback - yes, the module noticed and 
marked it as manual!

Moved VLC there.

Marked the analog sink as fallback, marked HDMI3 as fallback again. Result:

D: [pulseaudio] module-port-manager.c: Current contents of port-manager 
list 'output':
D: [pulseaudio] module-port-manager.c:     5900 (auto) Y: 
card:alsa_card.pci-0000_00_03.0+port:hdmi-output-0
D: [pulseaudio] module-port-manager.c:     5800 (auto) N: 
card:alsa_card.pci-0000_00_03.0+port:hdmi-output-1
D: [pulseaudio] module-port-manager.c:     9903 manual Y: 
card:alsa_card.pci-0000_00_03.0+port:hdmi-output-2
D: [pulseaudio] module-port-manager.c:     9902 manual Y: 
card:alsa_card.pci-0000_00_1b.0+port:analog-output-lineout
D: [pulseaudio] module-port-manager.c:        0 (auto) Y: 
card:alsa_card.pci-0000_00_1b.0+port:iec958-stereo-output
D: [pulseaudio] module-port-manager.c:   The best one available is: 
card:alsa_card.pci-0000_00_03.0+port:hdmi-output-2

Turned the TV off. Result:

D: [pulseaudio] module-port-manager.c: Current contents of port-manager 
list 'output':
D: [pulseaudio] module-port-manager.c:     5900 (auto) Y: 
card:alsa_card.pci-0000_00_03.0+port:hdmi-output-0
D: [pulseaudio] module-port-manager.c:     5800 (auto) N: 
card:alsa_card.pci-0000_00_03.0+port:hdmi-output-1
D: [pulseaudio] module-port-manager.c:     9903 manual N: 
card:alsa_card.pci-0000_00_03.0+port:hdmi-output-2
D: [pulseaudio] module-port-manager.c:     9902 manual Y: 
card:alsa_card.pci-0000_00_1b.0+port:analog-output-lineout
D: [pulseaudio] module-port-manager.c:        0 (auto) Y: 
card:alsa_card.pci-0000_00_1b.0+port:iec958-stereo-output
D: [pulseaudio] module-port-manager.c:   The best one available is: 
card:alsa_card.pci-0000_00_1b.0+port:analog-output-lineout

...but VLC was still playing to the unavailable HDMI3 port.

Same result with mpv - when switching the TV on and off, the module does 
not move existing streams from unavailable ports, and its only effect 
seems to be printing of the best output to the log. It does not route 
new streams from either mpv or from VLC to there - probably because I 
moved them in the past, and there is a saved module-stream-restore entry 
about that.

So it may be a good idea to retest the new module without 
module-stream-restore. I will do that tomorrow.

-- 
Alexander E. Patrakov


More information about the pulseaudio-discuss mailing list