Commit message (Collapse) | Author | Files | Lines | ||
---|---|---|---|---|---|
2013-08-04 | *: use gcc.h macros instead of GLib | Max Kellermann | 1 | -4/+5 | |
2013-08-04 | InputPlugin: pass config_param reference | Max Kellermann | 1 | -6/+5 | |
2013-07-30 | tag: convert to C++ | Max Kellermann | 1 | -15/+13 | |
2013-01-29 | require GLib 2.24 | Max Kellermann | 1 | -1/+0 | |
2013-01-28 | InputStream: use std::string | Max Kellermann | 1 | -3/+2 | |
2013-01-28 | InputStream: store references instead of pointers | Max Kellermann | 1 | -12/+12 | |
2013-01-28 | InputStream: add constructor/destructor | Max Kellermann | 1 | -4/+2 | |
Eliminate input_stream_init() and input_stream_deinit(). | |||||
2013-01-27 | DecoderControl, InputStream: use Mutex/Cond instead of GMutex/GCond | Max Kellermann | 1 | -22/+17 | |
2013-01-26 | input_stream: forward-declare the struct | Max Kellermann | 1 | -1/+2 | |
Hide the definition from C code, to prepare the transition to C++. | |||||
2013-01-25 | input_{internal,plugin}: convert to C++ | Max Kellermann | 1 | -2/+2 | |
2013-01-21 | input_internal.h: add extern "C" | Max Kellermann | 1 | -4/+0 | |
2013-01-15 | input/Curl: break loop when remaining length becomes 0 | Max Kellermann | 1 | -0/+6 | |
Fixes assertion failure (regression). | |||||
2013-01-15 | input/Curl: move code to class MultiSocketMonitor | Max Kellermann | 1 | -116/+60 | |
2013-01-15 | input/Curl: simpler GPollFD initialisation | Max Kellermann | 1 | -5/+2 | |
Using initializer list. | |||||
2013-01-15 | input/Curl: don't remove/add modified GPollFD | Max Kellermann | 1 | -9/+2 | |
Not necessary, GLib will pick up the updated GPollFD automatically. | |||||
2013-01-14 | Main, IOThread: move GMainLoop setup code to class EventLoop | Max Kellermann | 1 | -1/+3 | |
2013-01-10 | input/curl: use std::list instead of GQueue | Max Kellermann | 1 | -93/+80 | |
2013-01-10 | icy_metadata: convert to C++ | Max Kellermann | 1 | -13/+11 | |
2013-01-10 | input/Curl: add constructor to input_curl class | Max Kellermann | 1 | -32/+30 | |
2013-01-10 | input/Curl: remove unused source/source_id attributes | Max Kellermann | 1 | -7/+0 | |
2013-01-10 | input/Curl: remove redundant attribute "url" | Max Kellermann | 1 | -4/+2 | |
Use the "url" attribute from the base class instead. | |||||
2013-01-10 | input/Curl: use std::forward_list instead of GSList | Max Kellermann | 1 | -27/+21 | |
2013-01-10 | input/Curl: remove unused attribute "fds" | Max Kellermann | 1 | -3/+1 | |
2013-01-10 | input/Curl: require libcurl 7.18 | Max Kellermann | 1 | -24/+4 | |
2013-01-10 | io_thread: convert to C++ | Max Kellermann | 1 | -1/+1 | |
2013-01-10 | input/{curl,soup}: convert to C++ | Max Kellermann | 1 | -37/+47 | |
2012-04-04 | input/curl: use g_source_get_time() | Max Kellermann | 1 | -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-16 | input_stream: non-blocking I/O | Max Kellermann | 1 | -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-16 | input_plugin: add method check() | Max Kellermann | 1 | -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-16 | input/{soup,curl}: free unused postponed_error | Max Kellermann | 1 | -0/+5 | |
Fix memory leak. | |||||
2011-09-16 | input/curl: wait some more before resuming the stream | Max Kellermann | 1 | -1/+6 | |
Pausing and resuming after every little chunk adds lots of overhead. Add a lower level for resuming the stream. | |||||
2011-09-16 | input/curl: clear the "paused" flag before resuming | Max Kellermann | 1 | -1/+1 | |
curl_easy_pause(CURLPAUSE_CONT) may have added enough data to go into pause again. | |||||
2011-09-16 | input/curl: remove _schedule_update() | Max Kellermann | 1 | -48/+1 | |
Call _update_fds() directly. This is possible because it's only called from within the I/O thread. | |||||
2011-09-16 | input/curl: unlock the mutex for io_thread_call() | Max Kellermann | 1 | -1/+4 | |
Fix deadlock. | |||||
2011-09-16 | input/curl, output/pulse: fix "unused local variable" warnings | Max Kellermann | 1 | -1/+1 | |
2011-09-15 | input/curl: per-request mutex/cond | Max Kellermann | 1 | -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-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/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_stream: move input_stream_init(), _deinit() to _internal.c | Max Kellermann | 1 | -0/+1 | |
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/curl: remove obsolete function input_curl_reinit() | Max Kellermann | 1 | -12/+0 | |