aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder/WavpackDecoderPlugin.cxx (unfollow)
Commit message (Collapse)AuthorFilesLines
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.
2008-11-08wavpack: added prefix to local function namesLaszlo Ashin1-14/+14
There are some functions in the wavpack-mpd input streams wrapper which had too commonly used names (especially can_seek). I prefixed these with "wavpack_input_".
2008-11-08wavpack: unified code styleLaszlo Ashin1-16/+28
Not every function header has its return type in a distinct line. This patch corrects that. This way there is more space for the arguments.
2008-11-06wavpack: check wvc seekabilityLaszlo Ashin1-2/+5
Using wvc streams the seekableness depends on the seekability of the wvc stream as well.
2008-11-06wavpack: close wvc stream on errorLaszlo Ashin1-1/+3
The input stream opened for wvc is not closed in an if branch. A close call has been added.
2008-11-06wavpack: enable seekingLaszlo Ashin1-1/+1
Somehow seeking is disabled on all kinds of wavpack playbacks now in the git version. This patch corrects that.
2008-11-05wavpack: read_bytes() should not return after partial readsMax Kellermann1-1/+16
libwavpack expects the read_bytes() stream method to fill the whole buffer, and fails badly when we return a partial read (i.e. not enough data available yet). This caused wavpack streams to break. Re-implement the buffer filling loop.
2008-11-05wavpack: don't close the streamMax Kellermann1-1/+0
The input_stream object is opened and closed by the caller.
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-04wavpack: removed NULL element from tagtypesMax Kellermann1-3/+2
The number of tag types is known at compile time. Use the GLib macro G_N_ELEMENTS instead of having a NULL element at the end.
2008-11-04wavpack: use enum tag_typeMax Kellermann1-1/+1
Don't store tag type values in a plain integer, use the proper enum.
2008-11-04wavpack: use GLib instead of utils.h / log.hMax Kellermann1-28/+12
Replace deprecated code with GLib.
2008-11-04wavpack: read first byte from wvc streamMax Kellermann1-25/+13
Instead of manually waiting for the input stream to become ready (to catch server errors), just read the first byte. Since the wavpack_input has the capability to push back one byte, we can simply re-feed it. Advantage is: decoder_read() handles everything for us, i.e. waiting for the stream, polling for decoder commands and error handling.
2008-11-04wavpack: use the bool data typeMax Kellermann1-12/+12
Use boolean true/false instead of 1/0.