Node/Device channelVolumes is not correctly reported by pw-dump
- PipeWire version (
pipewire --version
):
pipewire
Compiled with libpipewire 1.0.6
Linked with libpipewire 1.0.6
- Distribution and distribution version (
PRETTY_NAME
from/etc/os-release
):Fedora Linux 40 (Forty)
- Desktop Environment: None (AwesomeWM from bare xinit)
- Kernel version (
uname -r
):6.8.10-300.fc40.x86_64
Description of Problem:
After changing a Device's profile, pw-dump
will report incorrect volume levels differently between Device and Node values.
How Reproducible:
Always.
Steps to Reproduce:
- Dump info about an Object e.g.
pw-dump "alsa_output...analog-stereo.3"
orpw-dump "alsa_card..."
- Change the Device's profile e.g. using
pavucontrol
select another profile under the Configuration tab. - Dump info about the Object again e.g.
pw-dump "alsa_output...pro-output-0"
orpw-dump "alsa_card..."
Actual Results:
This problem behaves differently depending on whether you dump info about a Device or a Node:
Watching a Device's .[].info.params.Route.[].props.channelVolumes
from pw-dump <Device ID>
:
- Changing back and forth between profiles with a valid Port, the reported Volumes are always correct.
- After changing to something without a valid Port, the reported Volumes are those of the last profile with a valid Port.
- Changing the volume level of a profile without a Port does nothing, the reported Volumes are still those of the last Profile with a Port.
Watching a Node's .[].info.params.Props.[].channelVolumes
from pw-dump <Node-ID>
:
- Changing back and forth between profiles with a valid Port, the reported Volumes are always 1.00 (100%)
- After changing to a profile without a valid Port, the reported Volume is correct.
- After changing the volume once, the reported Volume is now correct.
In all cases, wpctl get-volume @DEFAULT_SINK@
always shows the correct Volume.
Expected Results:
That the correct Volume level is reported for devices and Nodes.
Edited by Ben Nava