Max Kellermann 
							
						 
					 
					
						
						
							
						
						6e24381962 
					 
					
						
						
							
							output/Shout: move code to ShoutSetAudioInfo()  
						
						
						
						
					 
					
						2017-08-08 18:56:12 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						3ab905644d 
					 
					
						
						
							
							output/Shout: open the encoder first, then open connection  
						
						... 
						
						
						
						This order will be necessary for proper AudioFormat initialization,
because the encoder may change the format. 
						
						
					 
					
						2017-08-08 18:53:04 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						f46d545307 
					 
					
						
						
							
							output/Shout: pass shout_t* to shout_connect()  
						
						
						
						
					 
					
						2017-08-08 18:52:03 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						8134b0073b 
					 
					
						
						
							
							output/Shout: move write_page() into the struct  
						
						
						
						
					 
					
						2017-08-08 18:47:37 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						6ab19c7ef2 
					 
					
						
						
							
							output/Shout: pass shout_t* to handle_shout_error()  
						
						
						
						
					 
					
						2017-08-08 18:47:30 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						d22361f7c7 
					 
					
						
						
							
							output/Shout: remove unnecessary nullptr check  
						
						
						
						
					 
					
						2017-08-08 18:47:02 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						06c7e55188 
					 
					
						
						
							
							output/Filtered: add methods SupportsEnableDisable(), SupportsPause()  
						
						
						
						
					 
					
						2017-08-08 15:54:49 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						b3eb8489f3 
					 
					
						
						
							
							output/Filtered: add a few OutputPlugin method wrappers  
						
						
						
						
					 
					
						2017-08-08 14:27:19 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						5431fca99b 
					 
					
						
						
							
							output/Filtered: add attribute "log_name"  
						
						
						
						
					 
					
						2017-08-08 14:02:58 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						47c9d6ac64 
					 
					
						
						
							
							output/Internal: rename source to Filtered.cxx  
						
						
						
						
					 
					
						2017-08-07 21:50:13 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						d0157af13e 
					 
					
						
						
							
							filter/Internal: rename struct AudioOutput to FilteredAudioOutput  
						
						... 
						
						
						
						Prepare to add an abstract class AudioOutput, to be implemented by
plugins, to get rid of the C-style vtable. 
						
						
					 
					
						2017-08-07 18:47:39 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						fc04620519 
					 
					
						
						
							
							output/Internal: move code to ConfigureConvertFilter()  
						
						
						
						
					 
					
						2017-08-07 18:42:10 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						d4ee165253 
					 
					
						
						
							
							output/Thread: move OpenSoftwareMixer() to the end  
						
						... 
						
						
						
						This call cannot fail, but needs cleanup if others fail.  By moving it
to the end, we eliminate some cleanup. 
						
						
					 
					
						2017-08-07 18:42:09 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						4f7f577a57 
					 
					
						
						
							
							output/Internal: add OpenSoftwareMixer()  
						
						... 
						
						
						
						Moved code from AudioOutputControl::InternalOpen2(). 
						
						
					 
					
						2017-08-07 18:33:07 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						612def5c11 
					 
					
						
						
							
							output/Internal: rename CloseFilter() to CloseSoftwareMixer()  
						
						
						
						
					 
					
						2017-08-07 18:32:43 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						704825be96 
					 
					
						
						
							
							mixer/Software: include cleanup  
						
						
						
						
					 
					
						2017-08-07 18:31:11 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						b8be7ec90e 
					 
					
						
						
							
							filter/Normalize: add normalize_filter_prepare()  
						
						
						
						
					 
					
						2017-08-07 18:28:52 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a3d71f4b91 
					 
					
						
						
							
							filter/Convert: add convert_filter_prepare()  
						
						
						
						
					 
					
						2017-08-07 18:27:00 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						9250819b75 
					 
					
						
						
							
							filter/Volume: add volume_filter_prepare()  
						
						... 
						
						
						
						Circumvent filter_new() with a fake ConfigBlock. 
						
						
					 
					
						2017-08-07 18:23:13 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						04738636ca 
					 
					
						
						
							
							output/Finish: fold internal function into FinishDestroy()  
						
						
						
						
					 
					
						2017-08-07 18:15:15 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						33f67d418f 
					 
					
						
						
							
							test/run_output: use AudioOutput::{Begin,Finish}Destroy()  
						
						
						
						
					 
					
						2017-08-07 18:14:54 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						07d1b3780d 
					 
					
						
						
							
							output/Control: move two AudioOutput methods to Finish.cxx  
						
						
						
						
					 
					
						2017-08-07 18:13:57 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						27d68d8fdd 
					 
					
						
						
							
							output/Internal: move the Mutex to struct AudioOutputControl  
						
						... 
						
						
						
						struct AudioOutput should not know or care about multi-threading. 
						
						
					 
					
						2017-08-07 17:44:46 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						546b773b21 
					 
					
						
						
							
							output/Internal: remove mutex code from Close()  
						
						
						
						
					 
					
						2017-08-07 17:43:58 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						15dcaeda0f 
					 
					
						
						
							
							output/Internal: remove mutex code from BeginPause(), IteratePause()  
						
						
						
						
					 
					
						2017-08-07 17:40:40 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						8f42ba13ef 
					 
					
						
						
							
							output/Internal: simplify "return" statements in IteratePause()  
						
						
						
						
					 
					
						2017-08-07 17:40:13 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						5990017d51 
					 
					
						
						
							
							output/Internal: remove mutex code from Enable() and Disable()  
						
						
						
						
					 
					
						2017-08-07 17:39:20 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						3197c0fd7d 
					 
					
						
						
							
							output/Thread: move code to InternalCloseOutput()  
						
						
						
						
					 
					
						2017-08-07 17:35:43 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						4580c685f1 
					 
					
						
						
							
							output/Thread: unlock the mutex for several AudioOutput calls  
						
						
						
						
					 
					
						2017-08-07 17:08:49 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						67232453d4 
					 
					
						
						
							
							output/Control: more locking information in API docs  
						
						
						
						
					 
					
						2017-08-07 16:56:41 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						b4cce80727 
					 
					
						
						
							
							output/Thread: move code to InternalClose()  
						
						
						
						
					 
					
						2017-08-07 16:34:29 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						89a2e5ded3 
					 
					
						
						
							
							output/Thread: rename InternalClose() to InternalCheckClose()  
						
						
						
						
					 
					
						2017-08-07 16:33:20 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						9d6b4f46d4 
					 
					
						
						
							
							output/Thread: move AudioOutput methods to Internal.cxx  
						
						
						
						
					 
					
						2017-08-07 16:26:50 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a4019cb6aa 
					 
					
						
						
							
							util/StringBuffer: use std::array::const_iterator  
						
						
						
						
					 
					
						2017-08-07 16:18:43 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						b0703b92c3 
					 
					
						
						
							
							util/FormatString: pass the allocated buffer to AllocatedString::Donate()  
						
						... 
						
						
						
						.. and not the stack buffer.  This made the AllocatedString destructor
crash.
Closes  #52  
						
						
					 
					
						2017-08-03 00:25:30 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						d29bdf3e81 
					 
					
						
						
							
							Merge branch 'v0.20.x'  
						
						
						
						
					 
					
						2017-07-31 13:50:14 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						dd9fd3d8a7 
					 
					
						
						
							
							tag/Aiff: the FORM chunk size is big-endian  
						
						... 
						
						
						
						Was broken by commit 8a86460b8fCloses  #87  
						
						
					 
					
						2017-07-31 13:46:09 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						cf0c59864f 
					 
					
						
						
							
							doc/protocol.xml: clarify that idle events do not get lost  
						
						
						
						
					 
					
						2017-07-21 09:51:43 +02:00 
						 
				 
			
				
					
						
							
							
								Matthew Leon 
							
						 
					 
					
						
						
							
						
						4c0404c70d 
					 
					
						
						
							
							Check for MusicBrainz id3v2 tags in ffmpeg.  
						
						... 
						
						
						
						Addresses #82 .
Previously, the ffmpeg decoder only checked for the "generic"
MusicBrainz metadata keys used in other metadata container formats. 
						
						
					 
					
						2017-07-20 08:28:14 +02:00 
						 
				 
			
				
					
						
							
							
								Matthew Leon 
							
						 
					 
					
						
						
							
						
						573a413ee1 
					 
					
						
						
							
							move MusicBrainz id3v2 tags to separate file  
						
						... 
						
						
						
						We will reuse these tags elsewhere. 
						
						
					 
					
						2017-07-20 08:26:29 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						f633e6ca49 
					 
					
						
						
							
							python/build/libs: add LAME  
						
						... 
						
						
						
						Enable it in the Windows build script, closes  #78 .
LAME currently doesn't support Android:
 checking host system type... Invalid configuration `arm-linux-androideabi': system `androideabi' not recognized 
						
						
					 
					
						2017-07-19 20:53:52 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						07b06d76be 
					 
					
						
						
							
							{android,win32}/build.py: concatenate variables from the command line  
						
						
						
						
					 
					
						2017-07-19 20:53:52 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						501a4af914 
					 
					
						
						
							
							util/StringUtil: move strip functions to StringStrip.cxx  
						
						
						
						
					 
					
						2017-07-05 17:20:02 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						dad7d7e798 
					 
					
						
						
							
							util/TruncateString: rename CopyString() to CopyTruncateString()  
						
						
						
						
					 
					
						2017-07-05 17:15:58 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						4b94ae8040 
					 
					
						
						
							
							util/StringUtil: move CopyString() to TruncateString.cxx  
						
						
						
						
					 
					
						2017-07-05 17:11:34 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						b04679b429 
					 
					
						
						
							
							util/WritableBuffer: add method MoveFront()  
						
						
						
						
					 
					
						2017-07-05 17:10:59 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						19358d1c42 
					 
					
						
						
							
							util/Exception: add more utility functions  
						
						
						
						
					 
					
						2017-07-05 17:08:26 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						8679074be7 
					 
					
						
						
							
							util/Exception: move code to AppendNestedMessage()  
						
						
						
						
					 
					
						2017-07-05 17:07:43 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						ba09e22c30 
					 
					
						
						
							
							util/Exception: add GetFullMessage(std::exception)  
						
						
						
						
					 
					
						2017-07-05 17:07:41 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						6515b9727d 
					 
					
						
						
							
							util/Exception: catch std::nested_exception  
						
						
						
						
					 
					
						2017-07-05 17:07:40 +02:00