decoder/API: check initial_seek_running in _check_cancel_read()
The "seeking" flag is not set for the initial seek, and so decoder_read() could be canceled when another SEEK was emitted during initial seek. This fixes several seek problems, for example the one reported for the FLAC decoder plugin: https://bugs.musicpd.org/view.php?id=4552
This commit is contained in:
@@ -301,7 +301,8 @@ decoder_check_cancel_read(const Decoder *decoder)
|
||||
/* ignore the SEEK command during initialization, the plugin
|
||||
should handle that after it has initialized successfully */
|
||||
if (dc.command == DecoderCommand::SEEK &&
|
||||
(dc.state == DecoderState::START || decoder->seeking))
|
||||
(dc.state == DecoderState::START || decoder->seeking ||
|
||||
decoder->initial_seek_running))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
|
Reference in New Issue
Block a user