Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | input/curl: move all libCURL calls to the I/O thread | Max Kellermann | 2011-09-15 | 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. | ||||
* | input/file: return NULL instead of "false" | Max Kellermann | 2011-09-15 | 1 | -4/+4 |
| | |||||
* | input/curl: don't set "ready" on _easy_free() | Max Kellermann | 2011-09-15 | 1 | -3/+2 |
| | | | | | Move the assignment to _request_done(), right before the GCond is signalled. This might fix spurious wakeups. | ||||
* | input/curl: add assertions on io_thread_inside() | Max Kellermann | 2011-09-15 | 1 | -0/+9 |
| | |||||
* | input/curl: merge _request_abort() into _request_done() | Max Kellermann | 2011-09-15 | 1 | -31/+19 |
| | | | | | This is a trivial function. Merge some duplicate code, e.g. the g_cond_broadcast() call. | ||||
* | input/curl: API documentation fix | Max Kellermann | 2011-09-15 | 1 | -1/+1 |
| | |||||
* | input_plugin: add method update() | Max Kellermann | 2011-09-14 | 1 | -0/+10 |
| | | | | | Update the struct attributes, important for facades like the "rewind" plugin. To replace buffer(). | ||||
* | input_stream: move input_stream_init(), _deinit() to _internal.c | Max Kellermann | 2011-09-14 | 8 | -0/+8 |
| | |||||
* | Merge branch 'v0.16.x' | Max Kellermann | 2011-09-01 | 1 | -0/+3 |
|\ | | | | | | | | | | | Conflicts: configure.ac src/output_control.c | ||||
| * | input/curl: implement a hard-coded timeout of 10 seconds | Max Kellermann | 2011-08-26 | 1 | -0/+3 |
| | | | | | | | | | | Be sure to stop the operation at some point when the server isn't responding. | ||||
* | | input/curl: use the I/O thread | Max Kellermann | 2011-08-25 | 1 | -222/+653 |
| | | | | | | | | | | Background buffering and better timeout handling. This patch sort of obsoletes the input_plugin method buffer(). | ||||
* | | input/curl: eliminate attribute "eof" | Max Kellermann | 2011-08-25 | 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. | ||||
* | | input/curl: release "easy" CURL handle as early as possible | Max Kellermann | 2011-08-25 | 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. | ||||
* | | input/curl: move code to input_curl_flush_buffers() | Max Kellermann | 2011-08-25 | 1 | -3/+9 |
| | | | | | | | | Allow closing the handle while preserving the remaining buffers. | ||||
* | | input/curl: pass input_curl to fill_buffer() | Max Kellermann | 2011-08-25 | 1 | -4/+3 |
| | | | | | | | | Remove a cast. | ||||
* | | input/curl: set GError when init() fails | Max Kellermann | 2011-08-25 | 1 | -2/+3 |
| | | | | | | | | Let the caller know what happened, he's responsible for logging. | ||||
* | | input/soup: free all resources in method close() | Max Kellermann | 2011-08-24 | 1 | -0/+10 |
| | | |||||
* | | input/soup: new input plugin based on libsoup | Max Kellermann | 2011-08-24 | 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. | ||||
* | | input/curl: remove obsolete function input_curl_reinit() | Max Kellermann | 2011-08-24 | 3 | -21/+0 |
| | | |||||
* | | Merge branch 'v0.16.x' | Max Kellermann | 2011-08-24 | 1 | -0/+30 |
|\| | |||||
| * | input/curl: limit the receive buffer size | Max Kellermann | 2011-08-23 | 1 | -0/+30 |
| | | |||||
* | | decoder/ffmpeg: use AVIO_FLAG_READ on newer ffmpeg versions | Skottish | 2011-07-03 | 1 | -1/+3 |
| | | | | | | | | | | FFmpeg/libav have dropped AVIO_RDONLY in favor of AVIO_FLAG_READ. This patch fixes that in MPD. | ||||
* | | input/ffmpeg: use the new AVIOContext API | Max Kellermann | 2011-05-09 | 1 | -1/+37 |
| | | | | | | | | URLContext is deprecated. | ||||
* | | decoder/ffmpeg: drop support for pre-0.5 ffmpeg | Anton Khirnov | 2011-04-12 | 1 | -7/+0 |
| | | | | | | | | | | All modern distros ship 0.5, so there's no need to support old and buggy ffmpeg versions. | ||||
* | | input: Add despotify input plugin | Simon Kagstrom | 2011-03-29 | 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 | ||||
* | | copyright year 2011 | Max Kellermann | 2011-01-29 | 14 | -14/+14 |
| | | |||||
* | | input/curl: enable CURLOPT_NETRC | Ian Zimmerman | 2011-01-29 | 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. | ||||
* | | input/cdio_paranoia: add module name | Max Kellermann | 2011-01-08 | 1 | -0/+1 |
| | | | | | | | | | | Seems like we forgot to give this module a name... this can crash MPD on startup. | ||||
* | | input/cdda: rename plugin to "cdio_paranoia" | Max Kellermann | 2010-12-22 | 2 | -42/+42 |
| | | |||||
* | | input/cdda: support reading the whole disc | Max Kellermann | 2010-12-22 | 1 | -10/+8 |
| | | |||||
* | | input/cdda: remove unused function input_cdda_archive_extract_trackno() | Max Kellermann | 2010-12-22 | 1 | -24/+0 |
| | | |||||
* | | input/cdda: import missing pcm16_to_wave() from the wave encoder | Max Kellermann | 2010-12-22 | 1 | -0/+11 |
| | | |||||
* | | input/cdda: implement parse_cdda_uri() | Max Kellermann | 2010-12-22 | 1 | -10/+59 |
| | | | | | | | | Was missing. | ||||
* | | input/cdda: call input_cdda_close() with an input_stream pointer | Max Kellermann | 2010-12-22 | 1 | -5/+5 |
| | | | | | | | | Another build fix. | ||||
* | | input/cdda: move code to cdda_detect_drive() | Max Kellermann | 2010-12-22 | 1 | -7/+18 |
| | | |||||
* | | input/cdda: remove newlines from error messages | Max Kellermann | 2010-12-22 | 1 | -8/+10 |
| | | |||||
* | | input/cdda: remove debug code | Max Kellermann | 2010-12-22 | 1 | -31/+1 |
| | | |||||
* | | input/cdda: some general build failure fixes | Max Kellermann | 2010-12-22 | 1 | -13/+5 |
| | | |||||
* | | input_cdda_plugin: new plugin to handle cdda:// protocol to access CD-DA ↵ | Viliam Mateicka | 2010-12-22 | 2 | -0/+406 |
|/ | | | | audio CD's | ||||
* | Merge release 0.15.15 from branch 'v0.15.x' | Max Kellermann | 2010-11-08 | 1 | -1/+1 |
|\ | | | | | | | | | | | Conflicts: NEWS configure.ac | ||||
| * | input/rewind: fix assertion failure | Max Kellermann | 2010-11-08 | 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. | ||||
* | | Merge release 0.15.14 from branch 'v0.15.x' | Max Kellermann | 2010-11-07 | 1 | -2/+4 |
|\| | | | | | | | | | | | | | | | | | | | | | | | Conflicts: NEWS configure.ac src/decoder_control.c src/decoder_control.h src/input/rewind_input_plugin.c src/output_control.c src/output_thread.c src/player_thread.c | ||||
| * | input/rewind: remove redundant NULL check before g_free() call | Max Kellermann | 2010-11-05 | 1 | -2/+1 |
| | | |||||
| * | input/rewind: add two assertions | Max Kellermann | 2010-11-05 | 1 | -0/+3 |
| | | |||||
| * | input/rewind: fix double free bug | Max Kellermann | 2010-11-05 | 1 | -0/+1 |
| | | | | | | | | | | Duplicate the "mime" attribute of the inner input_stream object, instead of copying the pointer. | ||||
* | | Merge release 0.15.13 from branch 'v0.15.x' | Max Kellermann | 2010-10-11 | 2 | -4/+5 |
|\| | | | | | | | | | | | | | | | Conflicts: NEWS configure.ac src/input/rewind_input_plugin.c src/output/httpd_output_plugin.c | ||||
| * | input/rewind: enable for MMS | Thomas Jansen | 2010-09-28 | 1 | -2/+10 |
| | | |||||
| * | rewind_input_plugin: Update MIME not only once | Thomas Jansen | 2010-09-23 | 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. | ||||
| * | input/curl: fix version check for curl_multi_timeout() | Max Kellermann | 2010-09-07 | 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 | ||||
* | | Merge release 0.15.12 from branch 'v0.15.x' | Max Kellermann | 2010-07-20 | 1 | -2/+17 |
|\| | | | | | | | | | | | Conflicts: NEWS configure.ac |