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 
							
						 
					 
					
						
						
							
						
						b07bbb928a 
					 
					
						
						
							
							decoder/dsdiff: allow longer tag values  
						
						
						
						
					 
					
						2019-06-06 12:44:25 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						3b5a128097 
					 
					
						
						
							
							decoder/dsdiff: pass DecoderClient* to dsdiff_handle_native_tag()  
						
						
						
						
					 
					
						2019-06-06 12:43:20 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						3e40b1d9d2 
					 
					
						
						
							
							decoder/dsdiff: use a fixed-size buffer for the tag value  
						
						... 
						
						
						
						Variable-length arrays are a C-only feature. 
						
						
					 
					
						2019-06-06 12:33:14 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						adffbba2a5 
					 
					
						
						
							
							Merge tag 'v0.21.10'  
						
						... 
						
						
						
						release v0.21.10 
						
						
					 
					
						2019-06-05 22:38:54 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						3fae2150f5 
					 
					
						
						
							
							decoder/OpusReader: return StringView  
						
						... 
						
						
						
						Since we now don't duplicate all items, we can easily remove the 64kB
limit from OpusReader::ReadString() and instead silently ignore and
skip all strings which are longer than 4 kB.
This fixes a tag duplication bug with Opus file containing a very long
`METADATA_BLOCK_PICTURE` tag, which occurred because the Opus plugin
returned false after parsing all tags, and then the MPD core fell back
to FFmpeg which scanned the tags again. 
						
						
					 
					
						2019-06-05 22:19:35 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						5d74b5cee1 
					 
					
						
						
							
							input/cache: first draft of the file cache  
						
						
						
						
					 
					
						2019-05-31 17:49:52 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						8fef4af7b2 
					 
					
						
						
							
							decoder/Bridge: add method OpenLocal()  
						
						
						
						
					 
					
						2019-05-30 17:08:09 +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 
							
						 
					 
					
						
						
							
						
						1b5c1f75a4 
					 
					
						
						
							
							input/InputStreams: pass std::unique_lock<> to various methods  
						
						
						
						
					 
					
						2019-05-07 19:09:39 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						cf348f9fae 
					 
					
						
						
							
							decoder/Control: pass std::unique_lock<> to Cond::wait()  
						
						
						
						
					 
					
						2019-04-26 18:34:16 +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 
							
						 
					 
					
						
						
							
						
						e740f8d969 
					 
					
						
						
							
							decoder/Control: remove unused methods Lock(), Unlock()  
						
						
						
						
					 
					
						2019-04-25 19:34:26 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						28fc1d555f 
					 
					
						
						
							
							decoder/Thread: eliminate decoder_input_stream_open()  
						
						
						
						
					 
					
						2019-04-05 10:32:07 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						ac74f284aa 
					 
					
						
						
							
							decoder/Bridge: check for STOP before InputStream::IsReady()  
						
						... 
						
						
						
						If the DecoderThread gets woken up by a STOP command, this should be
detected as early as possible. 
						
						
					 
					
						2019-04-05 10:32:06 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						77af999b46 
					 
					
						
						
							
							decoder/Thread: use DecoderBridge::OpenUri(), eliminate duplicate code  
						
						
						
						
					 
					
						2019-04-05 10:29:24 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						4926763f00 
					 
					
						
						
							
							decoder/Bridge: call InputStream::Check() before returning  
						
						
						
						
					 
					
						2019-04-05 10:29:20 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a19eee78c6 
					 
					
						
						
							
							decoder/Bridge: make many attributes private  
						
						
						
						
					 
					
						2019-04-05 09:26:03 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						6be3c99876 
					 
					
						
						
							
							decoder/Bridge: add noexcept  
						
						
						
						
					 
					
						2019-04-05 09:04:08 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						8006911a1f 
					 
					
						
						
							
							decoder/Client: add noexcept  
						
						
						
						
					 
					
						2019-04-05 09:03:42 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						61e5828790 
					 
					
						
						
							
							input/InputStream: add noexcept to ReadTag()  
						
						
						
						
					 
					
						2019-04-05 08:57: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 
							
						 
					 
					
						
						
							
						
						7a1b56fe96 
					 
					
						
						
							
							Merge tag 'v0.21.7'  
						
						... 
						
						
						
						release v0.21.7 
						
						
					 
					
						2019-04-03 12:32:20 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						2e9f3d8b9f 
					 
					
						
						
							
							decoder/HybridDSD: downgrade log message to "debug"  
						
						... 
						
						
						
						This plugin is interesting only for a tiny fraction of MPD users, so
let's not spam everybody else's log with it. 
						
						
					 
					
						2019-03-29 17:15:48 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						0c6d22fe47 
					 
					
						
						
							
							decoder/ffmpeg: move code to lib/ffmpeg/SampleFormat.hxx  
						
						
						
						
					 
					
						2019-03-18 10:58:46 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						a66097129d 
					 
					
						
						
							
							Merge branch 'v0.21.x'  
						
						
						
						
					 
					
						2019-03-16 14:08:22 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						1aa7cdd602 
					 
					
						
						
							
							decoder/opus: fix replay gain when there are no other tags  
						
						... 
						
						
						
						The `tag_builder.empty()` check was wrong for the SubmitReplayGain()
call.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/497  
						
						
					 
					
						2019-03-16 13:55:19 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						0009d53b3f 
					 
					
						
						
							
							decoder/ffmpeg: add AVCodecContext wrapper class  
						
						
						
						
					 
					
						2019-03-13 09:41:52 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						05f7a6d1ff 
					 
					
						
						
							
							decoder/ffmpeg: add AVFormatContext wrapper class  
						
						
						
						
					 
					
						2019-03-13 00:27:21 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						0256bbbbaf 
					 
					
						
						
							
							decoder/ffmpeg: wider try/catch in ffmpeg_scan_stream()  
						
						
						
						
					 
					
						2019-03-13 00:27:21 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						bce608cdbc 
					 
					
						
						
							
							decoder/ffmpeg: ffmpeg_decode() may throw  
						
						... 
						
						
						
						Don't catch and log exceptions.  Let the caller handle the error. 
						
						
					 
					
						2019-03-13 00:20:13 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						38a0844cdf 
					 
					
						
						
							
							decoder/ffmpeg: add AVFrame wrapper class  
						
						
						
						
					 
					
						2019-03-12 23:51:46 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						c176d94598 
					 
					
						
						
							
							system/ByteOrder: move to util/  
						
						
						
						
					 
					
						2019-03-08 10:21:10 +01:00 
						 
				 
			
				
					
						
							
							
								borine 
							
						 
					 
					
						
						
							
						
						c5df879cf9 
					 
					
						
						
							
							decooder/plugins/PcmDecoderPlugin: add missing config for preproceesor macro definitions  
						
						
						
						
					 
					
						2019-03-07 12:31:43 +00:00 
						 
				 
			
				
					
						
							
							
								borine 
							
						 
					 
					
						
						
							
						
						0762e5c289 
					 
					
						
						
							
							decoder/plugins/PcmDecoderPlugin: guard alsa specific code with pre-processor macro test  
						
						
						
						
					 
					
						2019-03-07 08:26:04 +00:00 
						 
				 
			
				
					
						
							
							
								borine 
							
						 
					 
					
						
						
							
						
						945ea51bd4 
					 
					
						
						
							
							decoder/plugins/PcmDecoderPlugin: introduce new internal mime type "audio/x-mpd-alsa-pcm"  
						
						... 
						
						
						
						This mime type is to enable the AlsaInputPlugin to communicate the pcm stream audio format to the decoder 
						
						
					 
					
						2019-03-06 08:39:47 +00:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						7a23c123c8 
					 
					
						
						
							
							decoder/List: add RAII class  
						
						
						
						
					 
					
						2019-02-05 22:12:22 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						e85b24bee0 
					 
					
						
						
							
							decoder/List: add noexcept  
						
						
						
						
					 
					
						2019-02-05 22:11:51 +01:00 
						 
				 
			
				
					
						
							
							
								Jörg Krause 
							
						 
					 
					
						
						
							
						
						4f7d52dbf2 
					 
					
						
						
							
							meson: add fixed-point Vorbis (Tremor) decoder support  
						
						... 
						
						
						
						Re-add build support for the fixed-point Vorbis (Tremor) decoder, which
was dropped when switching from Autotools to Meson.
Note, that it is not possible to build both, the Vorbis and the Tremor
decoder.
Closes : #405  
						
						
					 
					
						2019-01-21 08:35:17 +01:00 
						 
				 
			
				
					
						
							
							
								Thomas Klausner 
							
						 
					 
					
						
						
							
						
						3a0480a482 
					 
					
						
						
							
							Add missing include of stdlib.h.  
						
						... 
						
						
						
						Closes https://github.com/MusicPlayerDaemon/MPD/issues/456  
						
						
					 
					
						2019-01-15 16:52:40 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						ce49d99c2f 
					 
					
						
						
							
							check.h: remove obsolete header  
						
						... 
						
						
						
						Since we switched from autotools to Meson in commit
94592c1406 
						
						
					 
					
						2018-11-19 16:33:49 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						793fd8c479 
					 
					
						
						
							
							decoder/ffmpeg: eliminate GetSampleFormat()  
						
						
						
						
					 
					
						2018-11-04 22:36:17 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						6c602811df 
					 
					
						
						
							
							decoder/ffmepg: fill AudioFormat from AVCodecContext, not AVCodecParameters  
						
						... 
						
						
						
						`AVCodecParameters` contains values from the codec detected by
avformat_find_stream_info(), but after avcodec_open2(), a different
codec might be selected with a different `AVSampleFormat`.  This leads
to misinterpretation of data returned from FFmpeg, leading to random
noise or silence.
This was observed with FFmpeg 4.0.2 and a TS container file containing
MP2.  A mp3-float codec was detected returning `AV_SAMPLE_FMT_FLTP`,
but finally the `mpegaudiodec_fixed.c` was used, returning
`AV_SAMPLE_FMT_S16`.
By using the audio format from `AVCodecContext`, we ensure that MPD
and FFmpeg always agree on the actual audio format in the buffer.
This removes the FFmpeg bug workaround from commit e1b032cbadFixes  #380  
						
						
					 
					
						2018-11-04 22:30:50 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						bd115a4008 
					 
					
						
						
							
							decoder/ffmpeg: use AtScopeExit() to call av_packet_unref()  
						
						
						
						
					 
					
						2018-11-04 22:01:33 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						08272cdee2 
					 
					
						
						
							
							decoder/ffmpeg: require FFmpeg 3.1 or later  
						
						... 
						
						
						
						Drop some compatibility code. 
						
						
					 
					
						2018-11-04 21:55:06 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						f5c9071494 
					 
					
						
						
							
							*: copyright year 2018  
						
						
						
						
					 
					
						2018-10-31 17:54:59 +01:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						8bb35e7bb6 
					 
					
						
						
							
							decoder/Thread: reimplement HasRemoteTagScanner() using the InputPlugin list  
						
						
						
						
					 
					
						2018-10-25 09:09:21 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						9ec86acb9c 
					 
					
						
						
							
							decoder/Thread: enable output tags for Tidal and Qobuz  
						
						... 
						
						
						
						Fixes formatted paths in the `recorder` output, closing #345 . 
						
						
					 
					
						2018-10-24 16:38:26 +02:00 
						 
				 
			
				
					
						
							
							
								Max Kellermann 
							
						 
					 
					
						
						
							
						
						426bde3f75 
					 
					
						
						
							
							decoder/Thread: move check to SongHasVolatileTags()  
						
						
						
						
					 
					
						2018-10-24 16:32:41 +02:00