Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | log: return GError on initialization failure | Max Kellermann | 2011-09-09 | 3 | -11/+34 |
| | |||||
* | conf: get_block_param() returns a const pointer | Max Kellermann | 2011-09-09 | 3 | -6/+6 |
| | | | | No caller needs to write. | ||||
* | conf: move duplicate check to _read_name_value() | Max Kellermann | 2011-09-09 | 2 | -16/+15 |
| | | | | config_add_block_param() cannot fail, which makes it easier to use. | ||||
* | conf: move code to config_read_name_value() | Max Kellermann | 2011-09-09 | 1 | -32/+34 |
| | | | | Reduce indent. | ||||
* | conf: add gcc optimization attributes | Max Kellermann | 2011-09-09 | 1 | -0/+3 |
| | |||||
* | dbUtils: move code to db_print.c | Max Kellermann | 2011-09-06 | 5 | -269/+317 |
| | |||||
* | dbUtils: pass player_control to findAddIn() | Max Kellermann | 2011-09-05 | 3 | -9/+14 |
| | | | | Allow calling findAddIn() without a client object. | ||||
* | decoder/oggflac: delete this obsolete plugin | Max Kellermann | 2011-09-01 | 2 | -355/+1 |
| | | | | | libOggFLAC has been deprecated for 5 years now, and we havn't been testing it for a long time. Let's delete it. | ||||
* | Merge branch 'v0.16.x' | Max Kellermann | 2011-09-01 | 9 | -56/+95 |
|\ | | | | | | | | | | | Conflicts: configure.ac src/output_control.c | ||||
| * | output/osx: don't drain the buffer when closing | Max Kellermann | 2011-09-01 | 1 | -6/+0 |
| | | | | | | | | Eliminate an unnecessary source of deadlocks. | ||||
| * | output/osx: signal the GCond while mutex is locked | Max Kellermann | 2011-09-01 | 1 | -1/+1 |
| | | |||||
| * | output_all: move _lock_signal() to output_control.c | Max Kellermann | 2011-09-01 | 3 | -21/+23 |
| | | | | | | | | Better name, better documentation. | ||||
| * | output_thread: reimplement CANCEL synchronization | Max Kellermann | 2011-09-01 | 6 | -14/+34 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The output thread could hang indefinitely after finishing CANCEL, because it could have missed the signal while the output was not unlocked in ao_command_finished(). This patch removes the wait() call after CANCEL, and adds the flag "allow_play" instead. While this flag is set, playback is skipped. With this flag, there will not be any excess wait() call after the pipe has been cleared. This patch fixes a bug that causes mpd to discontinue playback after seeking, due to the race condition described above. | ||||
| * | output/pulse: reset callbacks before closing stream/context | Max Kellermann | 2011-08-31 | 1 | -0/+10 |
| | | | | | | | | | | Fixes assertion failure when a stream callback is invoked too late after a format change. | ||||
| * | output/pulse: add function _delete_stream() | Max Kellermann | 2011-08-31 | 1 | -5/+16 |
| | | | | | | | | Merge common code. | ||||
| * | output/pulse: use _delete_context() | Max Kellermann | 2011-08-31 | 1 | -16/+15 |
| | | | | | | | | Eliminate duplicate code. | ||||
| * | input/curl: implement a hard-coded timeout of 10 seconds | Max Kellermann | 2011-08-26 | 1 | -0/+3 |
| | | | | | | | | | | Be sure to stop the operation at some point when the server isn't responding. | ||||
* | | output/raop: remove Audio-Jack-Status check | Max Kellermann | 2011-08-31 | 2 | -27/+7 |
| | | | | | | | | | | The value of this is not used, the code is commented out - let's get rid of it. | ||||
* | | output/raop: remove empty function raopcl_stream_connect() | Max Kellermann | 2011-08-31 | 1 | -8/+0 |
| | | |||||
* | | rtsp_client: use the I/O thread | Max Kellermann | 2011-08-31 | 4 | -56/+615 |
| | | | | | | | | Make the code portable. | ||||
* | | udp_server: don't use MSG_DONTWAIT on WIN32 | Max Kellermann | 2011-08-31 | 1 | -0/+4 |
| | | | | | | | | Doesn't exist on mingw32. | ||||
* | | mixer/raop: include cleanup | Max Kellermann | 2011-08-31 | 1 | -12/+2 |
| | | |||||
* | | output/raop: cast sendto() parameter to void pointer | Max Kellermann | 2011-08-31 | 1 | -2/+4 |
| | | | | | | | | Fix compilation on mingw32. | ||||
* | | rtsp_client: use g_usleep() | Max Kellermann | 2011-08-31 | 1 | -3/+1 |
| | | | | | | | | usleep() is not portable. | ||||
* | | rtsp_client: allow parameter "kd" to be NULL | Max Kellermann | 2011-08-31 | 3 | -8/+17 |
| | | | | | | | | When the caller isn't interested in the values. | ||||
* | | rtsp_client: don't wait if packet is over due | Max Kellermann | 2011-08-31 | 1 | -2/+3 |
| | | | | | | | | | | Check if the time difference is negative. That would have caused sleeping forever. | ||||
* | | io_thread: allow _call() from inside the thread | Max Kellermann | 2011-08-31 | 2 | -0/+20 |
| | | |||||
* | | rtsp_client: free attribute "kd" in _close() | Max Kellermann | 2011-08-31 | 1 | -0/+1 |
| | | | | | | | | Fix yet another memory leak. | ||||
* | | output/raop: move code to raop_session_new() | Max Kellermann | 2011-08-30 | 1 | -40/+74 |
| | | | | | | | | .. and fix a few memory leaks. | ||||
* | | output_control: move code to audio_output_destruct() | Max Kellermann | 2011-08-30 | 3 | -17/+57 |
| | | | | | | | | .. and destruct the output object properly in test/run_output. | ||||
* | | output/raop: merge raopcl_close() into _finish() | Max Kellermann | 2011-08-30 | 1 | -10/+4 |
| | | | | | | | | .. and fix a double free bug. | ||||
* | | output/raop: free the raop_data object in finish() | Max Kellermann | 2011-08-30 | 1 | -0/+1 |
| | | |||||
* | | output/raop: remove from the session when opening fails | Max Kellermann | 2011-08-30 | 1 | -2/+6 |
| | | |||||
* | | output/raop: move code to raop_output_remove() | Max Kellermann | 2011-08-30 | 1 | -3/+14 |
| | | |||||
* | | rtsp_client: increment "dp" after terminating the string | Max Kellermann | 2011-08-30 | 1 | -2/+3 |
| | | | | | | | | This fixes a bug that caused all values to be an empty string. | ||||
* | | rtsp_client: simplify whitespace elimination | Max Kellermann | 2011-08-30 | 1 | -4/+6 |
| | | | | | | | | Just move a pointer, don't call strlen() in every iteration. | ||||
* | | rtsp_client: check "new_kd" instead of "i" | Max Kellermann | 2011-08-30 | 1 | -4/+2 |
| | | | | | | | | Eliminate the redundant local variable "i". | ||||
* | | rtsp_client: move "new_kd" out of the loop | Max Kellermann | 2011-08-30 | 1 | -1/+1 |
| | | | | | | | | This must persist iterations. | ||||
* | | ntp_server: move code to udp_server.c | Max Kellermann | 2011-08-30 | 5 | -64/+211 |
| | | |||||
* | | output/raop: move RTSP client code to rtsp_client.c | Max Kellermann | 2011-08-29 | 4 | -513/+737 |
| | | | | | | | | Restore some of the original file structure from from raop_play. | ||||
* | | ntp_server: use the I/O thread | Max Kellermann | 2011-08-29 | 3 | -54/+58 |
| | | |||||
* | | io_thread: add function io_thread_quit() | Max Kellermann | 2011-08-29 | 2 | -2/+17 |
| | | |||||
* | | ntp_server: check for select() failures | Max Kellermann | 2011-08-29 | 1 | -1/+3 |
| | | | | | | | | Fix freeze after signal was handled. | ||||
* | | ntp_server: fix socket types | Max Kellermann | 2011-08-29 | 1 | -3/+5 |
| | | | | | | | | | | | | Cast recvfrom(), sendto() buffers to "void*" to avoid "char*" / "unsigned char*" confusion. Use ssize_t for the return value, and socklen_t for the socket address size. | ||||
* | | io_thread: add function io_thread_run() | Max Kellermann | 2011-08-29 | 2 | -2/+16 |
| | | |||||
* | | output/raop: fallback for g_set_error_literal() | Max Kellermann | 2011-08-29 | 2 | -0/+12 |
| | | | | | | | | | | This function was added in GLib 2.18. Make the plugin compatible with older GLib versions. | ||||
* | | output/raop: move NTP code to separate library | Max Kellermann | 2011-08-28 | 4 | -78/+194 |
| | | |||||
* | | 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. |