Max Kellermann 
							
						 
					 
					
						
						
							
						
						551ac56a33 
					 
					
						
						
							
							Filter/Internal: split header  
						
						
						
						
							
						
					 
					
						2018-01-01 18:48:34 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						5227582e90 
					 
					
						
						
							
							Merge tag 'v0.20.14'  
						
						... 
						
						
						
						release v0.20.14 
						
						
							
						
					 
					
						2018-01-01 18:28:39 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						c0bf052fa9 
					 
					
						
						
							
							release v0.20.14  
						
						
						
						
							
 
						
					 
					
						2018-01-01 17:55:38 +01:00 
						 
				 
			
				
					
						
							
							
								loujine 
							
						 
					 
					
						
						
							
						
						5419cff925 
					 
					
						
						
							
							[doc] Fix outdated MusicBrainz URLs ( closes   #179 )  
						
						
						
						
							
						
					 
					
						2018-01-01 17:30:24 +01:00 
						 
				 
			
				
					
						
							
							
								loujine 
							
						 
					 
					
						
						
							
						
						42959982a9 
					 
					
						
						
							
							Add basic support for MUSICBRAINZ_WORKID tag  
						
						
						
						
							
						
					 
					
						2017-12-30 19:05:21 +00:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						78c73fb9e7 
					 
					
						
						
							
							MusicChunk: reorder attributes to reduce padding  
						
						
						
						
							
						
					 
					
						2017-12-30 17:52:07 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a06bf388d9 
					 
					
						
						
							
							MusicChunk: make the struct size exactly 4096  
						
						
						
						
							
						
					 
					
						2017-12-30 17:50:25 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						de0c3e717e 
					 
					
						
						
							
							MusicChunk: split struct MusicChunkInfo from struct MusicChunk  
						
						
						
						
							
						
					 
					
						2017-12-30 17:47:16 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						1194998ce9 
					 
					
						
						
							
							CrossFade: use sizeof(MusicChunk::data) instead of CHUNK_SIZE  
						
						
						
						
							
						
					 
					
						2017-12-30 17:43:56 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						7171e23700 
					 
					
						
						
							
							player/Thread: make seeking into a new song non-blocking  
						
						
						
						
							
						
					 
					
						2017-12-30 11:31:26 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						dee378b775 
					 
					
						
						
							
							player/Thread: make SEEK (partially) non-blocking  
						
						... 
						
						
						
						When the decoder is still starting up while we handle a SEEK, finish
the "player SEEK" immediately and re-enter the player loop, being able
to handle commands (and even cancel the pending seek).
This is the first part in a series of patches to solve the "blocking
input blocks decoder, blocks player, blocks the main thread" problem.
There are many other blocking code locations left, and the main thread
isn't non-blocking either because it waits for "seeking" to become
false. 
						
						
							
						
					 
					
						2017-12-29 17:32:12 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						f76262ef79 
					 
					
						
						
							
							poison.h: remove obsolete header  
						
						
						
						
							
						
					 
					
						2017-12-29 17:29:52 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						6a755b0663 
					 
					
						
						
							
							Makefile.am: remove -DCPPUNIT_HAVE_RTTI=0  
						
						... 
						
						
						
						This declaration is obsolete because MPD has switched on RTTI long
ago. 
						
						
							
						
					 
					
						2017-12-29 17:04:12 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						c40354bbcb 
					 
					
						
						
							
							player/Outputs: abstract interface wrapping class MultipleOutputs  
						
						
						
						
							
						
					 
					
						2017-12-29 16:39:05 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						c04aafb4e3 
					 
					
						
						
							
							output/Multiple: add "noexcept"  
						
						
						
						
							
						
					 
					
						2017-12-29 16:29:49 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						e31abe6d6b 
					 
					
						
						
							
							player/Thread: remove redundant outputs.Cancel() call  
						
						... 
						
						
						
						The STOP, EXIT and CLOSE_AUDIO commands are not finished here; they
are propagated to PlayerControl::RunThread() where the
outputs.Cancel() call will be done again. 
						
						
							
						
					 
					
						2017-12-28 08:39:48 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						e1349ccadc 
					 
					
						
						
							
							player/Thread: ProcessCommand() returns bool  
						
						... 
						
						
						
						Allows signalling a failed seek, and replaces several redundant
command checks after the ProcessCommand() call. 
						
						
							
						
					 
					
						2017-12-28 08:30:01 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						8838bdc1e3 
					 
					
						
						
							
							player/Thread: move CommandFinished() call out of SeekDecoder(SongTime)  
						
						... 
						
						
						
						Decouple this function from player command execution. 
						
						
							
						
					 
					
						2017-12-27 14:28:56 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						d6386bc80f 
					 
					
						
						
							
							player/Thread: update code comment  
						
						
						
						
							
						
					 
					
						2017-12-27 14:26:14 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a2c2288cd6 
					 
					
						
						
							
							test/run_filter: throw exception on error  
						
						
						
						
							
						
					 
					
						2017-12-27 12:03:13 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						edef62df86 
					 
					
						
						
							
							filter/Internal: return std::unique_ptr<Filter>  
						
						
						
						
							
						
					 
					
						2017-12-27 11:56:05 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						e2621d5e44 
					 
					
						
						
							
							filter/Plugin: return std::unique_ptr<PreparedFilter>  
						
						
						
						
							
						
					 
					
						2017-12-27 11:39:01 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						0e3ff12dd3 
					 
					
						
						
							
							filter/volume: remove from filter_plugins[]  
						
						... 
						
						
						
						Thsi filter doesn't make sense as manually configured plugin, because
nobody ever calls volume_filter_set() on it, making it a no-op. 
						
						
							
						
					 
					
						2017-12-27 11:38:38 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						b335ac4156 
					 
					
						
						
							
							filter/{chain,convert}: remove unused FilterPlugin instances  
						
						... 
						
						
						
						These are not in filter_plugins[] and have dedicated constructors
anyway. 
						
						
							
						
					 
					
						2017-12-27 11:33:15 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						03cf6591c0 
					 
					
						
						
							
							output/Source: convert prepared_filter to reference  
						
						
						
						
							
						
					 
					
						2017-12-27 11:21:43 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						2e0949d8e6 
					 
					
						
						
							
							archive/Plugin: return std::unique_ptr<ArchiveFile>  
						
						
						
						
							
						
					 
					
						2017-12-27 09:07:21 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						5a728a069e 
					 
					
						
						
							
							fs/AllocatedPath: drop obsolete GCC check  
						
						
						
						
							
						
					 
					
						2017-12-27 08:50:55 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						7384ec199e 
					 
					
						
						
							
							Compiler.h: remove support for GCC 4.9  
						
						... 
						
						
						
						Supporting GCC 4.9 is becoming cumbersome as we refactor more code to
C++14.
This shouldn't be a problem for anybody, because Debian Stable
(Stretch) has version 6.3, and Ubuntu LTS (Xenial) has version 5.3. 
						
						
							
						
					 
					
						2017-12-27 08:40:24 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						7bce6329e3 
					 
					
						
						
							
							archive/File, input/Plugin: return InputStreamPtr  
						
						
						
						
							
						
					 
					
						2017-12-26 20:05:22 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						49619fbd77 
					 
					
						
						
							
							input/Proxy: use InputStreamPtr  
						
						
						
						
							
						
					 
					
						2017-12-26 20:03:37 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						fb9a2c5431 
					 
					
						
						
							
							input/Icy: manage the parser in a std::shared_ptr  
						
						... 
						
						
						
						This resolves the circular dependency between IcyInputStream and
CurlInputStream. 
						
						
							
						
					 
					
						2017-12-26 20:03:35 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						cd38aa3b2a 
					 
					
						
						
							
							Merge branch 'v0.20.x'  
						
						
						
						
							
						
					 
					
						2017-12-26 20:03:18 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						eee10ad2ed 
					 
					
						
						
							
							input/curl: add missing mutex locks to OnEnd(), OnError()  
						
						
						
						
							
						
					 
					
						2017-12-26 20:01:13 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						daeb7ae949 
					 
					
						
						
							
							input/InputStream: add "noexcept"  
						
						
						
						
							
						
					 
					
						2017-12-26 11:39:34 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						82a79565de 
					 
					
						
						
							
							input/InputStream: use C++11 initializers  
						
						
						
						
							
						
					 
					
						2017-12-26 11:32:36 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						078839c711 
					 
					
						
						
							
							archive/zzip: convert struct to class  
						
						
						
						
							
						
					 
					
						2017-12-26 11:22:46 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						98472a8104 
					 
					
						
						
							
							pcm/SampleFormat: remove wrong "malloc" attribute  
						
						
						
						
							
						
					 
					
						2017-12-23 08:38:22 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						90cc32f6f8 
					 
					
						
						
							
							util/RefCount: remove obsolete class  
						
						
						
						
							
						
					 
					
						2017-12-22 16:37:30 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						9aec2f019a 
					 
					
						
						
							
							archive/File: eliminate Close(), make destructor virtual instead  
						
						
						
						
							
						
					 
					
						2017-12-22 16:30:17 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						5da455080b 
					 
					
						
						
							
							archive/iso9660: use std::shared_ptr instead of class RefCount  
						
						
						
						
							
						
					 
					
						2017-12-22 16:25:08 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						17558102f2 
					 
					
						
						
							
							archive/zzip: use std::shared_ptr instead of class RefCount  
						
						
						
						
							
						
					 
					
						2017-12-22 16:20:05 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						e1c39f3fdc 
					 
					
						
						
							
							archive/bz2: use std::shared_ptr instead of class RefCount  
						
						
						
						
							
						
					 
					
						2017-12-22 16:14:12 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						20555c8e37 
					 
					
						
						
							
							archive/File: remove unused attribute "plugin"  
						
						
						
						
							
						
					 
					
						2017-12-22 16:13:29 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						300a619991 
					 
					
						
						
							
							Merge branch 'v0.20.x'  
						
						
						
						
							
						
					 
					
						2017-12-22 16:10:05 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						d094c168aa 
					 
					
						
						
							
							archive/{iso9660,zzip}: unlock the mutex during I/O  
						
						... 
						
						
						
						Similar to commit 31ab78ae8e 
						
						
							
						
					 
					
						2017-12-22 16:09:03 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						4b18460bc6 
					 
					
						
						
							
							archive/bz2: unlock the archive mutex and lock the file mutex  
						
						... 
						
						
						
						Fixes deadlock because FileInputStream::Read() unlocks the mutex
(which was not locked) and then locks it, keeping it locked.  This can
result in a deadlock.  This happens because the archive and the file
mutex are different. 
						
						
							
						
					 
					
						2017-12-22 16:02:23 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						4319dedb23 
					 
					
						
						
							
							db/update/Walk: use std::atomic_bool for the "quit" variable  
						
						... 
						
						
						
						Fixes thread sanitizer warnings. 
						
						
							
						
					 
					
						2017-12-22 12:02:44 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						f8bb66b4e0 
					 
					
						
						
							
							event/Loop: use std::atomic_bool for the "quit" variable  
						
						... 
						
						
						
						Fixes thread sanitizer warnings. 
						
						
							
						
					 
					
						2017-12-22 11:04:24 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						5d6a8b3840 
					 
					
						
						
							
							MusicPipe: lock the mutex in Peek() and GetSize()  
						
						
						
						
							
						
					 
					
						2017-12-22 11:03:37 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						6a8c2848f6 
					 
					
						
						
							
							thread/{Thread,Id}: use defaul-initialized pthread_t as "undefined" value  
						
						... 
						
						
						
						Use the "==" operator instead of pthread_equal().
This allows us to eliminate two boolean flags which are there to avoid
race conditions, and made the thing so fragile that I got tons of
(correct) thread sanitizer warnings. 
						
						
							
						
					 
					
						2017-12-22 10:37:07 +01:00