Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | input/Curl: break loop when remaining length becomes 0 | Max Kellermann | 2013-01-15 | 1 | -0/+6 |
| | | | | Fixes assertion failure (regression). | ||||
* | input/Curl: move code to class MultiSocketMonitor | Max Kellermann | 2013-01-15 | 1 | -116/+60 |
| | |||||
* | input/Curl: simpler GPollFD initialisation | Max Kellermann | 2013-01-15 | 1 | -5/+2 |
| | | | | Using initializer list. | ||||
* | input/Curl: don't remove/add modified GPollFD | Max Kellermann | 2013-01-15 | 1 | -9/+2 |
| | | | | Not necessary, GLib will pick up the updated GPollFD automatically. | ||||
* | Main, IOThread: move GMainLoop setup code to class EventLoop | Max Kellermann | 2013-01-14 | 2 | -2/+5 |
| | |||||
* | input/curl: use std::list instead of GQueue | Max Kellermann | 2013-01-10 | 1 | -93/+80 |
| | |||||
* | icy_metadata: convert to C++ | Max Kellermann | 2013-01-10 | 1 | -13/+11 |
| | |||||
* | input/Curl: add constructor to input_curl class | Max Kellermann | 2013-01-10 | 1 | -32/+30 |
| | |||||
* | input/Curl: remove unused source/source_id attributes | Max Kellermann | 2013-01-10 | 1 | -7/+0 |
| | |||||
* | input/Curl: remove redundant attribute "url" | Max Kellermann | 2013-01-10 | 1 | -4/+2 |
| | | | | Use the "url" attribute from the base class instead. | ||||
* | input/Curl: use std::forward_list instead of GSList | Max Kellermann | 2013-01-10 | 1 | -27/+21 |
| | |||||
* | input/Curl: remove unused attribute "fds" | Max Kellermann | 2013-01-10 | 1 | -3/+1 |
| | |||||
* | input/Curl: require libcurl 7.18 | Max Kellermann | 2013-01-10 | 1 | -24/+4 |
| | |||||
* | io_thread: convert to C++ | Max Kellermann | 2013-01-10 | 2 | -2/+2 |
| | |||||
* | input/{curl,soup}: convert to C++ | Max Kellermann | 2013-01-10 | 4 | -65/+84 |
| | |||||
* | input/file: use errno_quark() | Max Kellermann | 2012-10-04 | 1 | -11/+6 |
| | |||||
* | input/ffmpeg: remove fallback AV_VERSION_INT definition | Max Kellermann | 2012-08-14 | 1 | -4/+1 |
| | | | | This is part of libavutil. | ||||
* | input/curl: use g_source_get_time() | Max Kellermann | 2012-04-04 | 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. | ||||
* | input/cdio_paranoia: whitespace-fix a comment | Jonathan Neuschäfer | 2012-02-15 | 1 | -2/+2 |
| | |||||
* | input/soup: use #pragma only with gcc 4.6+ | Max Kellermann | 2012-01-29 | 1 | -2/+2 |
| | | | | | | It seems gcc 4.5 does not allow #pragma within function: src/input/soup_input_plugin.c:284:9: error: #pragma GCC diagnostic not allowed inside functions | ||||
* | Merge branch 'v0.16.x' | Max Kellermann | 2012-01-05 | 1 | -0/+4 |
|\ | | | | | | | | | | | Conflicts: src/decoder/ffmpeg_decoder_plugin.c src/input/ffmpeg_input_plugin.c | ||||
| * | input/ffmpeg: use the new AVIOContext API | Max Kellermann | 2012-01-04 | 1 | -1/+37 |
| | | | | | | | | URLContext is deprecated. | ||||
| * | input/ffmpeg: define AV_VERSION_INT if not present | Max Kellermann | 2012-01-04 | 1 | -0/+4 |
| | | | | | | | | Support ancient ffmpeg versions. | ||||
* | | input/soup: disable -Wcast-qual to work around libsoup header problem | Max Kellermann | 2011-12-12 | 1 | -0/+13 |
| | | |||||
* | | input/cdio_paranoia: pass byte order swapping to the PCM "decoder" | Max Kellermann | 2011-10-10 | 1 | -32/+11 |
| | | | | | | | | | | | | Send another "magic" MIME type when the byte order must be reversed. This also fixes byte order issues when big-endian was involved (input data or host byte order) - that was completely broken. | ||||
* | | input/soup: wait some more before resuming the stream | Max Kellermann | 2011-09-16 | 1 | -1/+6 |
| | | |||||
* | | input/soup: improve error messages | Max Kellermann | 2011-09-16 | 1 | -12/+43 |
| | | | | | | | | | | Copy the reason_phrase from the SoupMessage, and check for transport errors in the session callback. | ||||
* | | input_stream: non-blocking I/O | Max Kellermann | 2011-09-16 | 9 | -166/+101 |
| | | | | | | | | | | | | | | | | | | 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. | ||||
* | | input_plugin: add method check() | Max Kellermann | 2011-09-16 | 3 | -0/+45 |
| | | | | | | | | | | To check for errors without reading. The decoder thread wants to do that, before it passes the input stream to the plugin. | ||||
* | | input/{soup,curl}: free unused postponed_error | Max Kellermann | 2011-09-16 | 2 | -0/+8 |
| | | | | | | | | Fix memory leak. | ||||
* | | input/soup: move libsoup calls to the I/O thread | Max Kellermann | 2011-09-16 | 1 | -4/+25 |
| | | | | | | | | | | libsoup's asynchronous API is not thread safe. By moving the calls into the I/O thread, several crash bugs will be fixed. | ||||
* | | input/soup: wait for _cancel_message() to complete | Max Kellermann | 2011-09-16 | 1 | -5/+21 |
| | | | | | | | | | | Add the "complete" attribute, and set it in _session_callback(). _close() waits for it to become true. | ||||
* | | input/soup: return real GErrors to the caller | Max Kellermann | 2011-09-16 | 1 | -3/+31 |
| | | | | | | | | | | Add attribute postponed_error, pass this GError to the caller. | ||||
* | | input/soup: set the "ready" flag on failure | Max Kellermann | 2011-09-16 | 1 | -0/+2 |
| | | | | | | | | Fix deadlock. | ||||
* | | input/soup: remove redundant flag "ready" | Max Kellermann | 2011-09-16 | 1 | -6/+2 |
| | | | | | | | | | | We'll add proper locking now, and there's no need to carry this duplicate flag. | ||||
* | | input/soup: report failure in _read() | Max Kellermann | 2011-09-16 | 1 | -0/+1 |
| | | | | | | | | To report failures to callers who don't use _buffer(). | ||||
* | | input/soup: unlock before cancelling the soup message | Max Kellermann | 2011-09-16 | 1 | -3/+5 |
| | | | | | | | | Avoid recursive deadlock in _session_callback(). | ||||
* | | input/curl: wait some more before resuming the stream | Max Kellermann | 2011-09-16 | 1 | -1/+6 |
| | | | | | | | | | | Pausing and resuming after every little chunk adds lots of overhead. Add a lower level for resuming the stream. | ||||
* | | input/curl: clear the "paused" flag before resuming | Max Kellermann | 2011-09-16 | 1 | -1/+1 |
| | | | | | | | | | | curl_easy_pause(CURLPAUSE_CONT) may have added enough data to go into pause again. | ||||
* | | input/curl: remove _schedule_update() | Max Kellermann | 2011-09-16 | 1 | -48/+1 |
| | | | | | | | | | | Call _update_fds() directly. This is possible because it's only called from within the I/O thread. | ||||
* | | input/curl: unlock the mutex for io_thread_call() | Max Kellermann | 2011-09-16 | 1 | -1/+4 |
| | | | | | | | | Fix deadlock. | ||||
* | | input/soup: fix "unused local variable" warnings | Max Kellermann | 2011-09-16 | 1 | -1/+1 |
| | | |||||
* | | Merge branch 'v0.16.x' | Max Kellermann | 2011-09-16 | 1 | -1/+1 |
|\| | |||||
| * | input/curl, output/pulse: fix "unused local variable" warnings | Max Kellermann | 2011-09-16 | 1 | -1/+1 |
| | | |||||
* | | Merge branch 'v0.16.x' | Max Kellermann | 2011-09-15 | 1 | -1/+3 |
|\| | | | | | | | | | | | Conflicts: NEWS configure.ac | ||||
| * | input/rewind: copy the MIME type only once | Max Kellermann | 2011-09-15 | 1 | -1/+3 |
| | | | | | | | | Reduce heap usage by reducing the number of malloc() / free() calls. | ||||
* | | input/curl: per-request mutex/cond | Max Kellermann | 2011-09-15 | 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. | ||||
* | | 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. |