From 73cff374fd94a1c16e0201fcda020396c0f41962 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Fri, 30 Oct 2009 16:28:15 +0100 Subject: {player,output}_thread: fixed elapsed_time quirks Right after seeking and song change, the elapsed_time shows old information, because the output thread didn't finish a full chunk yet. This patch re-adds a second elapsed_time variable, and keeps track of a fallback value, in case the output thread can't provide a reliable value. --- src/output_all.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src/output_all.c') diff --git a/src/output_all.c b/src/output_all.c index 05cd1d350..08f4ee0dc 100644 --- a/src/output_all.c +++ b/src/output_all.c @@ -55,7 +55,7 @@ static struct music_pipe *g_mp; /** * The "elapsed_time" stamp of the most recently finished chunk. */ -static float audio_output_all_elapsed_time; +static float audio_output_all_elapsed_time = -1.0; unsigned int audio_output_count(void) { @@ -482,6 +482,8 @@ audio_output_all_cancel(void) if (g_mp != NULL) music_pipe_clear(g_mp, g_music_buffer); + + audio_output_all_elapsed_time = -1.0; } void @@ -498,12 +500,13 @@ audio_output_all_close(void) music_pipe_clear(g_mp, g_music_buffer); music_pipe_free(g_mp); g_mp = NULL; - audio_output_all_elapsed_time = 0.0; } g_music_buffer = NULL; audio_format_clear(&input_audio_format); + + audio_output_all_elapsed_time = -1.0; } float -- cgit v1.2.3