| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
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().
|
| |
|
|
|
|
| |
SEEK_SET is defined by unistd.h. Explicitly include it.
|
|
|
|
| |
Refuse to play audio formats which are not supported by MPD.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Don't hard-code the factor "2".
|
|
|
|
| |
Removed 3 superfluous decoder_get_command() invocations.
|
|
|
|
|
| |
mpc_to_mpd_buffer() converts a whole chunk at a time. This eliminates
3 local variables in mpc_decode().
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Don't use deprecated MPD libraries.
|
|
|
|
|
| |
The buffer is always casted to int32_t* anyway; declare it as int32_t
array, and remove the cast.
|
|
|
|
|
| |
Since each "eof=true" is followed by "break", the variable is
superfluous.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Having an array instead of individual variables allows the use of the
replay_gain_mode enum as an array index.
|
|
|
|
| |
Renamed functions and variables.
|
|
|
|
|
| |
Instead of checking the stream_types bit set, we can simply check
whether the methods stream_decode() and file_decode() are implemented.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
The strings were constant, but the pointers weren't. C syntax is
somewhat tricky..
|
|
|
|
|
| |
All decoder_plugin structs are initialized at compile time, and must
never change.
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Don't hard-code the "16 bits" or "2 bytes" in multiple locations.
|
|
|
|
|
| |
The name "s16" implies 16 bit integers. To make the code more
generic, rename it to "dest".
|
|
|
|
|
|
| |
The conversion of integer samples was completely broken, which
presumably didn't annoy anybody because libmpcdec provides float
samples on most installations.
|
|
|
|
|
| |
When input_stream_seek() was converted to return a bool, this wasn't
adjusted in the musepack plugin.
|
|
|
|
|
| |
Don't return 0/-1 on success/error, but true/false. Instead of int,
use bool for storing flags.
|
|
|
|
|
|
|
| |
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().
|
|
|
|
|
| |
Call ob_clear() in decoder_command_finished() instead of implementing
that call in every decoder plugin.
|
|
|
|
|
| |
For boolean values and success flags, use bool instead of integer (1/0
for true/false, 0/-1 for success/failure).
|
|
|
|
| |
Renamed all functions and variables.
|
|
|
|
| |
Everybody should use struct input_stream.
|
|
These plugins are not input plugins, they are decoder plugins. No
CamelCase in the directory name.
|