aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder_internal.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2009-03-07decoder_internal: don't push empty chunk into pipeMax Kellermann1-1/+6
When the decoder chunk is empty in decoder_flush_chunk(), don't push it into the music pipe - return it to the music buffer instead. An empty chunk in the pipe wastes resources for no advantage.
2009-03-06pipe: added music_buffer, rewrite music_pipeMax Kellermann1-19/+17
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.
2009-03-06music_pipe: added music_pipe_push()Max Kellermann1-0/+80
Added music_pipe_allocate(), music_pipe_push() and music_pipe_cancel(). Those functions allow the caller (decoder thread in this case) to do its own chunk management. The functions music_pipe_flush() and music_pipe_tag() can now be removed.