Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | rename 'Timer' to 'struct timer' | Jonathan Neuschäfer | 2011-08-27 | 7 | -24/+24 |
| | |||||
* | 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. | ||||
* | io_thread: add helper functions | Max Kellermann | 2011-08-25 | 2 | -0/+84 |
| | |||||
* | io_thread: move global variables into a struct | Max Kellermann | 2011-08-25 | 1 | -25/+27 |
| | |||||
* | glib_compat.h: add g_timeout_source_new_seconds() | Max Kellermann | 2011-08-25 | 1 | -0/+6 |
| | |||||
* | 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 | 4 | -1/+403 |
| | | | | | | | | 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. | ||||
* | io_thread: new thread for non-blocking background I/O | Max Kellermann | 2011-08-24 | 3 | -0/+133 |
| | | | | Try to eliminate the remaining blocking I/O. | ||||
* | input/curl: remove obsolete function input_curl_reinit() | Max Kellermann | 2011-08-24 | 3 | -21/+0 |
| | |||||
* | output/raop: use GLib byte order macros | Max Kellermann | 2011-08-24 | 1 | -5/+3 |
| | |||||
* | output/raop: use fill_int() in fill_time_...() | Max Kellermann | 2011-08-24 | 1 | -19/+14 |
| | | | | Eliminate duplicate code. | ||||
* | output/raop: check if the "host" option is present | Max Kellermann | 2011-08-24 | 1 | -1/+8 |
| | | | | Better than dereferencing NULL. | ||||
* | output/raop: remove excessive debug messages | Max Kellermann | 2011-08-24 | 2 | -9/+0 |
| | |||||
* | output/raop: consistently use GError | Max Kellermann | 2011-08-24 | 3 | -80/+155 |
| | |||||
* | output/raop: use GLib heap functions | Max Kellermann | 2011-08-24 | 1 | -30/+22 |
| | |||||
* | output/raop: functions that always succeed return void | Max Kellermann | 2011-08-24 | 1 | -22/+14 |
| | | | | No point in returning true, and checking that. | ||||
* | output/raop: rtspcl_connect() returns false on error | Max Kellermann | 2011-08-24 | 1 | -3/+9 |
| | | | | .. and not -1, which is "true". | ||||
* | output/raop: error checking in send_control_command() | Max Kellermann | 2011-08-24 | 1 | -6/+13 |
| | |||||
* | output/raop: make some allocations static | Max Kellermann | 2011-08-24 | 1 | -29/+29 |
| | | | | Allocate objects on the stack to reduce heap overhead. | ||||
* | output/raop: remove unused local variables | Max Kellermann | 2011-08-24 | 1 | -4/+2 |
| | |||||
* | output/raop: make some exec_request parameters const | Max Kellermann | 2011-08-24 | 1 | -7/+10 |
| | |||||
* | output/raop: use "char*" for string buffers | Max Kellermann | 2011-08-24 | 2 | -20/+20 |
| | | | | Not unsigned char. Eliminate useless casts. | ||||
* | output/raop: make send_control_command() static | Max Kellermann | 2011-08-24 | 2 | -4/+1 |
| | | | | Only used internally. | ||||
* | output/raop: remove useless test_default_device() implementation | Max Kellermann | 2011-08-24 | 1 | -7/+0 |
| | | | | This defaults to "false" when the method pointer is NULL. | ||||
* | Merge branch 'v0.16.x' | Max Kellermann | 2011-08-24 | 4 | -6/+122 |
|\ | |||||
| * | output/pulse: fix deadlock when the stream was suspended | Max Kellermann | 2011-08-23 | 1 | -0/+31 |
| | | | | | | | | | | Check if the stream is suspended; wake up the main loop when it becomes suspended. | ||||
| * | output/pulse: add assertions | Max Kellermann | 2011-08-23 | 1 | -0/+30 |
| | | |||||
| * | output/pulse: return 0 on error | Max Kellermann | 2011-08-23 | 1 | -1/+1 |
| | | | | | | | | Not a bool. | ||||
| * | pulse/output: fix deadlock when resuming the stream | Max Kellermann | 2011-08-23 | 1 | -1/+3 |
| | | | | | | | | Unlock the mainloop in all code paths. | ||||
| * | input/curl: limit the receive buffer size | Max Kellermann | 2011-08-23 | 1 | -0/+30 |
| | | |||||
| * | output/httpd: add assertions | Max Kellermann | 2011-08-23 | 1 | -1/+17 |
| | | |||||
| * | output/httpd: don't warn on client disconnect | Max Kellermann | 2011-08-23 | 1 | -1/+8 |
| | | | | | | | | | | | | This warning should only be logged when we really received something. When the client disconnects, G_IO_IN is triggered, and the read returns G_IO_STATUS_EOF. | ||||
| * | decoder/mpcdec: fix gcc warning | Max Kellermann | 2011-08-23 | 1 | -2/+2 |
| | | | | | | | | Move the variable "vbr_update_acc" into the #ifdef block. | ||||
* | | output/raop: rewrite remove_char_from_string | Jonathan Neuschäfer | 2011-07-25 | 1 | -14/+15 |
| | | |||||
* | | Merge branch 'v0.16.x' | Max Kellermann | 2011-07-20 | 12 | -39/+95 |
|\| | | | | | | | | | | | Conflicts: src/player_thread.c src/playlist_control.c | ||||
| * | encoder_plugin: add method pre_tag() | Max Kellermann | 2011-07-20 | 4 | -2/+37 |
| | | | | | | | | | | | | | | In the "vorbis" plugin, this is a copy of the old flush() method, while flush() gets a lot of code remove, it just sets the "flush" flag and nothing else. It doesn't start a new stream now, which should fix a few problems in some players. | ||||
| * | output/httpd: explicitly convert size_t to bool in pause() | Max Kellermann | 2011-07-20 | 1 | -1/+2 |
| | | |||||
| * | pipe: lock the mutex in music_pipe_size() | Max Kellermann | 2011-07-20 | 1 | -1/+4 |
| | | |||||
| * | pipe: make read-only functions "pure" | Max Kellermann | 2011-07-20 | 1 | -0/+5 |
| | | | | | | | | Enable gcc optimizations. | ||||
| * | output_thread: unlock the mutex while calling cancel() | Max Kellermann | 2011-07-20 | 1 | -1/+6 |
| | | | | | | | | The method may take longer, and we shouldn't be holding the lock. | ||||
| * | player_thread: lock the player while setting the bite_rate | Max Kellermann | 2011-07-20 | 1 | -0/+2 |
| | | |||||
| * | update_walk: apply follow_inside_symlinks to absolute symlinks | Max Kellermann | 2011-07-20 | 1 | -2/+8 |
| | | |||||
| * | wavpack: obey all decoder commands, stop at CUE track border | Max Kellermann | 2011-07-20 | 1 | -9/+6 |
| | | | | | | | | It used to ignore the decoder_data() return value. | ||||
| * | decoder/wavpack: use the correct integer types | Max Kellermann | 2011-07-20 | 1 | -10/+5 |
| | | | | | | | | | | libwavpack provides int32_t samples, and wants uin32_t for sample counts. | ||||
| * | decoder/wavpack: simplify the WavpackUnpackSamples()==0 check | Max Kellermann | 2011-07-20 | 1 | -17/+14 |
| | | | | | | | | .. and remove one indent level. |