Max Kellermann 
							
						 
					 
					
						
						
							
						
						596f36bb78 
					 
					
						
						
							
							output/osx: don't drain the buffer when closing  
						
						 
						
						... 
						
						
						
						Eliminate an unnecessary source of deadlocks. 
						
						
					 
					
						2011-09-01 18:21:46 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						e7abdab58d 
					 
					
						
						
							
							output/osx: signal the GCond while mutex is locked  
						
						 
						
						
						
						
					 
					
						2011-09-01 18:21:46 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						2be6184c8d 
					 
					
						
						
							
							output_all: move _lock_signal() to output_control.c  
						
						 
						
						... 
						
						
						
						Better name, better documentation. 
						
						
					 
					
						2011-09-01 07:59:15 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						8b0b4ff086 
					 
					
						
						
							
							output_thread: reimplement CANCEL synchronization  
						
						 
						
						... 
						
						
						
						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. 
						
						
					 
					
						2011-09-01 07:13:21 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						60f7ff3de5 
					 
					
						
						
							
							output/pulse: reset callbacks before closing stream/context  
						
						 
						
						... 
						
						
						
						Fixes assertion failure when a stream callback is invoked too late
after a format change. 
						
						
					 
					
						2011-08-31 21:01:34 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						e76c752987 
					 
					
						
						
							
							output/pulse: add function _delete_stream()  
						
						 
						
						... 
						
						
						
						Merge common code. 
						
						
					 
					
						2011-08-31 21:01:22 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						042c1abc6e 
					 
					
						
						
							
							output/pulse: use _delete_context()  
						
						 
						
						... 
						
						
						
						Eliminate duplicate code. 
						
						
					 
					
						2011-08-31 20:58:36 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						1401621913 
					 
					
						
						
							
							output/raop: remove Audio-Jack-Status check  
						
						 
						
						... 
						
						
						
						The value of this is not used, the code is commented out - let's get
rid of it. 
						
						
					 
					
						2011-08-31 20:19:36 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						3c034b0a0c 
					 
					
						
						
							
							output/raop: remove empty function raopcl_stream_connect()  
						
						 
						
						
						
						
					 
					
						2011-08-31 20:17:24 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						395191bd75 
					 
					
						
						
							
							rtsp_client: use the I/O thread  
						
						 
						
						... 
						
						
						
						Make the code portable. 
						
						
					 
					
						2011-08-31 08:32:09 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						ec7d8fb6bd 
					 
					
						
						
							
							udp_server: don't use MSG_DONTWAIT on WIN32  
						
						 
						
						... 
						
						
						
						Doesn't exist on mingw32. 
						
						
					 
					
						2011-08-31 08:32:09 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						062948b110 
					 
					
						
						
							
							mixer/raop: include cleanup  
						
						 
						
						
						
						
					 
					
						2011-08-31 08:31:26 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						7f3dc5f040 
					 
					
						
						
							
							output/raop: cast sendto() parameter to void pointer  
						
						 
						
						... 
						
						
						
						Fix compilation on mingw32. 
						
						
					 
					
						2011-08-31 08:30:26 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						dd0798a317 
					 
					
						
						
							
							rtsp_client: use g_usleep()  
						
						 
						
						... 
						
						
						
						usleep() is not portable. 
						
						
					 
					
						2011-08-31 08:30:26 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						9209ccfa40 
					 
					
						
						
							
							rtsp_client: allow parameter "kd" to be NULL  
						
						 
						
						... 
						
						
						
						When the caller isn't interested in the values. 
						
						
					 
					
						2011-08-31 08:16:55 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						2525d32e17 
					 
					
						
						
							
							rtsp_client: don't wait if packet is over due  
						
						 
						
						... 
						
						
						
						Check if the time difference is negative.  That would have caused
sleeping forever. 
						
						
					 
					
						2011-08-31 07:47:01 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						f3ac8a7cd9 
					 
					
						
						
							
							io_thread: allow _call() from inside the thread  
						
						 
						
						
						
						
					 
					
						2011-08-31 07:33:07 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						f3d95f70e2 
					 
					
						
						
							
							rtsp_client: free attribute "kd" in _close()  
						
						 
						
						... 
						
						
						
						Fix yet another memory leak. 
						
						
					 
					
						2011-08-31 07:13:42 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						57526067f5 
					 
					
						
						
							
							output/raop: move code to raop_session_new()  
						
						 
						
						... 
						
						
						
						.. and fix a few memory leaks. 
						
						
					 
					
						2011-08-30 22:36:54 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						293836494d 
					 
					
						
						
							
							output_control: move code to audio_output_destruct()  
						
						 
						
						... 
						
						
						
						.. and destruct the output object properly in test/run_output. 
						
						
					 
					
						2011-08-30 22:28:15 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						34d9d8abd4 
					 
					
						
						
							
							output/raop: merge raopcl_close() into _finish()  
						
						 
						
						... 
						
						
						
						.. and fix a double free bug. 
						
						
					 
					
						2011-08-30 22:20:32 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						bd67e986f4 
					 
					
						
						
							
							output/raop: free the raop_data object in finish()  
						
						 
						
						
						
						
					 
					
						2011-08-30 22:02:55 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						e587518d85 
					 
					
						
						
							
							output/raop: remove from the session when opening fails  
						
						 
						
						
						
						
					 
					
						2011-08-30 22:00:19 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						210b6c38bd 
					 
					
						
						
							
							output/raop: move code to raop_output_remove()  
						
						 
						
						
						
						
					 
					
						2011-08-30 21:56:57 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						9592c0b466 
					 
					
						
						
							
							rtsp_client: increment "dp" after terminating the string  
						
						 
						
						... 
						
						
						
						This fixes a bug that caused all values to be an empty string. 
						
						
					 
					
						2011-08-30 21:33:02 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a33537b2b9 
					 
					
						
						
							
							rtsp_client: simplify whitespace elimination  
						
						 
						
						... 
						
						
						
						Just move a pointer, don't call strlen() in every iteration. 
						
						
					 
					
						2011-08-30 21:31:46 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						81d5c9757c 
					 
					
						
						
							
							rtsp_client: check "new_kd" instead of "i"  
						
						 
						
						... 
						
						
						
						Eliminate the redundant local variable "i". 
						
						
					 
					
						2011-08-30 21:30:06 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						f34124a50b 
					 
					
						
						
							
							rtsp_client: move "new_kd" out of the loop  
						
						 
						
						... 
						
						
						
						This must persist iterations. 
						
						
					 
					
						2011-08-30 21:29:19 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						74a39c715b 
					 
					
						
						
							
							ntp_server: move code to udp_server.c  
						
						 
						
						
						
						
					 
					
						2011-08-30 07:39:05 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						195496333b 
					 
					
						
						
							
							output/raop: move RTSP client code to rtsp_client.c  
						
						 
						
						... 
						
						
						
						Restore some of the original file structure from from raop_play. 
						
						
					 
					
						2011-08-29 11:27:08 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						9ccaa90439 
					 
					
						
						
							
							ntp_server: use the I/O thread  
						
						 
						
						
						
						
					 
					
						2011-08-29 11:23:51 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						4733c5fef0 
					 
					
						
						
							
							io_thread: add function io_thread_quit()  
						
						 
						
						
						
						
					 
					
						2011-08-29 10:25:04 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						59a5b000e0 
					 
					
						
						
							
							ntp_server: check for select() failures  
						
						 
						
						... 
						
						
						
						Fix freeze after signal was handled. 
						
						
					 
					
						2011-08-29 10:18:54 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						d49a2ccb08 
					 
					
						
						
							
							ntp_server: fix socket types  
						
						 
						
						... 
						
						
						
						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. 
						
						
					 
					
						2011-08-29 09:52:51 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						4a75acb46c 
					 
					
						
						
							
							io_thread: add function io_thread_run()  
						
						 
						
						
						
						
					 
					
						2011-08-29 09:52:03 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a769352a74 
					 
					
						
						
							
							output/raop: fallback for g_set_error_literal()  
						
						 
						
						... 
						
						
						
						This function was added in GLib 2.18.  Make the plugin compatible with
older GLib versions. 
						
						
					 
					
						2011-08-29 09:39:03 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						8a63c27925 
					 
					
						
						
							
							output/raop: move NTP code to separate library  
						
						 
						
						
						
						
					 
					
						2011-08-28 16:44:12 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jonathan Neuschäfer 
							
						 
					 
					
						
						
							
						
						310895f060 
					 
					
						
						
							
							rename 'Timer' to 'struct timer'  
						
						 
						
						
						
						
					 
					
						2011-08-27 11:30:34 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						11626e48bf 
					 
					
						
						
							
							input/curl: implement a hard-coded timeout of 10 seconds  
						
						 
						
						... 
						
						
						
						Be sure to stop the operation at some point when the server isn't
responding. 
						
						
					 
					
						2011-08-26 19:28:09 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						4f021cbced 
					 
					
						
						
							
							input/curl: use the I/O thread  
						
						 
						
						... 
						
						
						
						Background buffering and better timeout handling.  This patch sort of
obsoletes the input_plugin method buffer(). 
						
						
					 
					
						2011-08-25 19:20:57 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						ba31d176c8 
					 
					
						
						
							
							input/curl: eliminate attribute "eof"  
						
						 
						
						... 
						
						
						
						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 19:20:28 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						68edbc3e4a 
					 
					
						
						
							
							input/curl: release "easy" CURL handle as early as possible  
						
						 
						
						... 
						
						
						
						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 19:19:31 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						5068227a46 
					 
					
						
						
							
							input/curl: move code to input_curl_flush_buffers()  
						
						 
						
						... 
						
						
						
						Allow closing the handle while preserving the remaining buffers. 
						
						
					 
					
						2011-08-25 18:48:05 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						f8f3bc89e7 
					 
					
						
						
							
							input/curl: pass input_curl to fill_buffer()  
						
						 
						
						... 
						
						
						
						Remove a cast. 
						
						
					 
					
						2011-08-25 18:43:26 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						635f7026b0 
					 
					
						
						
							
							io_thread: add helper functions  
						
						 
						
						
						
						
					 
					
						2011-08-25 18:43:14 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						0f1e4f0326 
					 
					
						
						
							
							io_thread: move global variables into a struct  
						
						 
						
						
						
						
					 
					
						2011-08-25 18:43:05 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						89355edb8a 
					 
					
						
						
							
							glib_compat.h: add g_timeout_source_new_seconds()  
						
						 
						
						
						
						
					 
					
						2011-08-25 18:42:44 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						37c8f5c1da 
					 
					
						
						
							
							input/curl: set GError when init() fails  
						
						 
						
						... 
						
						
						
						Let the caller know what happened, he's responsible for logging. 
						
						
					 
					
						2011-08-25 08:43:05 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						5bba2df526 
					 
					
						
						
							
							input/soup: free all resources in method close()  
						
						 
						
						
						
						
					 
					
						2011-08-24 19:31:59 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						3b9ffea36f 
					 
					
						
						
							
							input/soup: new input plugin based on libsoup  
						
						 
						
						... 
						
						
						
						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. 
						
						
					 
					
						2011-08-24 03:33:49 +02:00