aboutsummaryrefslogtreecommitdiffstats
path: root/src/input (follow)
Commit message (Collapse)AuthorAgeFilesLines
* input/rewind: enable for MMSThomas Jansen2010-09-281-2/+10
|
* rewind_input_plugin: Update MIME not only onceThomas Jansen2010-09-231-3/+4
| | | | | | | The assumption that MIME type is set only once is not valid with CURL, as URL redirections may update the MIME type. This fixes bug #3044.
* input/curl: fix version check for curl_multi_timeout()Max Kellermann2010-09-071-1/+1
| | | | | | | According to the CURL web site, curl_multi_timeout() was added in version 7.15.4: http://curl.haxx.se/libcurl/c/curl_multi_timeout.html
* input/curl: remove assertion after curl_multi_fdset()Max Kellermann2010-07-201-2/+0
| | | | | | | | | | | | | | | | | Some users reported that MPD crashes when using a new CURL version with the threaded DNS resolver enabled. It seems that curl_multi_fdset() returns no file descriptor when the DNS resolver runs in another thread, so MPD does not have any event to wait for. On the CURL mailing list, somebody suggested to sleep for a fixed amount of time. This is not an elegant solution, because daemons should never have to sleep without waiting for an event. I hope the CURL developers will review the API and remove the threaded DNS resolver. Meanwhile, I'm removing the assertion in question, to allow those unfortunate users running the latest CURL version to continue using MPD.
* input/curl: query timeout from CURLMax Kellermann2010-07-201-1/+18
| | | | | Use curl_multi_timeout() to determine the select() timeout, instead of hard-coding one second.
* input/mms: initialize the "eof" attributeMax Kellermann2010-05-181-0/+2
|
* input/mms: fix memory leak in error handlerMax Kellermann2010-05-181-0/+1
|
* input/curl: removed the built-in rewinding codeMax Kellermann2009-12-301-181/+10
| | | | This has been reimplemented in the "rewind" input plugin.
* input/rewind: new input_stream wrapper to allow stream rewindingMax Kellermann2009-12-294-0/+309
| | | | | | | | | | | | This replaces the rewinding buffer code from the CURL input plugin. It is more generic, and allows rewinding even when the server sends Icy-Metadata (which would have been too difficult to implement within the CURL plugin). This is a rather complex patch for the stable branch (v0.15.x), but it fixes a serious problem: the "vorbis" decoder plugin was unable to play streams with Icy-Metadata, because it couldn't rewind the stream after detecting the codec (Vorbis vs. FLAC).
* input/archive: close the archive file on errorMax Kellermann2009-12-151-0/+1
| | | | Fixed memory leak in error handler.
* input/file: don't fall back to parent directoryMax Kellermann2009-12-151-18/+3
| | | | | This code has never made any sense, and has broken some of the archive plugin.
* input/lastfm: fixed variable name in GLib<2.16 code pathMax Kellermann2009-11-101-1/+1
| | | | Should be "lastfm_user", not "lastfm_username".
* input/curl: fixed endless loop during bufferingMax Kellermann2009-10-131-1/+1
| | | | | | | When the connection is lost while buffering, the CURL input plugin may enter an endless loop, because it does not check the EOF condition. This patch makes fill_buffer() return success only if there's at least one buffer, which is enough of a check.x
* input/curl: don't abort if a packet has only metadataMax Kellermann2009-10-111-20/+22
| | | | | | | | | When a received chunk of data has only icy-metadata, there was no usable data left for input_curl_read() to return, and thus it returned 0 bytes. "0" however is a special value for "end of file" or "error". This patch makes input_curl_read() read more data from the socket, until the read request can be fulfilled (or until there's really EOF).
* input/curl: moved code to fill_buffer()Max Kellermann2009-10-111-27/+40
|
* input/mms: fix G_LOG_DOMAIN valueSerge Ziryukin2009-09-201-1/+1
|
* input/file: log message on errorMathieu Rochette2009-05-281-0/+2
| | | | | | | | If a file is removed the library, next time mpd will try to play it it will result in an error 'ERROR: problems decoding some/file.ogg'. Nothing is written in log files (verbose mode or not) [mk: append strerror(errno)]
* input_curl: use g_ascii_strcasecmp() instead of strcasecmp()Max Kellermann2009-04-281-7/+7
| | | | | strcasecmp() is locale dependent, making it a bad choice for internal string comparisons.
* curl: moved proxy settings to "input" blockMax Kellermann2009-04-251-24/+26
| | | | | The old global settings "http_proxy_host", "http_proxy_port", "http_proxy_user" and "http_proxy_password" continue to work.
* Add winsock2 headers for curl's use of select() on socketsSean McNamara2009-03-271-1/+7
|
* all: Update copyright header.Avuton Olrich2009-03-1310-51/+61
| | | | | | | | 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.
* decoder_plugin: added method container_scan()Jochen Keil2009-03-091-2/+17
| | | | | [mk: fixed whitespace errors; use delete_song() instead of songvec_delete()]
* curl: reverse GLIB_CHECK_VERSION()Max Kellermann2009-03-061-1/+1
| | | | | The GLIB_CHECK_VERSION() macro was used improperly, which broke build on GLib < 2.14. Add a "!" for negation.
* input_lastfm: new input plugin for last.fm radioMax Kellermann2009-03-022-0/+252
| | | | | | | The lastfm input plugin enables MPD to play lastfm:// URLs. This plugin is not complete yet: it plays only the first song in the last.fm playlist, and the playlist parser isn't even implemented properly.
* input: pass config_param to input_plugin.init()Max Kellermann2009-03-024-1/+5
| | | | | Allow input plugins to configure with an "input" block in mpd.conf. Also allow the user to disable a plugin completely.
* input_plugin: added methods init(), finish()Max Kellermann2009-03-022-7/+12
| | | | | | Instead of hard-coding the plugin global initialization in input_stream_global_init(), make it walk the plugin list and initialize all plugins.
* input: moved plugins to ./src/input/Max Kellermann2009-03-028-0/+1388
Create a sub directory for input plugins.