Call audio broken on PinePhone with pulseaudio 17 / pipewire 1.2.0 upgrade
pine64-pinephone, Edge
I hit this on Phosh but @alaraajavamma also hit it on SXMO.
pipewire-1.2.0r0, wireplumber-0.5.5-r0
(pulseaudio-17.0-r1 currently crashes due to the assert mentioned in #2883 (closed) , which will be fixed by https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/68586 . Once it's fixed, it too will have the same behavior as pipewire-pulse below.)
Card profiles are emitted like this:
$ pactl list cards
...
Profiles:
HiFi (Headphones, Headset): Play HiFi quality music (Headphones, Headset) (sinks: 1, sources: 1, priority: 9000, available: no)
HiFi (Headset, Speaker): Play HiFi quality music (Headset, Speaker) (sinks: 1, sources: 1, priority: 8800, available: no)
HiFi (Earpiece, Headset): Play HiFi quality music (Earpiece, Headset) (sinks: 1, sources: 1, priority: 8700, available: no)
HiFi (Headphones, Mic): Play HiFi quality music (Headphones, Mic) (sinks: 1, sources: 1, priority: 8600, available: no)
HiFi (Mic, Speaker): Play HiFi quality music (Mic, Speaker) (sinks: 1, sources: 1, priority: 8400, available: yes)
HiFi (Earpiece, Mic): Play HiFi quality music (Earpiece, Mic) (sinks: 1, sources: 1, priority: 8300, available: yes)
Voice Call (Earpiece, Headset): Make a phone call (Earpiece, Headset) (sinks: 1, sources: 1, priority: 5000, available: no)
Voice Call (Headphones, Headset): Make a phone call (Headphones, Headset) (sinks: 1, sources: 1, priority: 5000, available: no)
off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
Voice Call (Headset, Speaker): Make a phone call (Headset, Speaker) (sinks: 1, sources: 1, priority: 4800, available: no)
Voice Call (Earpiece, Mic): Make a phone call (Earpiece, Mic) (sinks: 1, sources: 1, priority: 4700, available: yes)
Voice Call (Headphones, Mic): Make a phone call (Headphones, Mic) (sinks: 1, sources: 1, priority: 4700, available: no)
Voice Call (Mic, Speaker): Make a phone call (Mic, Speaker) (sinks: 1, sources: 1, priority: 4500, available: yes)
pro-audio: Pro Audio (sinks: 1, sources: 1, priority: 1, available: yes)
Correct output with pipewire-1.0.6-r6:
Profiles:
HiFi: Play HiFi quality music (sinks: 1, sources: 1, priority: 8000, available: yes)
Voice Call: Make a phone call (sinks: 1, sources: 1, priority: 4000, available: yes)
off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
pro-audio: Pro Audio (sinks: 1, sources: 1, priority: 1, available: yes)
callaudiod cannot deal with these new profiles so switching audio in the call doesn't work. Disabling callaudiod and setting the profile manually with pactl
does work.
Downgrading pipewire to 1.0.6-r6 fixes the problem, except that it also requires wireplumber to be recompiled against the downgraded pipewire-dev, otherwise wireplumber crashes with:
Error relocating /usr/lib/libwireplumber-0.5.so.0: pw_log_set_level_string: symbol not found
callaudiod issue: https://gitlab.com/mobian1/callaudiod/-/issues/35
pipewire issue: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/4090