aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder_internal.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* decoder_internal: don't push empty chunk into pipeMax Kellermann2009-03-071-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.
* pipe: added music_buffer, rewrite music_pipeMax Kellermann2009-03-061-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.
* music_pipe: added music_pipe_push()Max Kellermann2009-03-061-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.