aboutsummaryrefslogtreecommitdiffstats
path: root/src/input (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* | input/curl: unlock the mutex for io_thread_call()Max Kellermann2011-09-161-1/+4
| | | | | | | | Fix deadlock.
* | input/soup: fix "unused local variable" warningsMax Kellermann2011-09-161-1/+1
| |
* | Merge branch 'v0.16.x'Max Kellermann2011-09-161-1/+1
|\|
| * input/curl, output/pulse: fix "unused local variable" warningsMax Kellermann2011-09-161-1/+1
| |
* | Merge branch 'v0.16.x'Max Kellermann2011-09-151-1/+3
|\| | | | | | | | | | | Conflicts: NEWS configure.ac
| * input/rewind: copy the MIME type only onceMax Kellermann2011-09-151-1/+3
| | | | | | | | Reduce heap usage by reducing the number of malloc() / free() calls.
* | input/curl: per-request mutex/condMax Kellermann2011-09-151-33/+35
| | | | | | | | | | | | | | The global data structures are now lock-free, because they are accessed only from the I/O thread. By using per-request locks, we have finer grained locking, preparing for locks shared with the client.
* | input/curl: move all libCURL calls to the I/O threadMax Kellermann2011-09-151-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 Kellermann2011-09-151-4/+4
| |
* | input/curl: don't set "ready" on _easy_free()Max Kellermann2011-09-151-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 Kellermann2011-09-151-0/+9
| |
* | input/curl: merge _request_abort() into _request_done()Max Kellermann2011-09-151-31/+19
| | | | | | | | | | This is a trivial function. Merge some duplicate code, e.g. the g_cond_broadcast() call.
* | input/curl: API documentation fixMax Kellermann2011-09-151-1/+1
| |
* | input_plugin: add method update()Max Kellermann2011-09-141-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.cMax Kellermann2011-09-148-0/+8
| |
* | Merge branch 'v0.16.x'Max Kellermann2011-09-011-0/+3
|\| | | | | | | | | | | Conflicts: configure.ac src/output_control.c
| * input/curl: implement a hard-coded timeout of 10 secondsMax Kellermann2011-08-261-0/+3
| | | | | | | | | | Be sure to stop the operation at some point when the server isn't responding.
* | input/curl: use the I/O threadMax Kellermann2011-08-251-222/+653
| | | | | | | | | | Background buffering and better timeout handling. This patch sort of obsoletes the input_plugin method buffer().
* | input/curl: eliminate attribute "eof"Max Kellermann2011-08-251-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 possibleMax Kellermann2011-08-251-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 Kellermann2011-08-251-3/+9
| | | | | | | | Allow closing the handle while preserving the remaining buffers.
* | input/curl: pass input_curl to fill_buffer()Max Kellermann2011-08-251-4/+3
| | | | | | | | Remove a cast.
* | input/curl: set GError when init() failsMax Kellermann2011-08-251-2/+3
| | | | | | | | Let the caller know what happened, he's responsible for logging.
* | input/soup: free all resources in method close()Max Kellermann2011-08-241-0/+10
| |
* | input/soup: new input plugin based on libsoupMax Kellermann2011-08-242-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 Kellermann2011-08-243-21/+0
| |
* | Merge branch 'v0.16.x'Max Kellermann2011-08-241-0/+30
|\|
| * input/curl: limit the receive buffer sizeMax Kellermann2011-08-231-0/+30
| |
* | decoder/ffmpeg: use AVIO_FLAG_READ on newer ffmpeg versionsSkottish2011-07-031-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 APIMax Kellermann2011-05-091-1/+37
| | | | | | | | URLContext is deprecated.
* | decoder/ffmpeg: drop support for pre-0.5 ffmpegAnton Khirnov2011-04-121-7/+0
| | | | | | | | | | All modern distros ship 0.5, so there's no need to support old and buggy ffmpeg versions.
* | input: Add despotify input pluginSimon Kagstrom2011-03-292-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 2011Max Kellermann2011-01-2914-14/+14
| |
* | input/curl: enable CURLOPT_NETRCIan Zimmerman2011-01-291-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 nameMax Kellermann2011-01-081-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 Kellermann2010-12-222-42/+42
| |
* | input/cdda: support reading the whole discMax Kellermann2010-12-221-10/+8
| |
* | input/cdda: remove unused function input_cdda_archive_extract_trackno()Max Kellermann2010-12-221-24/+0
| |
* | input/cdda: import missing pcm16_to_wave() from the wave encoderMax Kellermann2010-12-221-0/+11
| |
* | input/cdda: implement parse_cdda_uri()Max Kellermann2010-12-221-10/+59
| | | | | | | | Was missing.
* | input/cdda: call input_cdda_close() with an input_stream pointerMax Kellermann2010-12-221-5/+5
| | | | | | | | Another build fix.
* | input/cdda: move code to cdda_detect_drive()Max Kellermann2010-12-221-7/+18
| |
* | input/cdda: remove newlines from error messagesMax Kellermann2010-12-221-8/+10
| |
* | input/cdda: remove debug codeMax Kellermann2010-12-221-31/+1
| |
* | input/cdda: some general build failure fixesMax Kellermann2010-12-221-13/+5
| |
* | input_cdda_plugin: new plugin to handle cdda:// protocol to access CD-DA ↵Viliam Mateicka2010-12-222-0/+406
|/ | | | audio CD's
* Merge release 0.15.15 from branch 'v0.15.x'Max Kellermann2010-11-081-1/+1
|\ | | | | | | | | | | Conflicts: NEWS configure.ac
| * input/rewind: fix assertion failureMax Kellermann2010-11-081-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 Kellermann2010-11-071-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() callMax Kellermann2010-11-051-2/+1
| |