Commit message (Collapse) | Author | Files | Lines | ||
---|---|---|---|---|---|
2011-09-15 | input/curl: move all libCURL calls to the I/O thread | Max Kellermann | 1 | -29/+69 | |
This adds some overheads for indirect calls to the I/O thread, but reduces the amount of global locks. Next step will be switching to per-request locks. | |||||
2011-09-15 | input/file: return NULL instead of "false" | Max Kellermann | 1 | -4/+4 | |
2011-09-15 | input/curl: don't set "ready" on _easy_free() | Max Kellermann | 1 | -3/+2 | |
Move the assignment to _request_done(), right before the GCond is signalled. This might fix spurious wakeups. | |||||
2011-09-15 | input/curl: add assertions on io_thread_inside() | Max Kellermann | 1 | -0/+9 | |
2011-09-15 | input/curl: merge _request_abort() into _request_done() | Max Kellermann | 1 | -31/+19 | |
This is a trivial function. Merge some duplicate code, e.g. the g_cond_broadcast() call. | |||||
2011-09-15 | input/curl: API documentation fix | Max Kellermann | 1 | -1/+1 | |
2011-09-14 | input_plugin: add method update() | Max Kellermann | 1 | -0/+10 | |
Update the struct attributes, important for facades like the "rewind" plugin. To replace buffer(). | |||||
2011-09-14 | input_stream: move input_stream_init(), _deinit() to _internal.c | Max Kellermann | 8 | -0/+8 | |
2011-08-26 | input/curl: implement a hard-coded timeout of 10 seconds | Max Kellermann | 1 | -0/+3 | |
Be sure to stop the operation at some point when the server isn't responding. | |||||
2011-08-25 | input/curl: use the I/O thread | Max Kellermann | 1 | -222/+653 | |
Background buffering and better timeout handling. This patch sort of obsoletes the input_plugin method buffer(). | |||||
2011-08-25 | input/curl: eliminate attribute "eof" | Max Kellermann | 1 | -11/+4 | |
Assume the flag is true when the "easy" CURL handle is NULL. That way, we don't need to keep track if CURL has sent us the "DONE" information yet. | |||||
2011-08-25 | input/curl: release "easy" CURL handle as early as possible | Max Kellermann | 1 | -9/+10 | |
Release it immediately when end-of-file has been reached. We don't need that handle anymore, because the rest is delivered from the buffers. | |||||
2011-08-25 | input/curl: move code to input_curl_flush_buffers() | Max Kellermann | 1 | -3/+9 | |
Allow closing the handle while preserving the remaining buffers. | |||||
2011-08-25 | input/curl: pass input_curl to fill_buffer() | Max Kellermann | 1 | -4/+3 | |
Remove a cast. | |||||
2011-08-25 | input/curl: set GError when init() fails | Max Kellermann | 1 | -2/+3 | |
Let the caller know what happened, he's responsible for logging. | |||||
2011-08-24 | input/soup: free all resources in method close() | Max Kellermann | 1 | -0/+10 | |
2011-08-24 | input/soup: new input plugin based on libsoup | Max Kellermann | 2 | -0/+395 | |
To demonstrate the new I/O thread. libsoup is well-integrated into the GLib main loop, which made this plugin pretty easy to write. As a side effect, we have to initialize the I/O thread in all debug programs that use the input API. | |||||
2011-08-24 | input/curl: remove obsolete function input_curl_reinit() | Max Kellermann | 3 | -21/+0 | |
2011-08-23 | input/curl: limit the receive buffer size | Max Kellermann | 1 | -0/+30 | |
2011-07-03 | decoder/ffmpeg: use AVIO_FLAG_READ on newer ffmpeg versions | Skottish | 1 | -1/+3 | |
FFmpeg/libav have dropped AVIO_RDONLY in favor of AVIO_FLAG_READ. This patch fixes that in MPD. | |||||
2011-05-09 | input/ffmpeg: use the new AVIOContext API | Max Kellermann | 1 | -1/+37 | |
URLContext is deprecated. | |||||
2011-04-12 | decoder/ffmpeg: drop support for pre-0.5 ffmpeg | Anton Khirnov | 1 | -7/+0 | |
All modern distros ship 0.5, so there's no need to support old and buggy ffmpeg versions. | |||||
2011-03-29 | input: Add despotify input plugin | Simon Kagstrom | 2 | -0/+251 | |
For Spotify tracks. Uses a spt URI, so with mpc you can play tracks with e.g., mpc add spt://spotify:track:5qENVY0YEdZ7fiuOax70x1 mpc play Uses the pcm_decoder_plugin for the output | |||||
2011-01-29 | copyright year 2011 | Max Kellermann | 14 | -14/+14 | |
2011-01-29 | input/curl: enable CURLOPT_NETRC | Ian Zimmerman | 1 | -0/+1 | |
I wanted mpd to play a mp3 stream from a music website. The stream is only available to subscribers, which restriction is enforced through normal http authentication. However, the URL I get from the website is not the final URL of the stream, but a generic URL which points to the real one through a redirect (code 301). Thus, I cannot predict the final URL, and so I cannot use the username:password hack to force the authentication, and mpd (libcurl on mpds behalf) fails to grab the stream. libcurl allows the option CURLOPT_NETRC to be set and then the credentials can be stored in the good old .netrc file (in this case it would be ~mpd/.netrc, of course). But mpd doesn't set this option. I think it should. | |||||
2011-01-08 | input/cdio_paranoia: add module name | Max Kellermann | 1 | -0/+1 | |
Seems like we forgot to give this module a name... this can crash MPD on startup. | |||||
2010-12-22 | input/cdda: rename plugin to "cdio_paranoia" | Max Kellermann | 2 | -42/+42 | |
2010-12-22 | input/cdda: support reading the whole disc | Max Kellermann | 1 | -10/+8 | |
2010-12-22 | input/cdda: remove unused function input_cdda_archive_extract_trackno() | Max Kellermann | 1 | -24/+0 | |
2010-12-22 | input/cdda: import missing pcm16_to_wave() from the wave encoder | Max Kellermann | 1 | -0/+11 | |
2010-12-22 | input/cdda: implement parse_cdda_uri() | Max Kellermann | 1 | -10/+59 | |
Was missing. | |||||
2010-12-22 | input/cdda: call input_cdda_close() with an input_stream pointer | Max Kellermann | 1 | -5/+5 | |
Another build fix. | |||||
2010-12-22 | input/cdda: move code to cdda_detect_drive() | Max Kellermann | 1 | -7/+18 | |
2010-12-22 | input/cdda: remove newlines from error messages | Max Kellermann | 1 | -8/+10 | |
2010-12-22 | input/cdda: remove debug code | Max Kellermann | 1 | -31/+1 | |
2010-12-22 | input/cdda: some general build failure fixes | Max Kellermann | 1 | -13/+5 | |
2010-12-22 | input_cdda_plugin: new plugin to handle cdda:// protocol to access CD-DA ↵ | Viliam Mateicka | 2 | -0/+406 | |
audio CD's | |||||
2010-11-08 | input/rewind: fix assertion failure | Max Kellermann | 1 | -1/+1 | |
The assertion added in MPD 0.15.14 was too much, it failed when the MIME type of a stream was NULL. | |||||
2010-11-05 | input/rewind: remove redundant NULL check before g_free() call | Max Kellermann | 1 | -2/+1 | |
2010-11-05 | input/rewind: add two assertions | Max Kellermann | 1 | -0/+3 | |
2010-11-05 | input/rewind: fix double free bug | Max Kellermann | 1 | -0/+1 | |
Duplicate the "mime" attribute of the inner input_stream object, instead of copying the pointer. | |||||
2010-09-28 | input/rewind: enable for MMS | Thomas Jansen | 1 | -2/+10 | |
2010-09-23 | rewind_input_plugin: Update MIME not only once | Thomas Jansen | 1 | -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. | |||||
2010-09-07 | input/curl: fix version check for curl_multi_timeout() | Max Kellermann | 1 | -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 | |||||
2010-07-20 | input/curl: remove assertion after curl_multi_fdset() | Max Kellermann | 1 | -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. | |||||
2010-07-20 | input/curl: query timeout from CURL | Max Kellermann | 1 | -1/+18 | |
Use curl_multi_timeout() to determine the select() timeout, instead of hard-coding one second. | |||||
2010-05-20 | input/file, output/{fifo,recorder}: add O_BINARY to open() flags | Max Kellermann | 1 | -2/+2 | |
Windows compatibility. | |||||
2010-05-18 | input/ffmpeg: new input plugin using libavformat's "avio" library | Max Kellermann | 2 | -0/+196 | |
2010-05-18 | input/mms: removed empty method buffer() | Max Kellermann | 1 | -8/+0 | |
input_stream_buffer() has a check for "buffer==NULL", so we don't need an explicit empty implementation. | |||||
2010-05-18 | input/mms: initialize the "eof" attribute | Max Kellermann | 1 | -0/+2 | |