aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder/wavpack_decoder_plugin.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2011-07-20wavpack: obey all decoder commands, stop at CUE track borderMax Kellermann1-9/+6
It used to ignore the decoder_data() return value.
2011-07-20decoder/wavpack: use the correct integer typesMax Kellermann1-10/+5
libwavpack provides int32_t samples, and wants uin32_t for sample counts.
2011-07-20decoder/wavpack: simplify the WavpackUnpackSamples()==0 checkMax Kellermann1-17/+14
.. and remove one indent level.
2011-01-29copyright year 2011Max Kellermann1-1/+1
2010-02-17replay_gain_info: allocate the struct staticallyMax Kellermann1-17/+8
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-20decoder/wavpack: fixed WVC URIMax Kellermann1-4/+5
Pass the current URI to wavpack_open_wvc().
2010-01-18decoder_api: removed function decoder_get_uri()Max Kellermann1-7/+2
Use input_stream.uri.
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-9/+7
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.
2010-01-01input_stream: return allocated input_stream objectsMax Kellermann1-14/+13
Major API redesign: don't let the caller allocate the input_stream object. Let each input plugin allocate its own (derived/extended) input_stream pointer. The "data" attribute can now be removed, and all input plugins simply cast the input_stream pointer to their own structure (with an "struct input_stream base" as the first attribute).
2009-12-31Update copyright notices.Avuton Olrich1-1/+1
2009-12-26decoder_api: added function decoder_timestamp()Max Kellermann1-9/+2
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-26decoder/wavpack: allow fine-grained seekingMax Kellermann1-3/+2
First multiply the floating point return value of decoder_seek_where(), then cast to integer.
2009-12-15input_stream: return errors with GErrorMax Kellermann1-3/+3
2009-12-11decoder/wavpack: don't use the nonstandard "uchar" typeMax Kellermann1-1/+1
Use the signed C99 type int8_t instead.
2009-12-02audio_format: changed "bits" to "enum sample_format"Max Kellermann1-12/+35
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-14decoder: use audio_format_init_checked()Max Kellermann1-12/+13
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-3/+4
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-11-11decoder/wavpack: allow more than 2 channelsMax Kellermann1-3/+3
Remove the OPEN_2CH_MAX option. MPD's support for surround sound is still clunky, but we're working on it.
2009-11-11decoder/wavpack: activate 32 bit supportMax Kellermann1-13/+7
MPD has been supporting 32 bit samples since version 0.15. This patch changes one check, and removes the 32->24 conversion code. Note that WavPack floating point samples have 32 bits, and MPD doesn't have a special check for floating point - therefore, this WavPack plugin still returns 24 bit integer samples as before (until we have float support in the MPD core).
2009-10-13tag: removed the "_ITEM_" suffix from the enum namesMax Kellermann1-11/+11
2009-07-19Add audio_format_init() functionDavid Woodhouse1-3/+3
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-04-02decoder: Rename all main decoder plugins functions to *decoder_plugin.Avuton Olrich1-1/+1
2009-03-13all: Update copyright header.Avuton Olrich1-8/+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-17wavpack: added GLib log domainMax Kellermann1-0/+3
2009-01-30wavpack: pass NULL if the .wvc file fails to openMax Kellermann1-1/+3
The wavpack library seems to use the .wvc stream even if the OPEN_WVC flag is not set. In this case, pass NULL to be sure libwavpack won't use it.
2009-01-04song: allocate the result of song_get_url()Max Kellermann1-3/+4
2009-01-03utils: removed unused functionsMax Kellermann1-0/+2
Removed all allocation functions, xwrite(), xread(), ARRAY_SIZE(). Those have been superseded by GLib.
2009-01-01decoder plugins: don't include gcc.hMax Kellermann1-1/+1
Use GLib's G_GNUC_UNUSED instead of gcc.h's mpd_unused.
2008-12-29removed os_compat.hMax Kellermann1-0/+2
Only include headers which are really needed. os_compat.h aimed to make MPD easily portable, but was never actually made portable.
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-22wavpack: use assert_static()Laszlo Ashin1-4/+5
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-19wavpack: redo using audio_format_frame_size()Laszlo Ashin1-6/+1
Somehow we lost 600e1322 after renaming some variables in ed6f6046.
2008-11-16input_stream: size==-1 means unknown sizeMax Kellermann1-0/+3
Define the special value "-1" as "unknown size". Previously, there was no indicator for streams with unknown size, which might confuse some decoders.
2008-11-14wavpack: be more robust if the underlying stream is not seekableLászló Áshin1-1/+5
The wavpack open function gives us an option called OPEN_STREAMING. This provides more robust and error tolerant playback, but it automatically disables seeking. (More exactly the wavpack lib will not return the length information.) So, if the stream is already not seekable we can use this option safely.
2008-11-14wavpack: tolerate less decoded data than requestedLászló Áshin1-1/+1
Wavpack plugin doesn't stop decoding if a block couldn't be fully decoded, rather it tries to go on.
2008-11-14wavpack: renamed variables and modified coding style slightlyLászló Áshin1-80/+113
2008-11-12wavpack: remove commented debug messagesMax Kellermann1-6/+1
2008-11-12wavpack: calculate outsamplesize with audio_format_frame_size()Max Kellermann1-5/+1
2008-11-11decoder: return void from decode() methodsMax Kellermann1-8/+4
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-11wavpack: added wavpack_tag_float()Max Kellermann1-41/+25
The function simplifies wavpack_replaygain(), because it already contains the float parser, and it works with a fixed buffer instead of doing expensive heap allocations.
2008-11-11wavpack: make the "key" argument to wavpack_tag() constMax Kellermann1-9/+5
This allows us to remove the "static char[]" hack.
2008-11-11replay_gain: no CamelCaseMax Kellermann1-11/+11
Renamed functions and variables.
2008-11-09wavpack: removed try_decode() methodMax Kellermann1-23/+0
Wavpack's try_decode() implementation does nothing useful, it only duplicates code already in stream_decode() / file_decode(), and slows down MPD.
2008-11-08wavpack: make 24-bit samples available for mpdLaszlo Ashin1-47/+46
This patch makes 24-bit samples available for mpd. I tested with the WavPack Test Suite found on wavpack.com: http://www.rarewares.org/wavpack/test_suite.zip Every test file worked fine.
2008-11-08wavpack: check last_byte in push_back_byte() methodLaszlo Ashin1-2/+6
At this moment the wavpack lib doesn't use the return value of the push_back function, which has an equivalent meaning of the return value of ungetc(). This is a lucky situation, because so far it simply returned with 1 as a hard coded value. From now on the function will return EOF on error. (This function makes exactly one byte pushable back.)
2008-11-08wavpack: wrapper for converting void* to struct wavpack_input*Laszlo Ashin1-13/+20
A new function has been added to do a cast and a little check in the wavpack-mpd input stream wrapper.
2008-11-08wavpack: put braces around one line code blocksLaszlo Ashin1-15/+27
I think this makes the code more easily modifiable and prevents some annoying mistakes.