aboutsummaryrefslogtreecommitdiffstats
path: root/src/input/CurlInputPlugin.cxx (unfollow)
Commit message (Collapse)AuthorFilesLines
2013-08-10event/MultiSocketMonitor: eliminate virtual method CheckSockets()Max Kellermann1-28/+0
Handle timeout internally.
2013-08-10event/MultiSocketMonitor: PrepareSockets() returns timeoutMax Kellermann1-6/+7
Simplify the API, don't use GLib specific integer type.
2013-08-08event: add function BlockingCall()Max Kellermann1-52/+21
Replaces io_thread_call(). This approach is more generic and easier to use due to std::function.
2013-08-04*: use gcc.h macros instead of GLibMax Kellermann1-4/+5
2013-08-04InputPlugin: pass config_param referenceMax Kellermann1-6/+5
2013-07-30tag: convert to C++Max Kellermann1-15/+13
2013-01-29require GLib 2.24Max Kellermann1-1/+0
2013-01-28InputStream: use std::stringMax Kellermann1-3/+2
2013-01-28InputStream: store references instead of pointersMax Kellermann1-12/+12
2013-01-28InputStream: add constructor/destructorMax Kellermann1-4/+2
Eliminate input_stream_init() and input_stream_deinit().
2013-01-27DecoderControl, InputStream: use Mutex/Cond instead of GMutex/GCondMax Kellermann1-22/+17
2013-01-26input_stream: forward-declare the structMax Kellermann1-1/+2
Hide the definition from C code, to prepare the transition to C++.
2013-01-25input_{internal,plugin}: convert to C++Max Kellermann1-2/+2
2013-01-21input_internal.h: add extern "C"Max Kellermann1-4/+0
2013-01-15input/Curl: break loop when remaining length becomes 0Max Kellermann1-0/+6
Fixes assertion failure (regression).
2013-01-15input/Curl: move code to class MultiSocketMonitorMax Kellermann1-116/+60
2013-01-15input/Curl: simpler GPollFD initialisationMax Kellermann1-5/+2
Using initializer list.
2013-01-15input/Curl: don't remove/add modified GPollFDMax Kellermann1-9/+2
Not necessary, GLib will pick up the updated GPollFD automatically.
2013-01-14Main, IOThread: move GMainLoop setup code to class EventLoopMax Kellermann1-1/+3
2013-01-10input/curl: use std::list instead of GQueueMax Kellermann1-93/+80
2013-01-10icy_metadata: convert to C++Max Kellermann1-13/+11
2013-01-10input/Curl: add constructor to input_curl classMax Kellermann1-32/+30
2013-01-10input/Curl: remove unused source/source_id attributesMax Kellermann1-7/+0
2013-01-10input/Curl: remove redundant attribute "url"Max Kellermann1-4/+2
Use the "url" attribute from the base class instead.
2013-01-10input/Curl: use std::forward_list instead of GSListMax Kellermann1-27/+21
2013-01-10input/Curl: remove unused attribute "fds"Max Kellermann1-3/+1
2013-01-10input/Curl: require libcurl 7.18Max Kellermann1-24/+4
2013-01-10io_thread: convert to C++Max Kellermann1-1/+1
2013-01-10input/{curl,soup}: convert to C++Max Kellermann1-37/+47
2012-04-04input/curl: use g_source_get_time()Max Kellermann1-12/+5
g_source_get_current_time() is deprecated since GLib 2.28. This patch adds a compatibility wrapper for older GLib versions to glib_compat.h.
2011-09-16input_stream: non-blocking I/OMax Kellermann1-72/+36
Add GMutex, GCond attributes which will be used by callers to conditionally wait on the stream. Remove the (now-useless) plugin method buffer(), wait on GCond instead. Lock the input_stream before each method call. Do the same with the playlist plugins.
2011-09-16input_plugin: add method check()Max Kellermann1-0/+18
To check for errors without reading. The decoder thread wants to do that, before it passes the input stream to the plugin.
2011-09-16input/{soup,curl}: free unused postponed_errorMax Kellermann1-0/+5
Fix memory leak.
2011-09-16input/curl: wait some more before resuming the streamMax Kellermann1-1/+6
Pausing and resuming after every little chunk adds lots of overhead. Add a lower level for resuming the stream.
2011-09-16input/curl: clear the "paused" flag before resumingMax Kellermann1-1/+1
curl_easy_pause(CURLPAUSE_CONT) may have added enough data to go into pause again.
2011-09-16input/curl: remove _schedule_update()Max Kellermann1-48/+1
Call _update_fds() directly. This is possible because it's only called from within the I/O thread.
2011-09-16input/curl: unlock the mutex for io_thread_call()Max Kellermann1-1/+4
Fix deadlock.
2011-09-16input/curl, output/pulse: fix "unused local variable" warningsMax Kellermann1-1/+1
2011-09-15input/curl: per-request mutex/condMax Kellermann1-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.
2011-09-15input/curl: move all libCURL calls to the I/O threadMax Kellermann1-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-15input/curl: don't set "ready" on _easy_free()Max Kellermann1-3/+2
Move the assignment to _request_done(), right before the GCond is signalled. This might fix spurious wakeups.
2011-09-15input/curl: add assertions on io_thread_inside()Max Kellermann1-0/+9
2011-09-15input/curl: merge _request_abort() into _request_done()Max Kellermann1-31/+19
This is a trivial function. Merge some duplicate code, e.g. the g_cond_broadcast() call.
2011-09-15input/curl: API documentation fixMax Kellermann1-1/+1
2011-09-14input_stream: move input_stream_init(), _deinit() to _internal.cMax Kellermann1-0/+1
2011-08-26input/curl: implement a hard-coded timeout of 10 secondsMax Kellermann1-0/+3
Be sure to stop the operation at some point when the server isn't responding.
2011-08-25input/curl: use the I/O threadMax Kellermann1-222/+653
Background buffering and better timeout handling. This patch sort of obsoletes the input_plugin method buffer().
2011-08-25input/curl: eliminate attribute "eof"Max Kellermann1-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-25input/curl: release "easy" CURL handle as early as possibleMax Kellermann1-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-25input/curl: move code to input_curl_flush_buffers()Max Kellermann1-3/+9
Allow closing the handle while preserving the remaining buffers.