Delay and skipping when seeking FLAC files using new FLAC 1.4.0 release
Describe your issue
I use multiple applications that use Gstreamer as a backend to play music: Quod Libet, Gmusicbrowser and KDE's Dolphin (using Gstreamer as the backend for Phonon).
When "seeking" to a later part of a track encoded in FLAC, I get silence for a few seconds, then it skips to the specified time, then it skips again to the future time the seek bar progressed to. This does not occur on MP3 files.
This happens across all three applications, and the only common thing they have is that Gstreamer is used as a backend.
I had downgraded Gstreamer and the installed libraries from 1.20.3 to 1.20.2, and the issue no longer occurred.
When seeking to the later spot, it should instantly skip to the specified part with no problems.
Silence for a few seconds, then the part of the track starts playing, then as the seek bar was still progressing, it skips again to wherever the seek bar is currently at.
- Operating System: Arch Linux (rolling release), Linux 5.19.12-arch1-1
- GStreamer Version: 1.20.3
Steps to reproduce the bug
- Install a music player that uses Gstreamer 1.20.3 as the backend.
- Play a FLAC file.
- Skip to a future part of the file being played.
How reproducible is the bug?
Always, and on all three applications I have tested.
Solutions you have tried
I have tried solutions on Quod Libet, such as increasing the buffer, disabling gapless playback and disabling ReplayGain. This did not change anything.
Downgrading to 1.20.2 fixed the problem.
Running Quod Libet with
--debug will print out "recalcuate latency" when seeking.
This issue from Quod Libet's GitHub may be relevant as well: https://github.com/quodlibet/quodlibet/issues/4159
The user is running Quod Libet on Windows 10 21H2, and they find that when playing MP3 songs consecutively, the next song goes silent. This is worked around by disabling gapless playback. This seems similar to an issue I observed with the Soundtouch plugin, but the user requested I post it here as well, as it has something to do with the "recalculate latency" output from Quod Libet.