aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder/wavpack_decoder_plugin.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2012-09-25decoder/wavpack: support all APEv2 tagsMax Kellermann1-16/+12
WavPack tags are always APEv2, by definition. Reuse the tag_table from tag_ape.c, instead of rolling our own.
2012-02-12decoder/wavpack: bigger tag value bufferMax Kellermann1-2/+1
Prepare for big CUESHEET tags.
2012-02-12tag_handler: handle arbitrary name/value pairsMax Kellermann1-0/+27
The new method pair() receives an arbitrary name/value pair. Support for this is being added to a few decoder plugins.
2012-02-11decoder/wavpack: move code to wavpack_scan_tag_item()Max Kellermann1-26/+17
Remove clutter from wavpack_scan_file(), and use a (large) fixed buffer for the tag item.
2012-02-11decoder/wavpack: use the tag_table libraryMax Kellermann1-8/+7
2012-02-11decoder_plugin: scan tags with callback tableMax Kellermann1-10/+12
Pass a callback table to scan_file() and scan_stream(), instead of returning a tag object.
2011-10-20decoder/wavpack: read float samples as-is, don't convert to integerMax Kellermann1-5/+4
For MPD's new floating point support: when a decoded wavpack file needs to be resampled, don't convert float to int and back to float.
2011-10-08decoder/wavpack: don't call WavpackGetMode() twiceMax Kellermann1-1/+1
Use local variable "is_float".
2011-09-16input_stream: non-blocking I/OMax Kellermann1-4/+8
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-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.