No Audio on AirPlay 1 Device (raop, latest master)
- PipeWire version (
pipewire --version
): latest master (commit hash: baa54976): - Distribution and distribution version (
PRETTY_NAME
from/etc/os-release
): Manjaro ARM - Desktop Environment: Phosh
- Kernel version (
uname -r
): 6.3.8-1-MANJARO-ARM
Description of Problem:
I cannot play audio on my AirPlay 1 JAM Symphony speaker. When I try to select it in my system sound settings app or pavucontrol, my selection reverts to the previously-selected audio device. I cannot tap the speaker in the GNOME "audio test" window. Forcing audio redirection with pactl just silences sound until I select a different output device.
How Reproducible:
Every time
Steps to Reproduce:
To force the device to try to play audio out of it, I started an instrumented libpipewire-module-raop-discover instance as follows:
PIPEWIRE_LOG_SYSTEMD=false PIPEWIRE_DEBUG=*:3,mod.raop*:5,pw.rtsp-client*:5 ~/remote_gui.sh pw-cli -m load-module libpipewire-module-raop-discover raop.latency.ms=5000
Then, I explicitly redirected audio to it while playing a video in Firefox as follows:
[nicholasroth@manjaro-arm pipewire]$ ~/remote_gui.sh pactl list short sinks
43 raop_sink.Sonos-347E5C9D632F.local.ipv6 PipeWire s16le 2ch 44100Hz IDLE
45 raop_sink.Sonos-347E5C9D632F.local.ipv4 PipeWire s16le 2ch 44100Hz IDLE
46 raop_sink.JAM\032SYMPHONY_4898-2.local.ipv4 PipeWire s16le 2ch 44100Hz RUNNING
80 alsa_output.platform-rt5640-sound.HiFi__hw_PinePhonePro__sink PipeWire s24-32le 2ch 44100Hz IDLE
721 raop_sink.Sonos-347E5C9D632F.local.ipv4 PipeWire s16le 2ch 44100Hz IDLE
722 raop_sink.JAM\032SYMPHONY_4898-2.local.ipv4 PipeWire s16le 2ch 44100Hz IDLE
723 raop_sink.Sonos-347E5C9D632F.local.ipv6 PipeWire s16le 2ch 44100Hz IDLE
[nicholasroth@manjaro-arm pipewire]$ ~/remote_gui.sh pactl list short sink-inputs
691 46 238 PipeWire float32le 2ch 48000Hz
[nicholasroth@manjaro-arm pipewire]$ ~/remote_gui.sh pactl move-sink-input 691 722
[nicholasroth@manjaro-arm pipewire]$ ~/remote_gui.sh pactl list short sinks
43 raop_sink.Sonos-347E5C9D632F.local.ipv6 PipeWire s16le 2ch 44100Hz IDLE
45 raop_sink.Sonos-347E5C9D632F.local.ipv4 PipeWire s16le 2ch 44100Hz IDLE
46 raop_sink.JAM\032SYMPHONY_4898-2.local.ipv4 PipeWire s16le 2ch 44100Hz IDLE
80 alsa_output.platform-rt5640-sound.HiFi__hw_PinePhonePro__sink PipeWire s24-32le 2ch 44100Hz IDLE
721 raop_sink.Sonos-347E5C9D632F.local.ipv4 PipeWire s16le 2ch 44100Hz IDLE
722 raop_sink.JAM\032SYMPHONY_4898-2.local.ipv4 PipeWire s16le 2ch 44100Hz RUNNING
723 raop_sink.Sonos-347E5C9D632F.local.ipv6 PipeWire s16le 2ch 44100Hz IDLE
Actual Results:
- The GNOME GUI and pavucontrol indicate an inability to connect by not unselecting the current audio output device when I try to switch outputs
- When I force it to stream to an instrumented libpipewire-module-raop-discover instance with
pactl move-sink-input
, the sound just goes quiet until I kill the instrumented instance and sound reverts to the device speakers
Expected Results:
When I try to select my JAM Symphony smart speaker as an output device while watching a video, the sound should play out of the smart speaker.
Additional Info (as attachments):
- My Sonos soundbar is affected by a separate PipeWire RAOP issue #3210 (closed)
- Capture log: pipewire_fail.log
-
pw-dump > pw-dump.log
: pw-dump.log
Packet Captures:
I am attaching packet captures from both pulseaudio (working) and pipewire (not working) here. Note that during the pulseaudio packet capture, sound played for ~1s on the device, then firefox no longer registered as an audio source in pactl. I de-selected and re-selected the speaker in the Settings app, restarted Firefox, opened the video again, and it played normally. I recorded all of that in the pcap file. The pipewire test followed the procedure in "Steps to Reproduce".