aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder/wavpack_decoder_plugin.c (unfollow)
Commit message (Collapse)AuthorFilesLines
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.
2008-11-04wavpack: no CamelCaseMax Kellermann1-42/+44
Renamed functions and variables.
2008-11-04wavpack: fix indentMax Kellermann1-47/+47
Fixed the indent of the switch statement in format_samples_int().
2008-11-02decoder: rewind input stream after try_decode()Max Kellermann1-2/+0
The try_decode() method may have read some data from the stream, which is now lost. To make this data available to other methods, get it back by rewinding the input stream after each try_decode() invocation. The ogg and wavpack plugins did this manually and inconsistently; this code can now be removed.
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-2/+2
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-30decoder: use bool for return values and flagsMax Kellermann1-11/+12
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-2/+0
Call ob_clear() in decoder_command_finished() instead of implementing that call in every decoder plugin.
2008-10-26input_stream: use "bool" instead of "int"Max Kellermann1-4/+6
For boolean values and success flags, use bool instead of integer (1/0 for true/false, 0/-1 for success/failure).
2008-10-26input_stream: no CamelCaseMax Kellermann1-10/+10
Renamed all functions and variables.
2008-10-26input_stream: removed the InputStream typedefMax Kellermann1-7/+8
Everybody should use struct input_stream.
2008-10-26renamed src/inputPlugins/ to src/decoder/Max Kellermann1-0/+0
These plugins are not input plugins, they are decoder plugins. No CamelCase in the directory name.
2008-10-17Makefile.am: don't compile disabled decoder pluginsMax Kellermann1-9/+0
Don't compile the sources of disabled decoder plugins at all, and don't attempt to register these.
2008-10-10audio_format: renamed sampleRate to sample_rateMax Kellermann1-5/+4
The last bit of CamelCase in audio_format.h. Additionally, rename a bunch of local variables.
2008-10-08use the "bool" data type instead of "int"Max Kellermann1-3/+3
"bool" should be used in C99 programs for boolean values.
2008-09-29use C99 struct initializersMax Kellermann1-10/+8
The old struct initializers are error prone and don't allow moving elements around. Since we are going to overhaul some of the APIs soon, it's easier to have all implementations use C99 initializers.
2008-09-07audio_format: converted typedef AudioFormat to struct audio_formatMax Kellermann1-1/+1
Get rid of CamelCase, and don't use a typedef, so we can forward-declare it, and unclutter the include dependencies.
2008-09-07fix -Wcast-qual -Wwrite-strings warningsMax Kellermann1-4/+8
The previous patch enabled these warnings. In Eric's branch, they were worked around with a generic deconst_ptr() function. There are several places where we can add "const" to pointers, and in others, libraries want non-const strings. In the latter, convert string literals to "static char[]" variables - this takes the same space, and seems safer than deconsting a string literal.
2008-08-29wavpack: tag_new() cannot failMax Kellermann1-5/+0
Since tag_new() uses xmalloc(), it cannot fail - if we're really out of memory, the process will abort.
2008-08-29tag: renamed functions, no CamelCaseMax Kellermann1-3/+3
2008-08-29tag: renamed MpdTag and MpdTagItem to struct tag, struct mpd_tag_itemMax Kellermann1-2/+2
Getting rid of CamelCase; not having typedefs also allows us to forward-declare the structures.
2008-08-26moved global variable "ob" to outputBuffer.hMax Kellermann1-0/+3
This releases several include file dependencies. As a side effect, "CHUNK_SIZE" isn't defined by decoder_api.h anymore, so we have to define it directly in the plugins which need it. It just isn't worth it to add it to the decoder plugin API.
2008-08-26check decoder_command!=NONE instead of decoder_command==STOPMax Kellermann1-1/+1
The code said "decoder_command==STOP" because that was a conversion from the old "dc->stop" test. As we can now check for all commands in one test, we can simply rewrite that to decoder_command!=NONE.
2008-08-26wavpack: don't use "isp" before initializationMax Kellermann1-4/+1
The old code called can_seek() with the uninitialized pointer "isp.is". Has this ever worked? Anyway, initialize "isp" first, then call can_seek(&isp).