Quod Libet wrongly stays in "paused" state if stopped on song boundary
Note
I'm not sure this is the right place to file the issue — apologies if it could be better routed.
- Fedora 34
pipewire-0.3.31-2
- Default configuration (all config migrated recently to
/usr/share
and no user-generated overrides in${HOME}/.config/pipewire
).- This means
session.suspend-timeout-seconds
is commented out inmedia-session.d/alsa-monitor.conf
(and defaulted to 5?)
- This means
Reproduction Steps
- Set Quod Libet to "stop after current song."
- Allow playback to run out and stop by itself.
- Wait a few seconds. (I previously said "wait a few minutes," but it looks like this can happen almost immediately after the pause event.)
- Attempt to resume playback.
At this point, Quod Libet thinks that it should be playing (and the seek bar reflects this), but no sound is audible.
A workaround that always unsticks me is to pause and play again; the sound will then be audible.
The following graphs were dumped during reproduction.
While playing with a "stop-after" pending:
While paused, having finished the "current" song:
After several minutes have elapsed and I'm about to hit "play:"
After I've hit "play," expecting to hear audio output:
After I've paused again, realizing that audio output was lost:
After I've hit "play" once more, and output is now audible once more:
I note that setting session.suspend-timeout-seconds = 0
in media-session.d/alsa-monitor.conf
(and restarting pipewire
) prevents this issue from happening altogether.
I'd appreciate feedback as to whether I might take this up with the Fedora Pipewire maintainers, the Quod Libet maintainers, or somebody else.