diff --git a/NEWS b/NEWS index 24ded72e2..4134ea085 100644 --- a/NEWS +++ b/NEWS @@ -8,6 +8,7 @@ ver 0.15.7 (2009/??/??) * tags: - id3: fix ID3v1 charset conversion * decoders: + - eliminate jitter after seek failure - ffmpeg: don't try to force stereo - wavpack: allow fine-grained seeking * mixer: explicitly close all mixers on shutdown diff --git a/src/decoder_api.c b/src/decoder_api.c index 2ece3bb98..c696ba101 100644 --- a/src/decoder_api.c +++ b/src/decoder_api.c @@ -93,7 +93,9 @@ void decoder_command_finished(G_GNUC_UNUSED struct decoder * decoder) dc.seek_error || decoder->seeking); assert(dc.pipe != NULL); - if (dc.command == DECODE_COMMAND_SEEK) { + if (decoder->seeking) { + decoder->seeking = false; + /* delete frames from the old song position */ if (decoder->chunk != NULL) { @@ -124,6 +126,8 @@ void decoder_seek_error(struct decoder * decoder) assert(dc.pipe != NULL); dc.seek_error = true; + decoder->seeking = false; + decoder_command_finished(decoder); }