aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder/flac_plugin.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* flac: explicitly check for STOP commandMax Kellermann2009-03-051-1/+2
| | | | | | After the decoder command was obtained, don't wait until libflac detects EOF (as a side effect), quit the decoder immediately. This check was missing completely.
* flac: check command after flac_process_single() failureMax Kellermann2009-03-051-3/+6
| | | | | | When the MPD core sends the decoder a command while flac_process_single() is executed, this function fails. Abort the decoder only if not seeking. This fixes a seeking bug.
* flac: parse stream tagsMax Kellermann2009-03-011-2/+15
| | | | | Parse the vorbis comments in libflac's metadata_callback and pass them as tag struct to the decoder API.
* decoder_plugin: pass struct config_param to init() methodMax Kellermann2009-02-151-1/+1
| | | | Preparing for per-plugin configuration sections in mpd.conf.
* moved fallback APE/ID3 tag loader to song.cMax Kellermann2009-01-171-17/+1
| | | | | | 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().
* flac: always allocate tag objectMax Kellermann2009-01-151-11/+21
| | | | | Free the tag object when it turns out to be empty. This simplifies several functions and APIs.
* flac: use bool instead of intMax Kellermann2009-01-151-27/+22
|
* flac: removed "vorbis_comment_found" flagMax Kellermann2009-01-151-10/+4
| | | | Use tag_is_empty() instead.
* flac: no CamelCaseMax Kellermann2009-01-151-82/+91
| | | | Renamed types, functions, variables.
* decoder plugins: don't include gcc.hMax Kellermann2009-01-011-7/+9
| | | | Use GLib's G_GNUC_UNUSED instead of gcc.h's mpd_unused.
* flac, mpc, ogg, wavpack: include unistd.h for SEEK_SETMax Kellermann2008-11-241-0/+1
| | | | SEEK_SET is defined by unistd.h. Explicitly include it.
* decoder: check audio_format_valid() in all decodersMax Kellermann2008-11-211-0/+8
| | | | Refuse to play audio formats which are not supported by MPD.
* flac, oggflac: use GLib instead of utils.h/log.hMax Kellermann2008-11-211-15/+10
|
* input_stream: size==-1 means unknown sizeMax Kellermann2008-11-161-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.
* decoder: return void from decode() methodsMax Kellermann2008-11-111-9/+9
| | | | | | | | 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.
* replay_gain: no CamelCaseMax Kellermann2008-11-111-1/+1
| | | | Renamed functions and variables.
* decoder: removed plugin method try_decode()Max Kellermann2008-11-101-7/+7
| | | | | | Instead of having a seprate try_decode() method, let the stream_decode() and file_decode() methods decide whether they are able to decode the song.
* flac: call flac_process_metadata() for ogg filesMax Kellermann2008-11-101-4/+5
| | | | | | | The flac plugin wasn't initialized properly when an OGG file was being decoded. For some reason, flac_process_metadata() was explicitly not called for OGG files. Since that seems to fix the issue, make it always call flac_process_metadata().
* flac: enable the oggflac plugin with older libflac versionsMax Kellermann2008-11-101-3/+14
| | | | | | | | | Since decoder_list.c does not include the libflac headers, it cannot know whether to add the oggflac plugin to the decoder list. Solve this by always enabling the oggflac sub-plugin, even with older libflac versions. When the libflac API cannot support oggflac, disable the plugin at runtime by returning "false" from its init() method.
* flac: make the init() method check for oggflac supportMax Kellermann2008-11-091-2/+8
| | | | | Disable flac's "oggflac" sub-plugin when libflac does not support ogg-flac files.
* decoder: removed stream_typesMax Kellermann2008-11-041-2/+0
| | | | | Instead of checking the stream_types bit set, we can simply check whether the methods stream_decode() and file_decode() are implemented.
* decoder_api: pass "seekable" flag to decoder_initialized()Max Kellermann2008-11-021-1/+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.
* decoder: make the suffixes and mime_types arrays really constMax Kellermann2008-11-011-9/+11
| | | | | The strings were constant, but the pointers weren't. C syntax is somewhat tricky..
* decoder: make all decoder_plugin structs constMax Kellermann2008-11-011-2/+2
| | | | | All decoder_plugin structs are initialized at compile time, and must never change.
* decoder_api: pass constant path pointersMax Kellermann2008-10-311-3/+3
|
* decoder: use bool for return values and flagsMax Kellermann2008-10-301-14/+15
| | | | | Don't return 0/-1 on success/error, but true/false. Instead of int, use bool for storing flags.
* decoder_api: removed decoder_clear()Max Kellermann2008-10-291-1/+0
| | | | | Call ob_clear() in decoder_command_finished() instead of implementing that call in every decoder plugin.
* input_stream: use "bool" instead of "int"Max Kellermann2008-10-261-2/+1
| | | | | For boolean values and success flags, use bool instead of integer (1/0 for true/false, 0/-1 for success/failure).
* input_stream: no CamelCaseMax Kellermann2008-10-261-3/+3
| | | | Renamed all functions and variables.
* input_stream: removed the InputStream typedefMax Kellermann2008-10-261-5/+9
| | | | Everybody should use struct input_stream.
* renamed src/inputPlugins/ to src/decoder/Max Kellermann2008-10-261-0/+459
These plugins are not input plugins, they are decoder plugins. No CamelCase in the directory name.