Max Kellermann 
							
						 
					 
					
						
						
							
						
						96a1c69c29 
					 
					
						
						
							
							tag/Handler: add virtual method OnPicture()  
						
						... 
						
						
						
						Preparing for https://github.com/MusicPlayerDaemon/MPD/issues/42  
						
						
					 
					
						2019-08-12 20:31:43 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						4a47bbd816 
					 
					
						
						
							
							IcyMetadataParser: implement charset conversion  
						
						
						
						
					 
					
						2019-08-10 10:07:13 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						7654038d65 
					 
					
						
						
							
							util/UriQueryParser: new library  
						
						
						
						
					 
					
						2019-08-09 20:39:34 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						40a2880857 
					 
					
						
						
							
							util/UriUtil: split  
						
						
						
						
					 
					
						2019-08-09 20:21:12 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						cde6c46d2f 
					 
					
						
						
							
							util/Macros: replace with std::size() (C++17)  
						
						
						
						
					 
					
						2019-08-03 13:10:49 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						8f981845dc 
					 
					
						
						
							
							switch to C++17  
						
						... 
						
						
						
						Time to move on, two years after 2017. 
						
						
					 
					
						2019-08-03 12:57:56 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						af99f9fc90 
					 
					
						
						
							
							pcm/Volume: convert S16 to S24 to preserve quality and reduce noise  
						
						... 
						
						
						
						Applying software volume to S16 samples means several bits of
precision are lost; at 25% volume, two bits are lost.  Additionally,
dithering adds some noise.
The problem gets worse when you apply the software volume code twice:
for the software mixer volume, and again for the replay gain.  This
loses some more precision and adds even more dithering noise, which
can become audible (see
https://github.com/MusicPlayerDaemon/MPD/issues/542 ).
By converting everything to 24 bit, we need to shift only two bits to
the right instead of ten, losing nearly no precision, and dithering is
not needed.  Even if the output device is unable to play S24 directly,
we can convert back to S16 with only one stage of dithering.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/542  
						
						
					 
					
						2019-07-30 20:03:37 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						991bbea875 
					 
					
						
						
							
							Merge branch 'v0.21.x'  
						
						
						
						
					 
					
						2019-07-29 11:32:00 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						90ea3bf985 
					 
					
						
						
							
							playlist/Song: support backslash in relative URIs  
						
						... 
						
						
						
						Closes https://github.com/MusicPlayerDaemon/MPD/issues/607  
						
						
					 
					
						2019-07-29 09:58:53 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						83b0871248 
					 
					
						
						
							
							test/test_translate_song: remove unused variable "s1"  
						
						
						
						
					 
					
						2019-07-29 09:52:57 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						d8aec4b2dc 
					 
					
						
						
							
							test/run_decoder: catch StopDecoder  
						
						... 
						
						
						
						This exception is usually thrown by class DecoderBridge, but the Opus
plugin (ab)uses it as well, so we need to catch it. 
						
						
					 
					
						2019-07-12 17:49:12 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						5fa7610264 
					 
					
						
						
							
							pcm/Volume: Open() returns output sample format  
						
						... 
						
						
						
						Prepare for a new mode which may convert to a different sample format
when applying volume, to reduce dithering. 
						
						
					 
					
						2019-07-05 19:03:00 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						d663f81420 
					 
					
						
						
							
							include cleanups (powered by iwyu)  
						
						
						
						
					 
					
						2019-07-05 09:59:58 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						4650a903b4 
					 
					
						
						
							
							decoder/Bridge: add noexcept  
						
						
						
						
					 
					
						2019-07-05 08:57:51 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						beed004b10 
					 
					
						
						
							
							pcm/Export: add GetSilence()  
						
						
						
						
					 
					
						2019-06-26 16:04:46 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						730e67d766 
					 
					
						
						
							
							test/test_pcm_export: add tests for Get{In,Out}put{Frame,Block}Size()  
						
						
						
						
					 
					
						2019-06-26 16:01:19 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						bf26adf555 
					 
					
						
						
							
							pcm/Dsd{16,32}: stash odd frames away for the next call  
						
						... 
						
						
						
						Similar to commit 32380d1db0https://github.com/MusicPlayerDaemon/MPD/issues/469  
						
						
					 
					
						2019-06-18 11:19:27 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						28e07e900f 
					 
					
						
						
							
							pcm/Export: convert the DSD bools to an enum  
						
						... 
						
						
						
						These options are exclusive. 
						
						
					 
					
						2019-06-17 22:35:00 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						32380d1db0 
					 
					
						
						
							
							pcm/Dop: stash odd frames away for the next call  
						
						... 
						
						
						
						First part of the "real" fix for
https://github.com/MusicPlayerDaemon/MPD/issues/469  
						
						
					 
					
						2019-06-17 22:18:44 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						e87f0ca771 
					 
					
						
						
							
							pcm/Pcm*: drop more "Pcm" prefixes from source file names  
						
						
						
						
					 
					
						2019-06-17 11:17:48 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a139279575 
					 
					
						
						
							
							Copyright year 2019  
						
						
						
						
					 
					
						2019-06-17 11:17:30 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						fd5e74dbd0 
					 
					
						
						
							
							pcm/Pcm{Dop,Export}: drop "Pcm" prefix  
						
						
						
						
					 
					
						2019-06-16 12:11:44 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						bd6b7aa88e 
					 
					
						
						
							
							archive/Lookup: move to fs/LookupFile.cxx  
						
						... 
						
						
						
						This can be used for other purposes as well. 
						
						
					 
					
						2019-06-15 14:26:26 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						fcf6415963 
					 
					
						
						
							
							archive/Lookup: pass class Path  
						
						
						
						
					 
					
						2019-06-15 14:06:50 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						be79b44dc8 
					 
					
						
						
							
							archive/Lookup: pass const pointer  
						
						
						
						
					 
					
						2019-06-15 14:04:34 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						17f207ffd1 
					 
					
						
						
							
							archive/Lookup: return AllocatedPath  
						
						
						
						
					 
					
						2019-06-15 13:57:28 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						548aa00111 
					 
					
						
						
							
							tag/Handler: pass StringView to OnTag() and OnPair()  
						
						... 
						
						
						
						Eliminates a number of allocations, because callers don't need to copy
the strings to a newly allocated buffer only to null-terminate them.
And most callers don't need to have a null-terminated string. 
						
						
					 
					
						2019-06-06 13:00:53 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						71f9332bd3 
					 
					
						
						
							
							test/TestCircularBuffer: add constexpr to fix -Wvla  
						
						
						
						
					 
					
						2019-06-06 12:40:32 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						e1ac377812 
					 
					
						
						
							
							archive/ArchiveLookup: replace output parameters with a struct  
						
						
						
						
					 
					
						2019-05-31 19:56:25 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						12e75a523a 
					 
					
						
						
							
							archive/ArchiveLookup: remove "suffix" output parameter  
						
						... 
						
						
						
						Let the caller do this.  Our GetSuffix() function was broken anyway. 
						
						
					 
					
						2019-05-31 19:01:22 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						fa13648f2c 
					 
					
						
						
							
							archive/ArchiveLookup: throw on error  
						
						
						
						
					 
					
						2019-05-31 18:52:11 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						7739b3960c 
					 
					
						
						
							
							mixer/Listener: add noexcept  
						
						
						
						
					 
					
						2019-05-31 14:09:47 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						971450f0d4 
					 
					
						
						
							
							input/InputStream: make IsEOF() and IsAvailable() const  
						
						
						
						
					 
					
						2019-05-29 13:31:54 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						e0d5d88104 
					 
					
						
						
							
							Log: make LogLevel the first parameter  
						
						... 
						
						
						
						Prepare for templated functions. 
						
						
					 
					
						2019-05-23 12:17:59 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						9a78371b5c 
					 
					
						
						
							
							DetachedSong: allow LoadFile(), Update() to throw  
						
						
						
						
					 
					
						2019-05-22 10:19:25 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						214ddee2f5 
					 
					
						
						
							
							util/Time*: move to time/  
						
						
						
						
					 
					
						2019-05-08 15:47:58 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						973c87b351 
					 
					
						
						
							
							event/Call, ...: use wait() with predicate  
						
						
						
						
					 
					
						2019-05-07 20:01:45 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						1b5c1f75a4 
					 
					
						
						
							
							input/InputStreams: pass std::unique_lock<> to various methods  
						
						
						
						
					 
					
						2019-05-07 19:09:39 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						92022658f9 
					 
					
						
						
							
							thread/Cond: add wait() overload which takes a unique_lock<>  
						
						... 
						
						
						
						Just like std::condition_variable, which however has no way to specify
the std::mutex directly. 
						
						
					 
					
						2019-04-26 11:51:45 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						b51bae5500 
					 
					
						
						
							
							thread/*Cond: rename methods to match std::condition_variable  
						
						
						
						
					 
					
						2019-04-25 19:46:43 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						c7c303eec3 
					 
					
						
						
							
							db/DatabaseListener: add noexcept  
						
						
						
						
					 
					
						2019-04-24 14:57:30 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a30af2ba42 
					 
					
						
						
							
							lib/chromaprint/DecoderClient: replace method PrintResult()  
						
						
						
						
					 
					
						2019-04-05 13:40:05 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						8006911a1f 
					 
					
						
						
							
							decoder/Client: add noexcept  
						
						
						
						
					 
					
						2019-04-05 09:03:42 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						e78d825059 
					 
					
						
						
							
							pcm/PcmConvert: eliminate Open() and Close()  
						
						... 
						
						
						
						Let the constructor and destructor do this.  This means that all users
have to be converted to allocate PcmConvert dynamically. 
						
						
					 
					
						2019-04-04 21:01:08 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						8a07724b23 
					 
					
						
						
							
							test/RunChromaprint: move class ChromaprintDecoderClient to lib/chromaprint/  
						
						
						
						
					 
					
						2019-04-04 20:29:27 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						5256929b17 
					 
					
						
						
							
							tag/Chromaprint: move to lib/chromaprint/Context.hxx  
						
						
						
						
					 
					
						2019-04-04 20:21:10 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						93d91936b5 
					 
					
						
						
							
							test/run_filter: check for partial writes  
						
						
						
						
					 
					
						2019-03-25 08:59:34 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						2220383d83 
					 
					
						
						
							
							test/run_filter: move code to WriteOrThrow()  
						
						
						
						
					 
					
						2019-03-25 08:59:25 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						3231706628 
					 
					
						
						
							
							test/run_filter: use class FileDescriptor  
						
						
						
						
					 
					
						2019-03-25 08:53:58 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						977a4570d9 
					 
					
						
						
							
							Merge branch 'v0.21.x'  
						
						
						
						
					 
					
						2019-03-21 11:49:41 +01:00