aboutsummaryrefslogtreecommitdiffstats
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'v0.16.x'Max Kellermann2011-09-019-56/+95
|\ | | | | | | | | | | Conflicts: configure.ac src/output_control.c
| * output/osx: don't drain the buffer when closingMax Kellermann2011-09-011-6/+0
| | | | | | | | Eliminate an unnecessary source of deadlocks.
| * output/osx: signal the GCond while mutex is lockedMax Kellermann2011-09-011-1/+1
| |
| * output_all: move _lock_signal() to output_control.cMax Kellermann2011-09-013-21/+23
| | | | | | | | Better name, better documentation.
| * output_thread: reimplement CANCEL synchronizationMax Kellermann2011-09-016-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/contextMax Kellermann2011-08-311-0/+10
| | | | | | | | | | Fixes assertion failure when a stream callback is invoked too late after a format change.
| * output/pulse: add function _delete_stream()Max Kellermann2011-08-311-5/+16
| | | | | | | | Merge common code.
| * output/pulse: use _delete_context()Max Kellermann2011-08-311-16/+15
| | | | | | | | Eliminate duplicate code.
| * input/curl: implement a hard-coded timeout of 10 secondsMax Kellermann2011-08-261-0/+3
| | | | | | | | | | Be sure to stop the operation at some point when the server isn't responding.
* | output/raop: remove Audio-Jack-Status checkMax Kellermann2011-08-312-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 Kellermann2011-08-311-8/+0
| |
* | rtsp_client: use the I/O threadMax Kellermann2011-08-314-56/+615
| | | | | | | | Make the code portable.
* | udp_server: don't use MSG_DONTWAIT on WIN32Max Kellermann2011-08-311-0/+4
| | | | | | | | Doesn't exist on mingw32.
* | mixer/raop: include cleanupMax Kellermann2011-08-311-12/+2
| |
* | output/raop: cast sendto() parameter to void pointerMax Kellermann2011-08-311-2/+4
| | | | | | | | Fix compilation on mingw32.
* | rtsp_client: use g_usleep()Max Kellermann2011-08-311-3/+1
| | | | | | | | usleep() is not portable.
* | rtsp_client: allow parameter "kd" to be NULLMax Kellermann2011-08-313-8/+17
| | | | | | | | When the caller isn't interested in the values.
* | rtsp_client: don't wait if packet is over dueMax Kellermann2011-08-311-2/+3
| | | | | | | | | | Check if the time difference is negative. That would have caused sleeping forever.
* | io_thread: allow _call() from inside the threadMax Kellermann2011-08-312-0/+20
| |
* | rtsp_client: free attribute "kd" in _close()Max Kellermann2011-08-311-0/+1
| | | | | | | | Fix yet another memory leak.
* | output/raop: move code to raop_session_new()Max Kellermann2011-08-301-40/+74
| | | | | | | | .. and fix a few memory leaks.
* | output_control: move code to audio_output_destruct()Max Kellermann2011-08-303-17/+57
| | | | | | | | .. and destruct the output object properly in test/run_output.
* | output/raop: merge raopcl_close() into _finish()Max Kellermann2011-08-301-10/+4
| | | | | | | | .. and fix a double free bug.
* | output/raop: free the raop_data object in finish()Max Kellermann2011-08-301-0/+1
| |
* | output/raop: remove from the session when opening failsMax Kellermann2011-08-301-2/+6
| |
* | output/raop: move code to raop_output_remove()Max Kellermann2011-08-301-3/+14
| |
* | rtsp_client: increment "dp" after terminating the stringMax Kellermann2011-08-301-2/+3
| | | | | | | | This fixes a bug that caused all values to be an empty string.
* | rtsp_client: simplify whitespace eliminationMax Kellermann2011-08-301-4/+6
| | | | | | | | Just move a pointer, don't call strlen() in every iteration.
* | rtsp_client: check "new_kd" instead of "i"Max Kellermann2011-08-301-4/+2
| | | | | | | | Eliminate the redundant local variable "i".
* | rtsp_client: move "new_kd" out of the loopMax Kellermann2011-08-301-1/+1
| | | | | | | | This must persist iterations.
* | ntp_server: move code to udp_server.cMax Kellermann2011-08-305-64/+211
| |
* | output/raop: move RTSP client code to rtsp_client.cMax Kellermann2011-08-294-513/+737
| | | | | | | | Restore some of the original file structure from from raop_play.
* | ntp_server: use the I/O threadMax Kellermann2011-08-293-54/+58
| |
* | io_thread: add function io_thread_quit()Max Kellermann2011-08-292-2/+17
| |
* | ntp_server: check for select() failuresMax Kellermann2011-08-291-1/+3
| | | | | | | | Fix freeze after signal was handled.
* | ntp_server: fix socket typesMax Kellermann2011-08-291-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 Kellermann2011-08-292-2/+16
| |
* | output/raop: fallback for g_set_error_literal()Max Kellermann2011-08-292-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 libraryMax Kellermann2011-08-284-78/+194
| |
* | rename 'Timer' to 'struct timer'Jonathan Neuschäfer2011-08-277-24/+24
| |
* | input/curl: use the I/O threadMax Kellermann2011-08-251-222/+653
| | | | | | | | | | Background buffering and better timeout handling. This patch sort of obsoletes the input_plugin method buffer().
* | input/curl: eliminate attribute "eof"Max Kellermann2011-08-251-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 possibleMax Kellermann2011-08-251-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 Kellermann2011-08-251-3/+9
| | | | | | | | Allow closing the handle while preserving the remaining buffers.
* | input/curl: pass input_curl to fill_buffer()Max Kellermann2011-08-251-4/+3
| | | | | | | | Remove a cast.
* | io_thread: add helper functionsMax Kellermann2011-08-252-0/+84
| |
* | io_thread: move global variables into a structMax Kellermann2011-08-251-25/+27
| |
* | glib_compat.h: add g_timeout_source_new_seconds()Max Kellermann2011-08-251-0/+6
| |
* | input/curl: set GError when init() failsMax Kellermann2011-08-251-2/+3
| | | | | | | | Let the caller know what happened, he's responsible for logging.
* | input/soup: free all resources in method close()Max Kellermann2011-08-241-0/+10
| |