Summary: During normal playlist playback, a track that was gaplessly started from a prefetch is occasionally re-loaded fresh ~10-15s in, restarting it from 0. Intermittent, roughly 1 in 10 tracks. No user skip, no client reconnect.
Setup: go-librespot dev build, audio_backend: pipe, audio_output_pipe_passthrough: true, audio_output_pipe_format: s16le, external_volume: true, volume_steps: 100, credentials.type: zeroconf. Linux ARMv7. The Ogg pipe is consumed by a custom app; the consumer stays attached throughout (no reconnect during the event).
Log (track names are public Spotify tracks, account masked):
20:07:38 prefetched track "Under the Bridge"
20:08:32 (stream) new logical Ogg stream / track boundary for this track
20:08:45 loaded track "Under the Bridge" (paused: false, position: 21ms, prefetched: false)
The second loaded ... prefetched:false for the same track ~13s after it already started is the restart: the player discards the in-flight prefetched track and loads it again from the beginning.
Questions:
- What can trigger a fresh
load of the already-playing prefetched track mid-playback (no skip, no client state change from our side)?
- Is this a known gapless/prefetch state-sync issue?
- Is there a config option to disable prefetch/gapless as a workaround?
Happy to add trace-level logs or test patches.
Summary: During normal playlist playback, a track that was gaplessly started from a prefetch is occasionally re-loaded fresh ~10-15s in, restarting it from 0. Intermittent, roughly 1 in 10 tracks. No user skip, no client reconnect.
Setup: go-librespot dev build,
audio_backend: pipe,audio_output_pipe_passthrough: true,audio_output_pipe_format: s16le,external_volume: true,volume_steps: 100,credentials.type: zeroconf. Linux ARMv7. The Ogg pipe is consumed by a custom app; the consumer stays attached throughout (no reconnect during the event).Log (track names are public Spotify tracks, account masked):
The second
loaded ... prefetched:falsefor the same track ~13s after it already started is the restart: the player discards the in-flight prefetched track and loads it again from the beginning.Questions:
loadof the already-playing prefetched track mid-playback (no skip, no client state change from our side)?Happy to add trace-level logs or test patches.