On 2020-12-21 3:31 a.m., Tom Hughes via devel wrote:
On 20/11/2020 16:26, Ben Cotton wrote:
> == Summary ==
> This change proposal is to route all audio from PulseAudio and JACK to
> the PipeWire Audio
> daemon by default.
So I tried this in F33 with the packages from updates-testing
and I'm afraid to say it didn't end well...
> Audio functionality should be like it was before with the Pulseaudio
> daemon. Some things to verify:
>
> - patcl info should now list: Server Name: PulseAudio (on PipeWire
> 0.3.x)
As pactl was removed by the switch I couldn't test this.
pactl command is still present after replacing pulseaudio by
pipewire-pulseaudio.
pactl info
Server String: /run/user/1000/pulse/native
Library Protocol Version: 34
Server Protocol Version: 34
Is Local: yes
Client Index: 78
Tile Size: 65472
Server Name: PulseAudio (on PipeWire 0.3.18)
Server Version: 14.0.0
Default Sample Specification: float32le 2ch 48000Hz
Default Channel Map: front-left,front-right
Default Sink: alsa_output.pci-0000:03:00.6.analog-stereo
Default Source: alsa_input.pci-0000:03:00.6.analog-stereo
Cookie: 5667:4fbd
> - gnome-control-center: check the audio tab, check the volume sliders
> and do the audio channel test. Change the card profile, plug/unplug
> headphones and observe correct
> switch.
This worked initially, but see later.
> - pavucontrol: check volumes in the input devices tabs and check the
> microphone volumes
Didn't test this.
Worked fine.
> - firefox: check out a website with audio/video such as youtube and
> verify that audio works as
> usual. Check out a website with a video chat test page
> (
bluejeans.com/111).
Didn't test this.
Works.
> - rhythmbox: check if playback works as expected
This worked initially, but see later.
Works here.
> - bluetooth devices, connect as usual and verify working behaviour
> with PipeWire. Check volume changes etc.
I was unable to get this to work.
Works with Galaxy Buds+ as highlighted below:
pactl info
Server String: /run/user/1000/pulse/native
Library Protocol Version: 34
Server Protocol Version: 34
Is Local: yes
Client Index: 97
Tile Size: 65472
Server Name: PulseAudio (on PipeWire 0.3.18)
Server Version: 14.0.0
Default Sample Specification: float32le 2ch 48000Hz
Default Channel Map: front-left,front-right
Default Sink: api.bluez5.a2dp.sink.Galaxy Buds+ (11C1)
Default Source: alsa_input.pci-0000:03:00.6.analog-stereo
Cookie: 4766:6514
The first problem is that bluetooth is not actually enabled
by default so you have to edit /etc/pipewire/pipewire.conf and
tell it to add "-e bluez5" when starting the session manager.
Which version of pipewire was used on your system? Pipewire 0.3.18
enabled a bluetooth headphone i.e. Galaxy Buds+ with issue related to
resuming for the reopened lid of a laptop. Workaround is with the
command for terminal "systemctl --user restart pipewire.service
pipewire-pulse.service". See attached pipewire.conf with include bleuz5
enabled by default.
After that my headphones who show up as a device in pw-cli
but not as a target I could send sound to.
An example with Galaxy Buds+:
id 84, type PipeWire:Interface:Node/3
factory.id = "7"
client.id = "31"
device.id = "83"
node.description = "Galaxy Buds+ (11C1)"
node.name = "api.bluez5.a2dp.sink.Galaxy Buds+ (11C1)"
media.class = "Audio/Sink"
id 85, type PipeWire:Interface:Port/3
object.path = "Galaxy Buds+ (11C1):playback_0"
format.dsp = "32 bit float mono audio"
node.id = "84"
audio.channel = "FL"
port.name = "playback_FL"
port.direction = "in"
port.physical = "true"
port.terminal = "true"
port.alias = "Galaxy Buds+ (11C1):playback_FL"
id 86, type PipeWire:Interface:Port/3
object.path = "Galaxy Buds+ (11C1):monitor_0"
format.dsp = "32 bit float mono audio"
node.id = "84"
audio.channel = "FL"
port.name = "monitor_FL"
port.direction = "out"
port.alias = "Galaxy Buds+ (11C1):monitor_FL"
id 87, type PipeWire:Interface:Port/3
object.path = "Galaxy Buds+ (11C1):playback_1"
format.dsp = "32 bit float mono audio"
node.id = "84"
audio.channel = "FR"
port.name = "playback_FR"
port.direction = "in"
port.physical = "true"
port.terminal = "true"
port.alias = "Galaxy Buds+ (11C1):playback_FR"
id 88, type PipeWire:Interface:Port/3
object.path = "Galaxy Buds+ (11C1):monitor_1"
format.dsp = "32 bit float mono audio"
node.id = "84"
audio.channel = "FR"
port.name = "monitor_FR"
port.direction = "out"
port.alias = "Galaxy Buds+ (11C1):monitor_FR"
The final straw though was that fast user switching seems to
completely break it. I assume that the daemon doesn't release
the audio device when you switch to a different desktop to
something because once I started a second session things got
horribly confused and I wound up with one desktop where audio
worked and one where it didn't work at all.
No issue on my desktop running Rawhide. Maybe some issues are user error
like using old version of pipewire. Update your system and make sure
pipewire version is 0.3.18 whose pipewire-pulseaudio properly handle
dependencies. Should you see Steam from RPM Fusion being removed, grab
the latest version from their Koji page which fixes the problem.
--
Luya Tshimbalanga
Fedora Design Team
Fedora Design Suite maintainer