aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder/oggvorbis_plugin.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* decoder: check audio_format_valid() in all decodersMax Kellermann2008-11-211-0/+9
| | | | Refuse to play audio formats which are not supported by MPD.
* ogg: moved the "errorStr" variable into the error handlerMax Kellermann2008-11-201-1/+2
|
* ogg: check the ov_read() return value before the vorbis_info evaluationMax Kellermann2008-11-201-7/+6
| | | | | | The ov_info() return value may be corrupt when ov_read() did not return a positive value. First check for success, then check ov_info().
* ogg: revert "use ogg_fopen() instead of ogg_open()"Max Kellermann2008-11-121-6/+9
| | | | | Unfortunately, ov_fopen() is not supported by libvorbis versions older than 1.2.
* ogg: removed stray "}"Max Kellermann2008-11-111-1/+0
| | | | | Due to an unnoticed merge error, there was a superfluous "}". Remove it.
* ogg: use ogg_fopen() instead of ogg_open()Max Kellermann2008-11-111-8/+6
| | | | Move the reponsibility for freeing the file handle to libvorbis.
* ogg: use GLib instead of utils.h/log.hMax Kellermann2008-11-111-6/+8
|
* ogg: get decoder command from decoder_data()Max Kellermann2008-11-111-9/+8
| | | | Eliminate two decoder_get_command() invocations from the main loop.
* ogg: flush buffer after every ov_read() callMax Kellermann2008-11-111-25/+10
| | | | | Don't let the buffer grow until it is full, flush it whenever there is data available.
* decoder: return void from decode() methodsMax Kellermann2008-11-111-5/+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.
* replay_gain: converted struct replay_gain_info elements to an arrayMax Kellermann2008-11-111-4/+4
| | | | | Having an array instead of individual variables allows the use of the replay_gain_mode enum as an array index.
* ogg: ogg_getReplayGainInfo() returns replay_gain_info pointerMax Kellermann2008-11-111-13/+20
| | | | Some code simplification. Avoid pointers to pointers.
* replay_gain: no CamelCaseMax Kellermann2008-11-111-10/+12
| | | | 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.
* decoder: removed stream_typesMax Kellermann2008-11-041-1/+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: automatically send stream tagMax Kellermann2008-11-031-10/+0
| | | | | | | | | | If an input stream provides tags (e.g. from an icecast server), send them in the decoder_data() and decoder_tag() methods. Removed the according code from the mp3 and oggvorbis plugins - decoders shouldn't have to care about stream tags. This patch also adds the missing decoder_tag() invocation to the mp3 plugin.
* ogg, ffmpeg: try to decode, even when the stream is not seekableMax Kellermann2008-11-021-5/+0
| | | | | | | Ogg and ffmpeg detection was disabled when the stream was not seekable, because the detection was too expensive. Since the curl input stream can now rewind the stream cheaply, we can re-enable detection on streams.
* decoder_api: added decoder_tag()Max Kellermann2008-11-021-2/+6
| | | | Provide an API for submitting additional tags from the stream.
* decoder_api: pass "seekable" flag to decoder_initialized()Max Kellermann2008-11-021-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.
* decoder: make the suffixes and mime_types arrays really constMax Kellermann2008-11-011-5/+7
| | | | | The strings were constant, but the pointers weren't. C syntax is somewhat tricky..
* decoder: make all decoder_plugin structs constMax Kellermann2008-11-011-1/+1
| | | | | All decoder_plugin structs are initialized at compile time, and must never change.
* decoder_api: pass constant path pointersMax Kellermann2008-10-311-1/+1
|
* decoder: use bool for return values and flagsMax Kellermann2008-10-301-12/+12
| | | | | Don't return 0/-1 on success/error, but true/false. Instead of int, use bool for storing flags.
* decoder: automatically flush the output buffer after decoder exitsMax Kellermann2008-10-291-3/+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().
* 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-1/+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-2/+2
| | | | Renamed all functions and variables.
* input_stream: removed the InputStream typedefMax Kellermann2008-10-261-4/+6
| | | | Everybody should use struct input_stream.
* renamed src/inputPlugins/ to src/decoder/Max Kellermann2008-10-261-0/+387
These plugins are not input plugins, they are decoder plugins. No CamelCase in the directory name.