aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder/mpcdec_decoder_plugin.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2012-02-11decoder_plugin: scan tags with callback tableMax Kellermann1-8/+8
Pass a callback table to scan_file() and scan_stream(), instead of returning a tag object.
2011-09-16input_stream: non-blocking I/OMax Kellermann1-1/+1
Add GMutex, GCond attributes which will be used by callers to conditionally wait on the stream. Remove the (now-useless) plugin method buffer(), wait on GCond instead. Lock the input_stream before each method call. Do the same with the playlist plugins.
2011-08-23decoder/mpcdec: fix gcc warningMax Kellermann1-2/+2
Move the variable "vbr_update_acc" into the #ifdef block.
2011-01-29copyright year 2011Max Kellermann1-1/+1
2010-02-17replay_gain_info: allocate the struct staticallyMax Kellermann1-8/+7
Don't allocate each replay_gain_info object on the heap. Those objects who held a pointer now store a full replay_gain_info object. This reduces the number of allocations and heap fragmentation.
2010-01-04renamed decoder plugin sourcesMax Kellermann1-0/+0
Make it X_decoder_plugin.c.
2010-01-04decoder_api: added function decoder_replay_gain()Max Kellermann1-3/+3
This function replaces the replay_gain_info parameter for decoder_data(). This allows the decoder to announce replay gain changes, instead of having to pass the same object over and over.
2009-12-31Update copyright notices.Avuton Olrich1-1/+1
2009-12-31decoder: switch a bunch of plugins to stream_tag()Max Kellermann1-20/+8
This patch changes the following decoder plugins to implement stream_tag() instead of tag_dup(): faad, ffmpeg, mad, modplug, mp4ff, mpcdec, oggflac This simplifies their code, because they do not need to take care of opening/closing the stream.
2009-12-26decoder_api: added function decoder_timestamp()Max Kellermann1-12/+4
Remove the data_time parameter from decoder_data(). This patch eliminates the timestamp counting in most decoder plugins, because the MPD core will do it automatically by default.
2009-12-15input_stream: return errors with GErrorMax Kellermann1-2/+2
2009-12-02audio_format: changed "bits" to "enum sample_format"Max Kellermann1-1/+2
This patch prepares support for floating point samples (and probably other formats). It changes the meaning of the "bits" attribute from a bit count to a symbolic value.
2009-11-25decoder/mpcdec: set 24 bit sample formatMax Kellermann1-1/+1
This fixes a regression due to a typo caused by "decoder: use audio_format_init_checked()".
2009-11-14decoder: use audio_format_init_checked()Max Kellermann1-7/+7
Let the audio_check library verify the audio format in all (relevant, i.e. non-hardcoded) plugins.
2009-11-12include config.h in all sourcesMax Kellermann1-1/+1
After we've been hit by Large File Support problems several times in the past week (which only occur on 32 bit platforms, which I don't have), this is yet another attempt to fix the issue.
2009-07-19Add audio_format_init() functionDavid Woodhouse1-3/+1
It makes no difference right now, but we're about to add an endianness flag and will want to make sure it's correctly initialised every time.
2009-03-27mpcdec: changed plugin name to "mpcdec"Max Kellermann1-3/+3
The "mpcdec" plugin is based on the libmpcdec library.
2009-03-27mpcdec: support the new libmpcdec SV8 APIMax Kellermann1-14/+90
2009-03-27mpcdec: no CamelCaseMax Kellermann1-57/+65
Renamed variables and functions.
2009-03-13all: Update copyright header.Avuton Olrich1-6/+7
This updates the copyright header to all be the same, which is pretty much an update of where to mail request for a copy of the GPL and the years of the MPD project. This also puts all committers under 'The Music Player Project' umbrella. These entries should go individually in the AUTHORS file, for consistancy.
2009-02-17decoders: added and fixed GLib log domainsMax Kellermann1-2/+4
Fixed the log domains of the renamed decoders. Added G_LOG_DOMAIN macros in decoders which don't have one already.
2009-02-17renamed decoder plugin "mpc" to "mpcdec"Max Kellermann1-1/+1
This plugin is based on "libmpcdec".
2009-01-17moved fallback APE/ID3 tag loader to song.cMax Kellermann1-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().
2009-01-08added missing explicit config.h includesMax Kellermann1-0/+1
2008-11-24flac, mpc, ogg, wavpack: include unistd.h for SEEK_SETMax Kellermann1-0/+1
SEEK_SET is defined by unistd.h. Explicitly include it.
2008-11-21decoder: check audio_format_valid() in all decodersMax Kellermann1-0/+8
Refuse to play audio formats which are not supported by MPD.
2008-11-12mpc: assume the result fo of mpc_decoder_decode() is unsignedMax Kellermann1-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.
2008-11-12mpc: don't assume the stream is stereoMax Kellermann1-2/+1
Don't hard-code the factor "2".
2008-11-12mpc: get decoder command from decoder_data()Max Kellermann1-12/+9
Removed 3 superfluous decoder_get_command() invocations.
2008-11-12mpc: moved code to mpc_to_mpd_buffer()Max Kellermann1-14/+12
mpc_to_mpd_buffer() converts a whole chunk at a time. This eliminates 3 local variables in mpc_decode().
2008-11-12mpc: make the buffer large enough for one mpc frameMax Kellermann1-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.
2008-11-12mpc: use GLib instead of utils.h/log.hMax Kellermann1-9/+6
Don't use deprecated MPD libraries.
2008-11-12mpc: declare buffer as int32_t[]Max Kellermann1-4/+4
The buffer is always casted to int32_t* anyway; declare it as int32_t array, and remove the cast.
2008-11-11mpc: eliminated the local variable "eof"Max Kellermann1-8/+3
Since each "eof=true" is followed by "break", the variable is superfluous.
2008-11-11decoder: return void from decode() methodsMax Kellermann1-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.
2008-11-11replay_gain: converted struct replay_gain_info elements to an arrayMax Kellermann1-4/+4
Having an array instead of individual variables allows the use of the replay_gain_mode enum as an array index.
2008-11-11replay_gain: no CamelCaseMax Kellermann1-7/+7
Renamed functions and variables.
2008-11-04decoder: removed stream_typesMax Kellermann1-1/+0
Instead of checking the stream_types bit set, we can simply check whether the methods stream_decode() and file_decode() are implemented.
2008-11-02decoder_api: pass "seekable" flag to decoder_initialized()Max Kellermann1-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.
2008-11-01decoder: make the suffixes and mime_types arrays really constMax Kellermann1-1/+1
The strings were constant, but the pointers weren't. C syntax is somewhat tricky..
2008-11-01decoder: make all decoder_plugin structs constMax Kellermann1-1/+1
All decoder_plugin structs are initialized at compile time, and must never change.
2008-10-31decoder_api: pass constant path pointersMax Kellermann1-2/+2
2008-10-30mpc: provide 24 bit samplesMax Kellermann1-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.
2008-10-30mpc: moved sample size into a constantMax Kellermann1-5/+9
Don't hard-code the "16 bits" or "2 bytes" in multiple locations.
2008-10-30mpc: renamed variable "s16" to "dest"Max Kellermann1-5/+4
The name "s16" implies 16 bit integers. To make the code more generic, rename it to "dest".
2008-10-30mpc: fix broken integer sample conversionMax Kellermann1-6/+4
The conversion of integer samples was completely broken, which presumably didn't annoy anybody because libmpcdec provides float samples on most installations.
2008-10-30mpc: fix boolean interpretation of input_stream_seek()Max Kellermann1-1/+1
When input_stream_seek() was converted to return a bool, this wasn't adjusted in the musepack plugin.
2008-10-30decoder: use bool for return values and flagsMax Kellermann1-9/+9
Don't return 0/-1 on success/error, but true/false. Instead of int, use bool for storing flags.
2008-10-29decoder: automatically flush the output buffer after decoder exitsMax Kellermann1-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().
2008-10-29decoder_api: removed decoder_clear()Max Kellermann1-1/+0
Call ob_clear() in decoder_command_finished() instead of implementing that call in every decoder plugin.