- 27 Dec, 2008 1 commit
-
-
Max Kellermann authored
The input_stream object should only be closed by the MPD core (i.e. decoder_thread.c / decoder_run()). A decoder plugin which attempts to close it will result in a segmentation fault.
-
- 03 Dec, 2008 1 commit
-
-
Viliam Mateicka authored
-
- 21 Nov, 2008 2 commits
-
-
Max Kellermann authored
Refuse to play audio formats which are not supported by MPD.
-
Max Kellermann authored
-
- 18 Nov, 2008 1 commit
-
-
Viliam Mateicka authored
[mk: by definition, tag_new() cannot fail - removed check]
-
- 11 Nov, 2008 1 commit
-
-
Max Kellermann authored
The stream_decode() and file_decode() methods returned a boolean, indicating whether they were able to decode the song. This is redundant, since we already know that: if decoder_initialized() has been called (and dc.state==DECODE), the plugin succeeded. Change both methods to return void.
-
- 04 Nov, 2008 1 commit
-
-
Max Kellermann authored
Instead of checking the stream_types bit set, we can simply check whether the methods stream_decode() and file_decode() are implemented.
-
- 02 Nov, 2008 1 commit
-
-
Max Kellermann authored
Don't pass the "seekable" flag with every decoder_data() invocation. Since that flag won't change within the file, it is enough to pass it to decoder_initialized() once per file.
-
- 01 Nov, 2008 2 commits
-
-
Max Kellermann authored
The strings were constant, but the pointers weren't. C syntax is somewhat tricky..
-
Max Kellermann authored
All decoder_plugin structs are initialized at compile time, and must never change.
-
- 31 Oct, 2008 1 commit
-
-
Max Kellermann authored
-
- 30 Oct, 2008 1 commit
-
-
Max Kellermann authored
Don't return 0/-1 on success/error, but true/false. Instead of int, use bool for storing flags.
-
- 29 Oct, 2008 2 commits
-
-
Max Kellermann authored
A decoder_flush() invocation was missing in the FLAC plugin, resulting in casual assertion failures due to a wrong assumption about the last chunk's audio format. It's much easier to remove that decoder_flush() function and make the decoder thread call ob_flush().
-
Max Kellermann authored
Call ob_clear() in decoder_command_finished() instead of implementing that call in every decoder plugin.
-
- 26 Oct, 2008 1 commit
-
-
Max Kellermann authored
These plugins are not input plugins, they are decoder plugins. No CamelCase in the directory name.
-
- 17 Oct, 2008 1 commit
-
-
Max Kellermann authored
Don't compile the sources of disabled decoder plugins at all, and don't attempt to register these.
-
- 10 Oct, 2008 1 commit
-
-
Max Kellermann authored
The last bit of CamelCase in audio_format.h. Additionally, rename a bunch of local variables.
-
- 08 Oct, 2008 1 commit
-
-
Max Kellermann authored
When there are standardized headers, use these instead of the bloated os_compat.h.
-
- 29 Sep, 2008 2 commits
-
-
Max Kellermann authored
The old struct initializers are error prone and don't allow moving elements around. Since we are going to overhaul some of the APIs soon, it's easier to have all implementations use C99 initializers.
-
Max Kellermann authored
Do full C99 integer type conversion in all modules which were not touched by Eric's merged patch.
-
- 07 Sep, 2008 1 commit
-
-
Max Kellermann authored
Get rid of CamelCase, and don't use a typedef, so we can forward-declare it, and unclutter the include dependencies.
-
- 29 Aug, 2008 2 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
Getting rid of CamelCase; not having typedefs also allows us to forward-declare the structures.
-
- 26 Aug, 2008 16 commits
-
-
Max Kellermann authored
This releases several include file dependencies. As a side effect, "CHUNK_SIZE" isn't defined by decoder_api.h anymore, so we have to define it directly in the plugins which need it. It just isn't worth it to add it to the decoder plugin API.
-
Max Kellermann authored
"decoder plugin" is a better name than "input plugin", since the plugin does not actually do the input - InputStream does. Also don't use typedef, so we can forward-declare it if required.
-
Max Kellermann authored
Provide access to seeking for the decoder plugins; they have to know where to seek, and they need a way to tell us that seeking has failed.
-
Max Kellermann authored
Some decoder commands are implemented in the decoder plugins, thus they need to have an API call to signal that their current command has been finished. Let them use the new decoder_command_finished() instead of the internal dc_command_finished().
-
Max Kellermann authored
Another big patch which hides internal mpd APIs from decoder plugins: decoder plugins regularly poll dc->command; expose it with a decoder_api.h function.
-
Max Kellermann authored
Anonymous code blocks just to declare variables look ugly. Move the variable declarations up and disband the code block.
-
Max Kellermann authored
Similar to previous patch: eliminate one variable by using "break". This also simplifies the code since we can remove one level of indent.
-
Max Kellermann authored
Similar to the previous patch: pass total_time instead of manipulating dc->totalTime directly.
-
Max Kellermann authored
dc->audioFormat is set once by the decoder plugins before invoking decoder_initialized(); hide dc->audioFormat and let the decoder pass an AudioFormat pointer to decoder_initialized().
-
Max Kellermann authored
We are now beginning to remove direct structure accesses from the decoder plugins. decoder_clear() and decoder_flush() mask two very common buffer functions.
-
Max Kellermann authored
Moved all of the player-waiting code to decoder_data(), to make OutputBuffer more generic.
-
Max Kellermann authored
decoder_initialized() sets the state to DECODE_STATE_DECODE and wakes up the player thread. It is called by the decoder plugin after its internal initialization is finished. More arguments will be added later to prevent direct accesses to the DecoderControl struct.
-
Max Kellermann authored
The decoder struct should later be made opaque to the decoder plugin, because maintaining a stable struct ABI is quite difficult. The ABI should only consist of a small number of stable functions.
-
Max Kellermann authored
dc_command_finished() is invoked by the decoder thread when it has finished a command (sent by the player thread). It resets dc.command and wakes up the player thread. This combination was used at a lot of places, and by introducing this function, the code will be more readable.
-
Max Kellermann authored
Much of the existing code queries all three variables sequentially. Since only one of them can be set at a time, this can be optimized and unified by merging all of them into one enum variable. Later, the "command" checks can be expressed in a "switch" statement.
-
Max Kellermann authored
Include only headers which are really required. This speeds up compilation and helps detect cross-layer accesses.
-
- 13 Apr, 2008 1 commit
-
-
Eric Wong authored
We had functions names varied between outputBufferFoo, fooOutputBuffer, and output_buffer_foo That was too confusing for my little brain to handle. And the global variable was somehow named 'cb' instead of the more obvious 'ob'... git-svn-id: https://svn.musicpd.org/mpd/trunk@7355 09075e82-0dd4-0310-85a5-a0d7c8717e4f
-