FS#76120 - [flac][gstreamer] Pausing and skipping on FLAC when seeking on 1.20.3-2, but not on 1.20.3-1

Attached to Project: Arch Linux
Opened by Flaky (Flaky) - Wednesday, 05 October 2022, 21:45 GMT
Last edited by Toolybird (Toolybird) - Saturday, 15 October 2022, 21:03 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Jan Alexander Steffens (heftig)
Architecture All
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No


I use multiple applications that use Gstreamer as a backend to play audio: 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. Not even changing the audio server makes a difference, I've switched between PulseAudio and PipeWire and it still does this bug.

Running then seeking a FLAC file on gst-play-1.0 on 1.20.3-2 results in this output being printed several times:

WARNING received more decoded frames 1 than provided 0
WARNING debug information: ../gstreamer/subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c(1415): gst_audio_decoder_finish_frame_or_subframe (): /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstFlacDec:flacdec0

I had downgraded Gstreamer and the installed libraries from 1.20.3-2 to 1.20.3-1, and the issue no longer occurred. This seems like an issue with how Arch had packaged Gstreamer, rather than upstream Gstreamer itself.

Additional info:
* Upstream bug report: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1475

Steps to reproduce:
1. Install Gstreamer 1.20.3-2 + an audio player of choice that uses Gstreamer
2. Play a FLAC file.
3. Seek into a later part of the file.
This task depends upon

Closed by  Toolybird (Toolybird)
Saturday, 15 October 2022, 21:03 GMT
Reason for closing:  Fixed
Additional comments about closing:  flac 1.4.1-2
Comment by Toolybird (Toolybird) - Wednesday, 05 October 2022, 23:44 GMT
The gstreamer 1.20.3-2 rebuild was for new flac 1.4.1-1. Therefore the problem is likely with flac. You should probably report this upstream to the flac developers.
Comment by Adam Fontenot (amfontenot) - Thursday, 06 October 2022, 04:24 GMT
Over on the gstreamer bug tracker, I bisected the changes to FLAC and found the cause of the breakage. https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1475#note_1580212

Edit: I've also filed a bug with FLAC. Even if they don't want to revert the change that caused this issue, it should probably be better documented. https://github.com/xiph/flac/issues/471
Comment by Flaky (Flaky) - Thursday, 06 October 2022, 10:21 GMT
Alright - thank you!
Comment by Jan Alexander Steffens (heftig) - Sunday, 09 October 2022, 10:22 GMT
Should be fixed in 1.4.1-2