diff --git a/src/decoder/plugins/FlacInput.cxx b/src/decoder/plugins/FlacInput.cxx index 258e977c3..1d167a1fa 100644 --- a/src/decoder/plugins/FlacInput.cxx +++ b/src/decoder/plugins/FlacInput.cxx @@ -31,6 +31,11 @@ FlacInput::Read(FLAC__byte buffer[], size_t *bytes) noexcept inline FLAC__StreamDecoderSeekStatus FlacInput::Seek(FLAC__uint64 absolute_byte_offset) noexcept { + if (client != nullptr && client->GetCommand() == DecoderCommand::STOP) + /* do not seek if we're supposed to stop playback (or + if an error has occurred) */ + return FLAC__STREAM_DECODER_SEEK_STATUS_ERROR; + if (!input_stream.IsSeekable()) return FLAC__STREAM_DECODER_SEEK_STATUS_UNSUPPORTED;