From 01cf7feac7bef8b28605b98ef1e7438a995fc554 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Fri, 6 Mar 2009 00:42:03 +0100 Subject: pipe: added music_buffer, rewrite music_pipe Turn the music_pipe into a simple music_chunk queue. The music_chunk allocation code is moved to music_buffer, and is now managed with a linked list instead of a ring buffer. Two separate music_pipe objects are used by the decoder for the "current" and the "next" song, which greatly simplifies the cross-fading code. --- src/decoder_thread.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'src/decoder_thread.c') diff --git a/src/decoder_thread.c b/src/decoder_thread.c index 97e92d295..a48f4160b 100644 --- a/src/decoder_thread.c +++ b/src/decoder_thread.c @@ -196,9 +196,8 @@ static void decoder_run_song(const struct song *song, const char *uri) pcm_convert_deinit(&decoder.conv_state); /* flush the last chunk */ - if (decoder.chunk != NULL && - decoder_flush_chunk(&decoder, NULL) != DECODE_COMMAND_NONE) - music_pipe_cancel(decoder.chunk); + if (decoder.chunk != NULL) + decoder_flush_chunk(&decoder); if (close_instream) input_stream_close(&input_stream); -- cgit v1.2.3