aboutsummaryrefslogtreecommitdiffstats
path: root/src/pipe.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* music_chunk: added assertions on the audio formatMax Kellermann2009-03-081-0/+16
| | | | | | | In !NDEBUG, remember which audio_format is stored in every chunk and every pipe. Check the audio_format of every new data block appended to the music_chunk, and the format of every new chunk appended to the music_pipe.
* music_pipe: added music_pipe_peek()Max Kellermann2009-03-071-0/+7
| | | | | music_pipe_peek() is similar to music_pipe_shift(), but doesn't remove the chunk. This allows it to be used with a "const" music_pipe.
* pipe: added music_buffer, rewrite music_pipeMax Kellermann2009-03-061-129/+20
| | | | | | | | 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-8/+26
| | | | | | | 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.
* music_pipe: moved struct music_chunk to chunk.hMax Kellermann2009-03-031-29/+2
|
* music_pipe: removed music_pipe_append()Max Kellermann2009-01-171-9/+0
| | | | | The function is unused, since decoder_api() uses music_pipe_write() / music_pipe_expand() now.
* music_pipe: added functions music_pipe_write() and music_pipe_expand()Max Kellermann2009-01-171-0/+18
| | | | | | | This new API gives the caller a writable buffer to the music pipe chunk. This may allow the caller to eliminate several buffer copies, because it may manipulate the returned buffer, until it calls music_pipe_expand().
* player: chop the tail of the music pipe after CANCELMax Kellermann2008-11-131-0/+6
| | | | | | When a CANCEL command is received, the player should drop all chunks of the next song. Added new funciton music_pipe_chop() which is used for that.
* music_pipe: continuously check the sample format of all chunksMax Kellermann2008-11-131-0/+5
| | | | | Provide a debug function which asserts on the sample format of all chunks. Call this function in each iteration of the player main loop.
* music_pipe: add tag pointer to the music_chunk structMax Kellermann2008-11-021-0/+14
| | | | | | Each music chunk can now carry a tag object. Decoder plugins which support it (e.g. oggvorbis) may use this to inject decoded tags into their output.
* music_pipe: document struct music_chunkMax Kellermann2008-11-021-0/+11
| | | | Add doxygen compatible comments.
* music_pipe: removed "volatile"Max Kellermann2008-11-021-2/+2
| | | | | The "volatile" keyword doesn't help here, because we have proper memory barriers, but it disables some optimizations. Remove it.
* music_pipe: renamed "size" to "num_chunks"Max Kellermann2008-11-021-3/+2
| | | | The name "num_chunks" expresses the meaning of the variable better.
* music_pipe: no CamelCaseMax Kellermann2008-11-021-3/+3
| | | | Rename all variables and struct members.
* music_pipe: renamed "ob" to "music_pipe"Max Kellermann2008-11-021-6/+6
| | | | Last music_pipe rename patch: renamed the global variable (singleton).
* music_pipe: more wrapper functionsMax Kellermann2008-11-021-0/+27
| | | | | | Replace all direct music_pipe struct accesses with wrapper functions. The compiled machine code is the same, but this way, we can change struct internals more easily.
* decoder: replaced music_pipe.audioFormat with dc.out_audio_formatMax Kellermann2008-11-021-4/+4
| | | | | | | .. and rename dc.audioFormat to dc.in_audio_format. The music pipe does not need to know the audio format, and its former "audioFormat" property indicated the format of the most recently added chunk, which might be confusing when you are reading the oldest chunks.
* music_pipe: renamed ob_* functions to music_pipe_*Max Kellermann2008-11-021-14/+14
| | | | Rename all functions to the new prefix.
* music_pipe: renamed struct output_buffer to struct music_pipeMax Kellermann2008-11-021-6/+7
| | | | .. and rename ob_chunk to struct music_chunk.
* renamed outputBuffer.[ch] to pipe.[ch]Max Kellermann2008-11-021-0/+115
No CamelCase in the file name. The output_buffer struct is going to be renamed to music_pipe. There are so many buffer levels in MPD, and calling this one "output buffer" is wrong, because it's not the last buffer before the music reaches the output devices.