aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder/mpc_plugin.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* moved fallback APE/ID3 tag loader to song.cMax Kellermann2009-01-171-9/+4
| | | | | | Some plugins used the APE or ID3 tag loader as a fallback when their own methods of loading tags did not work. Move this code out of all decoder plugins, into song_file_update().
* added missing explicit config.h includesMax Kellermann2009-01-081-0/+1
|
* flac, mpc, ogg, wavpack: include unistd.h for SEEK_SETMax Kellermann2008-11-241-0/+1
| | | | SEEK_SET is defined by unistd.h. Explicitly include it.
* decoder: check audio_format_valid() in all decodersMax Kellermann2008-11-211-0/+8
| | | | Refuse to play audio formats which are not supported by MPD.
* mpc: assume the result fo of mpc_decoder_decode() is unsignedMax Kellermann2008-11-121-2/+2
| | | | | | | According to the documentation, mpc_decoder_decode() returns an mpc_uint32_t. Since the special return value (mpc_uint32_t)-1 translates to a very large long integer, this may cause segmentation faults if not interpreted properly.
* mpc: don't assume the stream is stereoMax Kellermann2008-11-121-2/+1
| | | | Don't hard-code the factor "2".
* mpc: get decoder command from decoder_data()Max Kellermann2008-11-121-12/+9
| | | | Removed 3 superfluous decoder_get_command() invocations.
* mpc: moved code to mpc_to_mpd_buffer()Max Kellermann2008-11-121-14/+12
| | | | | mpc_to_mpd_buffer() converts a whole chunk at a time. This eliminates 3 local variables in mpc_decode().
* mpc: make the buffer large enough for one mpc frameMax Kellermann2008-11-121-28/+11
| | | | | | Don't split the buffer conversion loop. When libmpcdec returns a chunk, convert and send the whole chunk at a time. This moves several checks out of the loop, and greatly improves performance.
* mpc: use GLib instead of utils.h/log.hMax Kellermann2008-11-121-9/+6
| | | | Don't use deprecated MPD libraries.
* mpc: declare buffer as int32_t[]Max Kellermann2008-11-121-4/+4
| | | | | The buffer is always casted to int32_t* anyway; declare it as int32_t array, and remove the cast.
* mpc: eliminated the local variable "eof"Max Kellermann2008-11-111-8/+3
| | | | | Since each "eof=true" is followed by "break", the variable is superfluous.
* decoder: return void from decode() methodsMax Kellermann2008-11-111-11/+5
| | | | | | | | 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.
* replay_gain: converted struct replay_gain_info elements to an arrayMax Kellermann2008-11-111-4/+4
| | | | | Having an array instead of individual variables allows the use of the replay_gain_mode enum as an array index.
* replay_gain: no CamelCaseMax Kellermann2008-11-111-7/+7
| | | | Renamed functions and variables.
* decoder: removed stream_typesMax Kellermann2008-11-041-1/+0
| | | | | Instead of checking the stream_types bit set, we can simply check whether the methods stream_decode() and file_decode() are implemented.
* decoder_api: pass "seekable" flag to decoder_initialized()Max Kellermann2008-11-021-2/+2
| | | | | | 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.
* decoder: make the suffixes and mime_types arrays really constMax Kellermann2008-11-011-1/+1
| | | | | The strings were constant, but the pointers weren't. C syntax is somewhat tricky..
* decoder: make all decoder_plugin structs constMax Kellermann2008-11-011-1/+1
| | | | | All decoder_plugin structs are initialized at compile time, and must never change.
* decoder_api: pass constant path pointersMax Kellermann2008-10-311-2/+2
|
* mpc: provide 24 bit samplesMax Kellermann2008-10-301-7/+6
| | | | | | Similar to libmad, libmpcdec provides samples with higher quality than 16 bit. Send 24 bit samples to MPD, which allows MPD to apply dithering just in case the output devices are only 16 bit capable.
* mpc: moved sample size into a constantMax Kellermann2008-10-301-5/+9
| | | | Don't hard-code the "16 bits" or "2 bytes" in multiple locations.
* mpc: renamed variable "s16" to "dest"Max Kellermann2008-10-301-5/+4
| | | | | The name "s16" implies 16 bit integers. To make the code more generic, rename it to "dest".
* mpc: fix broken integer sample conversionMax Kellermann2008-10-301-6/+4
| | | | | | The conversion of integer samples was completely broken, which presumably didn't annoy anybody because libmpcdec provides float samples on most installations.
* mpc: fix boolean interpretation of input_stream_seek()Max Kellermann2008-10-301-1/+1
| | | | | When input_stream_seek() was converted to return a bool, this wasn't adjusted in the musepack plugin.
* decoder: use bool for return values and flagsMax Kellermann2008-10-301-9/+9
| | | | | Don't return 0/-1 on success/error, but true/false. Instead of int, use bool for storing flags.
* decoder: automatically flush the output buffer after decoder exitsMax Kellermann2008-10-291-2/+0
| | | | | | | 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().
* decoder_api: removed decoder_clear()Max Kellermann2008-10-291-1/+0
| | | | | Call ob_clear() in decoder_command_finished() instead of implementing that call in every decoder plugin.
* input_stream: use "bool" instead of "int"Max Kellermann2008-10-261-2/+2
| | | | | For boolean values and success flags, use bool instead of integer (1/0 for true/false, 0/-1 for success/failure).
* input_stream: no CamelCaseMax Kellermann2008-10-261-4/+4
| | | | Renamed all functions and variables.
* input_stream: removed the InputStream typedefMax Kellermann2008-10-261-3/+4
| | | | Everybody should use struct input_stream.
* renamed src/inputPlugins/ to src/decoder/Max Kellermann2008-10-261-0/+308
These plugins are not input plugins, they are decoder plugins. No CamelCase in the directory name.