mpv icon indicating copy to clipboard operation
mpv copied to clipboard

ao_pipewire: remove the `node.always-process` attribute

Open nagisa opened this issue 1 month ago • 2 comments

With node.always-process mpv will force pipewire to continuously keep driving the source node, even when paused, which causes a relatively significant increase in power consumption due to frequent CPU wakeups.

I have tested mpv with this option disabled, both for music and video, pausing and seeking around in various ways and could not notice any problems with this option disabled. And with it disabled pipewire properly becomes idle a couple seconds after video/audio is paused.

Pipewire documentation suggests that this option is largely useful for JACK clients, which mpv isn't. Using GitHub-wide search it seems like the other two notable uses of this property are really just SDL and OpenAL. All other applications I use work well without this property being set as well.

Note that this change does not affect the output devices differently as far as I can tell. Both with and without always-process pipewire will suspend the output device after some idle time and in case always-process is enabled, it will redirect mpv to Dummy-Driver instead.

nagisa avatar Jan 12 '26 19:01 nagisa

If it turns out that there is in fact a good reason to have this property enabled, I would like to explore adding an option to toggle this. But I was not able to find any discussion and this particular option is being set since the initial introduction of the ao_pipewire (where no clear reason was provided).

The CI failure can't possibly be related to this PR.

nagisa avatar Jan 12 '26 19:01 nagisa

This looks good to me but pinging @t-8ch since he knows more about Pipewire than me

llyyr avatar Jan 13 '26 01:01 llyyr

I am not sure why it was added. Everything works fine without it for me, too.

t-8ch avatar Jan 13 '26 07:01 t-8ch