From 915d1d0738c1327d30ad1d2a9d58fa96fb136db8 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Sat, 26 Dec 2009 01:10:23 +0100 Subject: decoder_thread: eliminate jitter after seek failure Don't clear the music pipe when seeking has failed - check the "seeking" flag instead of "command==SEEK". Clear the "seeking" flag in decoder_seek_error(). --- src/decoder_api.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src') 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); } -- cgit v1.2.3