You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			2907 lines
		
	
	
		
			95 KiB
		
	
	
	
		
			Plaintext
		
	
			
		
		
	
	
			2907 lines
		
	
	
		
			95 KiB
		
	
	
	
		
			Plaintext
		
	
ver 0.25 (not yet released)
 | 
						|
* protocol
 | 
						|
  - implement "window" parameter for command "list"
 | 
						|
* output
 | 
						|
  - pipewire: add option "reconnect_stream"
 | 
						|
* switch to C++23
 | 
						|
* require Meson 1.2
 | 
						|
 | 
						|
ver 0.24.5 (not yet released)
 | 
						|
 | 
						|
ver 0.24.4 (2025/05/20)
 | 
						|
* protocol
 | 
						|
  - fix stuck "getfingerprint" with io_uring
 | 
						|
* decoder
 | 
						|
  - mpg123: support Icy stream tags
 | 
						|
  - mpg123: use libid3tag to parse stream tags
 | 
						|
* tags
 | 
						|
  - id3: fix assertion failure with broken AIFF/RIFF ID3 chunks
 | 
						|
* output
 | 
						|
  - fix resuming playback after it was paused by "single" mode
 | 
						|
  - alsa: fix compiler warning with alsa-lib 1.2.14
 | 
						|
 | 
						|
ver 0.24.3 (2025/04/09)
 | 
						|
* input
 | 
						|
  - qobuz: use nlohmann_json instead of yajl
 | 
						|
* playlist
 | 
						|
  - soundcloud: remove defunct plugin
 | 
						|
* decoder
 | 
						|
  - ffmpeg: support WMA
 | 
						|
  - mpg123: fix trailing space in tag values
 | 
						|
* tags
 | 
						|
  - libid3tag: fix Meson subproject configure error
 | 
						|
  - libid3tag: add missing zlib dependency to Meson subproject
 | 
						|
* output
 | 
						|
  - oss: fix error "Resource temporarily unavailable"
 | 
						|
  - shout: fix hang on activating shout output
 | 
						|
  - snapcast: use nlohmann_json instead of yajl to generate JSON tags
 | 
						|
* Linux
 | 
						|
  - allow using io_uring on Linux kernels older than 6.0
 | 
						|
* Windows
 | 
						|
  - fix cross build on Linux when WINE is not installed
 | 
						|
* DSD: support channel conversion
 | 
						|
 | 
						|
ver 0.24.2 (2025/03/26)
 | 
						|
* input
 | 
						|
  - io_uring: fix stuck seek after I/O error
 | 
						|
* decoder
 | 
						|
  - flac: enable chained Ogg decoding
 | 
						|
* player
 | 
						|
  - fix stalled playback after queue modification
 | 
						|
  - fix deadlock with "single" mode
 | 
						|
* Linux: fix build failure with ancient kernel headers
 | 
						|
 | 
						|
ver 0.24.1 (2025/03/21)
 | 
						|
* input
 | 
						|
  - curl: fix malformed "Range" header
 | 
						|
* output
 | 
						|
  - sndio: fix rounding error in volume calculation
 | 
						|
* log: include year in time stamp
 | 
						|
* Linux
 | 
						|
  - add configure-time check for openat2()
 | 
						|
  - fix use-after-free bug on io_uring shutdown
 | 
						|
* macOS
 | 
						|
  - implement standard directories
 | 
						|
  - fix command-line parser errors
 | 
						|
* fix build failure in the "id3tag" Meson subproject
 | 
						|
* doc: use "sphinx_rtd_theme" only if it is installed
 | 
						|
 | 
						|
ver 0.24 (2025/03/11)
 | 
						|
* protocol
 | 
						|
  - new command "searchcount" (case-insensitive "count")
 | 
						|
  - "playlistfind"/"playlistsearch" have "sort" and "window" parameters
 | 
						|
  - allow range in "playlistmove"
 | 
						|
  - "save" can append to or replace an existing playlist
 | 
						|
  - filter "prio" (for "playlistfind"/"playlistsearch")
 | 
						|
  - limit "player" idle events to the current partition
 | 
						|
  - operator "starts_with"
 | 
						|
  - show PCRE support in "config" response
 | 
						|
  - apply Unicode normalization to case-insensitive filter expressions
 | 
						|
  - stickers on playlists and some tag types
 | 
						|
  - new commands "stickernames", "stickertypes", "stickernamestypes", "playlistlength", "searchplaylist", "protocol"
 | 
						|
  - new "search"/"find" filter "added-since"
 | 
						|
  - allow range in listplaylist and listplaylistinfo
 | 
						|
  - "sticker find" supports sort and window parameter and new sticker compare operators "eq", "lt", "gt", "contains" and "starts_with"
 | 
						|
  - consume only idle flags that were subscribed to
 | 
						|
  - volume command is no longer deprecated
 | 
						|
  - new "available" and "reset" subcommands for tagtypes
 | 
						|
  - searching stored playlists respond now with song position
 | 
						|
  - new sticker subcommand "inc" and "dec"
 | 
						|
* database
 | 
						|
  - attribute "added" shows when each song was added to the database
 | 
						|
  - proxy: require MPD 0.21 or later
 | 
						|
  - proxy: require libmpdclient 2.15 or later
 | 
						|
* archive
 | 
						|
  - add option to disable archive plugins in mpd.conf
 | 
						|
* storage
 | 
						|
  - curl: optimize database update
 | 
						|
  - nfs: require libnfs 4.0 or later
 | 
						|
  - nfs: support libnfs 6 (API version 2)
 | 
						|
  - nfs: support libnfs URL arguments
 | 
						|
* input
 | 
						|
  - alsa: limit ALSA buffer time to 2 seconds
 | 
						|
  - alsa: set up a channel map
 | 
						|
  - alsa: support the alsa-lib 1.2.11 API
 | 
						|
  - alsa: add option "close_on_pause"
 | 
						|
  - curl: add "connect_timeout" configuration
 | 
						|
* decoder
 | 
						|
  - ffmpeg: require FFmpeg 4.0 or later
 | 
						|
  - ffmpeg: query supported demuxers at runtime
 | 
						|
  - hybrid_dsd: remove
 | 
						|
  - mpg123: prefer over "mad"
 | 
						|
  - mpg123: support streaming
 | 
						|
  - opus: implement bitrate calculation
 | 
						|
  - sidplay: require libsidplayfp (drop support for the original sidplay)
 | 
						|
  - wavpack: require libwavpack version 5
 | 
						|
  - fix MixRamp bug
 | 
						|
* resampler
 | 
						|
  - soxr: require libsoxr 0.1.2 or later
 | 
						|
* player
 | 
						|
  - add option "mixramp_analyzer" to scan MixRamp tags on-the-fly
 | 
						|
  - "one-shot" consume mode
 | 
						|
* tags
 | 
						|
  - new tags "TitleSort", "Mood", "ShowMovement"
 | 
						|
* output
 | 
						|
  - add option "always_off"
 | 
						|
  - alsa: require alsa-lib 1.1 or later
 | 
						|
  - pipewire: map tags "Date" and "Comment"
 | 
						|
* switch to C++20
 | 
						|
  - GCC 12 or clang 14 (or newer) recommended
 | 
						|
* static partition configuration
 | 
						|
* Windows
 | 
						|
  - build with libsamplerate
 | 
						|
  - remove JACK DLL support
 | 
						|
* remove Haiku support
 | 
						|
* remove Boost dependency
 | 
						|
* require libfmt 9 or later
 | 
						|
* documentation: switch to sphinx-rtd-theme
 | 
						|
* require Meson 1.0
 | 
						|
 | 
						|
ver 0.23.17 (2025/01/29)
 | 
						|
* protocol
 | 
						|
  - "albumart" tries to send larger chunks if available
 | 
						|
  - explicitly disallow "idle" and "noidle" in command lists
 | 
						|
* storage
 | 
						|
  - nfs: require libnfs 4.0 or later
 | 
						|
* database
 | 
						|
  - inotify: trigger update after symlink was created
 | 
						|
* decoder
 | 
						|
  - ffmpeg: prefer over sndfile and audiofile for its DTS-WAV support
 | 
						|
* support libfmt 11.1
 | 
						|
 | 
						|
ver 0.23.16 (2024/12/03)
 | 
						|
* database
 | 
						|
  - fix integer overflows with 64-bit inode numbers
 | 
						|
* filter
 | 
						|
  - ffmpeg: fix for filters producing no output
 | 
						|
* support libfmt 11
 | 
						|
* support ICU 76
 | 
						|
 | 
						|
ver 0.23.15 (2023/12/20)
 | 
						|
* decoder
 | 
						|
  - ffmpeg: fix build failure with FFmpeg 6.1
 | 
						|
* output
 | 
						|
  - alsa: limit buffer time to 2 seconds
 | 
						|
 | 
						|
ver 0.23.14 (2023/10/08)
 | 
						|
* decoder
 | 
						|
  - flac: fix scanning files with non-ASCII names on Windows
 | 
						|
  - mad: fix calculation of LAME peak values
 | 
						|
* mixer
 | 
						|
  - wasapi: fix problem setting volume
 | 
						|
* more libfmt 10 fixes
 | 
						|
* fix auto-detected systemd unit directory
 | 
						|
* Android
 | 
						|
  - require Android 7 or newer
 | 
						|
 | 
						|
ver 0.23.13 (2023/05/22)
 | 
						|
* input
 | 
						|
  - curl: fix busy loop after connection failed
 | 
						|
  - curl: hide "404" log messages for non-existent ".mpdignore" files
 | 
						|
* archive
 | 
						|
  - zzip: fix crash bug
 | 
						|
* database
 | 
						|
  - simple: reveal hidden songs after deleting containing CUE
 | 
						|
* decoder
 | 
						|
  - ffmpeg: reorder to a lower priority than "gme"
 | 
						|
  - gme: require GME 0.6 or later
 | 
						|
* output
 | 
						|
  - pipewire: fix corruption bug due to missing lock
 | 
						|
* Linux
 | 
						|
  - shut down if parent process dies in --no-daemon mode
 | 
						|
  - determine systemd unit directories via pkg-config
 | 
						|
* support libfmt 10
 | 
						|
 | 
						|
ver 0.23.12 (2023/01/17)
 | 
						|
* input
 | 
						|
  - curl: require CURL 7.55.0 or later
 | 
						|
* decoder
 | 
						|
  - mad: fix integer underflow with very small files
 | 
						|
* tags
 | 
						|
  - fix crash bug due to race condition
 | 
						|
* output
 | 
						|
  - pipewire: adjust to PipeWire 0.3.64 API change
 | 
						|
* fix build failures with GCC 13
 | 
						|
 | 
						|
ver 0.23.11 (2022/11/28)
 | 
						|
* database
 | 
						|
  - simple: move default database to ~/.cache/mpd/db from ~/.cache/mpd.db
 | 
						|
  - simple: default "cache_directory" to ~/.cache/mpd/mounts
 | 
						|
* macOS: fix build failure "no archive members specified"
 | 
						|
* Windows
 | 
						|
  - fix crash bug (stack buffer overflow) after I/O errors
 | 
						|
  - fix path traversal bug because backslash was allowed in playlist names
 | 
						|
* Android/Windows
 | 
						|
  - update OpenSSL to 3.0.7
 | 
						|
  - re-enable CURL's verbose error strings
 | 
						|
 | 
						|
ver 0.23.10 (2022/10/14)
 | 
						|
* storage
 | 
						|
  - curl: fix file time stamps
 | 
						|
* decoder
 | 
						|
  - ffmpeg: fix libfmt 9 compiler warning
 | 
						|
* encoder
 | 
						|
  - flac: fix failure when libFLAC is built without Ogg support
 | 
						|
* output
 | 
						|
  - alsa: fix crash bug
 | 
						|
* Windows
 | 
						|
  - log to stdout by default, don't require "log_file" setting
 | 
						|
 | 
						|
ver 0.23.9 (2022/08/18)
 | 
						|
* input
 | 
						|
  - cdio_paranoia: add options "mode" and "skip"
 | 
						|
* decoder
 | 
						|
  - ffmpeg: support FFmpeg 5.1
 | 
						|
* filter
 | 
						|
  - replay gain: fix delayed volume display with handler=mixer
 | 
						|
* output
 | 
						|
  - pipewire: set app icon
 | 
						|
* fix bogus volume levels with multiple partitions
 | 
						|
* improve iconv detection
 | 
						|
* macOS: fix macOS 10 build problem (0.23.8 regression)
 | 
						|
* Android
 | 
						|
  - load mpd.conf from app data directory
 | 
						|
 | 
						|
ver 0.23.8 (2022/07/09)
 | 
						|
* storage
 | 
						|
  - curl: fix crash if web server does not understand WebDAV
 | 
						|
* input
 | 
						|
  - cdio_paranoia: fix crash if no drive was found
 | 
						|
  - cdio_paranoia: faster cancellation
 | 
						|
  - cdio_paranoia: don't scan for replay gain tags
 | 
						|
  - pipewire: fix playback of very short tracks
 | 
						|
  - pipewire: drop all buffers before manual song change
 | 
						|
  - pipewire: fix stuttering after manual song change
 | 
						|
  - snapcast: fix busy loop while paused
 | 
						|
  - snapcast: fix stuttering after resuming playback
 | 
						|
* mixer
 | 
						|
  - better error messages
 | 
						|
  - alsa: fix setting volume before playback starts
 | 
						|
  - pipewire: fix crash bug
 | 
						|
  - pipewire: fix volume change events with PipeWire 0.3.53
 | 
						|
  - pipewire: don't force initial volume=100%
 | 
						|
* support libfmt 9
 | 
						|
 | 
						|
ver 0.23.7 (2022/05/09)
 | 
						|
* database
 | 
						|
  - upnp: support pupnp 1.14
 | 
						|
* decoder
 | 
						|
  - ffmpeg: fix HLS seeking
 | 
						|
  - opus: fix missing song length on high-latency files
 | 
						|
* output
 | 
						|
  - shout: require at least libshout 2.4.0
 | 
						|
* mixer
 | 
						|
  - pipewire: fix volume restore
 | 
						|
  - software: update volume of disabled outputs
 | 
						|
* support libiconv
 | 
						|
 | 
						|
ver 0.23.6 (2022/03/14)
 | 
						|
* protocol
 | 
						|
  - support filename "cover.webp" for "albumart" command
 | 
						|
  - support "readcomments" and "readpicture" on CUE tracks
 | 
						|
* decoder
 | 
						|
  - ffmpeg: fix end-of-file check (update stuck at empty files)
 | 
						|
  - opus: fix "readpicture" on Opus files
 | 
						|
* output
 | 
						|
  - pipewire: fix crash bug if setting volume before playback starts
 | 
						|
  - wasapi: fix resume after pause
 | 
						|
 | 
						|
ver 0.23.5 (2021/12/01)
 | 
						|
* protocol
 | 
						|
  - support relative offsets for "searchadd"
 | 
						|
  - fix "searchaddpl" bug (bogus error "Bad position")
 | 
						|
* database
 | 
						|
  - upnp: fix crash bug
 | 
						|
* tags
 | 
						|
  - fix MixRamp support
 | 
						|
* migrate to PCRE2
 | 
						|
* GCC 12 build fixes
 | 
						|
 | 
						|
ver 0.23.4 (2021/11/11)
 | 
						|
* protocol
 | 
						|
  - add optional position parameter to "searchaddpl"
 | 
						|
* decoder
 | 
						|
  - ffmpeg: support libavcodec 59
 | 
						|
* output
 | 
						|
  - alsa: add option "thesycon_dsd_workaround" to work around device bug
 | 
						|
* fix crash on debug builds if startup fails
 | 
						|
* systemd
 | 
						|
  - remove "RuntimeDirectory" directive because it caused problems
 | 
						|
  - ignore the "pid_file" setting if started as systemd service
 | 
						|
* Windows
 | 
						|
  - enable the "openmpt" decoder plugin
 | 
						|
 | 
						|
ver 0.23.3 (2021/10/31)
 | 
						|
* protocol
 | 
						|
  - add optional position parameter to "add" and "playlistadd"
 | 
						|
  - allow range in "playlistdelete"
 | 
						|
* database
 | 
						|
  - fix scanning files with question mark in the name
 | 
						|
  - inotify: fix use-after-free bug
 | 
						|
* output
 | 
						|
  - alsa: add option "stop_dsd_silence" to work around DSD DAC noise
 | 
						|
* macOS: fix libfmt related build failure
 | 
						|
* systemd: add "RuntimeDirectory" directive
 | 
						|
 | 
						|
ver 0.23.2 (2021/10/22)
 | 
						|
* protocol
 | 
						|
  - fix "albumart" timeout bug
 | 
						|
* input
 | 
						|
  - nfs: fix playback bug
 | 
						|
* output
 | 
						|
  - pipewire: send artist and title to PipeWire
 | 
						|
  - pipewire: DSD support
 | 
						|
* neighbor
 | 
						|
  - mention failed plugin name in error message
 | 
						|
* player
 | 
						|
  - fix cross-fade regression
 | 
						|
* fix crash with libfmt versions older than 7
 | 
						|
 | 
						|
ver 0.23.1 (2021/10/19)
 | 
						|
* protocol
 | 
						|
  - use decimal notation instead of scientific notation
 | 
						|
  - "load" supports relative positions
 | 
						|
* output
 | 
						|
  - emit "mixer" idle event when replay gain changes volume
 | 
						|
  - pipewire: emit "mixer" idle events on external volume change
 | 
						|
  - pipewire: attempt to change the graph sample rate
 | 
						|
  - snapcast: fix time stamp bug which caused "Failed to get chunk"
 | 
						|
* fix libfmt linker problems
 | 
						|
* fix broken password authentication
 | 
						|
 | 
						|
ver 0.23 (2021/10/14)
 | 
						|
* protocol
 | 
						|
  - new command "getvol"
 | 
						|
  - show the audio format in "playlistinfo"
 | 
						|
  - support "listfiles" with arbitrary storage plugins
 | 
						|
  - support relative positions in "addid"
 | 
						|
  - fix relative positions in "move" and "moveid"
 | 
						|
  - add "position" parameter to "findadd" and "searchadd"
 | 
						|
  - add position parameter to "load"
 | 
						|
* database
 | 
						|
  - proxy: require MPD 0.20 or later
 | 
						|
  - proxy: require libmpdclient 2.11 or later
 | 
						|
  - proxy: split search into chunks to avoid exceeding the output buffer
 | 
						|
  - simple: add option to hide CUE target songs
 | 
						|
  - upnp: support libnpupnp instead of libupnp
 | 
						|
* archive
 | 
						|
  - zzip, iso9660: ignore file names which are invalid UTF-8
 | 
						|
* decoder
 | 
						|
  - openmpt: new plugin
 | 
						|
  - wavpack: fix WVC file support
 | 
						|
* player
 | 
						|
  - do not cross-fade songs shorter than 20 seconds
 | 
						|
* output
 | 
						|
  - oss: support DSD over PCM
 | 
						|
  - pipewire: new plugin
 | 
						|
  - snapcast: new plugin
 | 
						|
* tags
 | 
						|
  - new tags "ComposerSort", "Ensemble", "Movement", "MovementNumber", and "Location"
 | 
						|
* split permission "player" from "control"
 | 
						|
* add option "host_permissions"
 | 
						|
* new build-time dependency: libfmt
 | 
						|
 | 
						|
ver 0.22.11 (2021/08/24)
 | 
						|
* protocol
 | 
						|
  - fix "albumart" crash
 | 
						|
* filter
 | 
						|
  - ffmpeg: pass "channel_layout" instead of "channels" to buffersrc
 | 
						|
  - ffmpeg: fix "av_buffersink_get_frame() failed: Resource temporarily unavailable"
 | 
						|
  - ffmpeg: support double-precision samples (by converting to single precision)
 | 
						|
* Android
 | 
						|
  - build with NDK r23
 | 
						|
  - playlist_directory defaults to "/sdcard/Android/data/org.musicpd/files/playlists"
 | 
						|
 | 
						|
ver 0.22.10 (2021/08/06)
 | 
						|
* protocol
 | 
						|
  - support "albumart" for virtual tracks in CUE sheets
 | 
						|
* database
 | 
						|
  - simple: fix crash bug
 | 
						|
  - simple: fix absolute paths in CUE "as_directory" entries
 | 
						|
  - simple: prune CUE entries from database for non-existent songs
 | 
						|
* input
 | 
						|
  - curl: fix crash bug after stream with Icy metadata was closed by peer
 | 
						|
  - tidal: remove defunct unmaintained plugin
 | 
						|
* tags
 | 
						|
  - fix crash caused by bug in TagBuilder and a few potential reference leaks
 | 
						|
* output
 | 
						|
  - httpd: fix missing tag after seeking into a new song
 | 
						|
  - oss: fix channel order of multi-channel files
 | 
						|
* mixer
 | 
						|
  - alsa: fix yet more rounding errors
 | 
						|
 | 
						|
ver 0.22.9 (2021/06/23)
 | 
						|
* database
 | 
						|
  - simple: load all .mpdignore files of all parent directories
 | 
						|
* tags
 | 
						|
  - fix "readcomments" and "readpicture" on remote files with ID3 tags
 | 
						|
* decoder
 | 
						|
  - ffmpeg: support the tags "sort_album", "album-sort", "artist-sort"
 | 
						|
  - ffmpeg: fix build failure with FFmpeg 3.4
 | 
						|
* Android
 | 
						|
  - fix auto-start on boot in Android 8 or later
 | 
						|
* Windows
 | 
						|
  - fix build failure with SQLite
 | 
						|
 | 
						|
ver 0.22.8 (2021/05/22)
 | 
						|
* fix crash bug in "albumart" command (0.22.7 regression)
 | 
						|
 | 
						|
ver 0.22.7 (2021/05/19)
 | 
						|
* protocol
 | 
						|
  - don't use glibc extension to parse time stamps
 | 
						|
  - optimize the "albumart" command
 | 
						|
* input
 | 
						|
  - curl: send user/password in the first request, save one roundtrip
 | 
						|
* decoder
 | 
						|
  - ffmpeg: fix build problem with FFmpeg 3.4
 | 
						|
  - gme: support RSN files
 | 
						|
* storage
 | 
						|
  - curl: don't use glibc extension
 | 
						|
* database
 | 
						|
  - simple: fix database corruption bug
 | 
						|
* output
 | 
						|
  - fix crash when pausing with multiple partitions
 | 
						|
  - jack: enable on Windows
 | 
						|
  - httpd: send header "Access-Control-Allow-Origin: *"
 | 
						|
  - wasapi: add algorithm for finding usable audio format
 | 
						|
  - wasapi: use default device only if none was configured
 | 
						|
  - wasapi: add DoP support
 | 
						|
 | 
						|
ver 0.22.6 (2021/02/16)
 | 
						|
* fix missing tags on songs in queue
 | 
						|
 | 
						|
ver 0.22.5 (2021/02/15)
 | 
						|
* protocol
 | 
						|
  - error for malformed ranges instead of ignoring silently
 | 
						|
  - better error message for open-ended range with "move"
 | 
						|
* database
 | 
						|
  - simple: fix missing CUE sheet metadata in "addid" command
 | 
						|
* tags
 | 
						|
  - id: translate TPE3 to Conductor, not Performer
 | 
						|
* archive
 | 
						|
  - iso9660: another fix for unaligned reads
 | 
						|
* output
 | 
						|
  - httpd: error handling on Windows improved
 | 
						|
  - pulse: fix deadlock with "always_on"
 | 
						|
* Windows:
 | 
						|
  - enable https:// support (via Schannel)
 | 
						|
* Android
 | 
						|
  - work around "Permission denied" on mpd.conf
 | 
						|
 | 
						|
ver 0.22.4 (2021/01/21)
 | 
						|
* protocol
 | 
						|
  - add command "binarylimit" to allow larger chunk sizes
 | 
						|
  - fix "readpicture" on 32 bit machines
 | 
						|
  - show duration and tags of songs in virtual playlist (CUE) folders
 | 
						|
* storage
 | 
						|
  - curl: fix several WebDAV protocol bugs
 | 
						|
* decoder
 | 
						|
  - dsdiff: apply padding to odd-sized chunks
 | 
						|
* filter
 | 
						|
  - ffmpeg: detect the output sample format
 | 
						|
* output
 | 
						|
  - moveoutput: fix always_on and tag lost on move
 | 
						|
* Android
 | 
						|
  - enable https:// support (via OpenSSL)
 | 
						|
 | 
						|
ver 0.22.3 (2020/11/06)
 | 
						|
* playlist
 | 
						|
  - add option "as_directory", making CUE file expansion optional
 | 
						|
* storage
 | 
						|
  - curl: fix crash bug
 | 
						|
* filter
 | 
						|
  - fix garbage after "Audio format not supported by filter" message
 | 
						|
  - ffmpeg: support planar output
 | 
						|
  - ffmpeg: support sample formats other than 16 bit
 | 
						|
 | 
						|
ver 0.22.2 (2020/10/28)
 | 
						|
* database
 | 
						|
  - simple: purge songs and virtual directories for unavailable plugins
 | 
						|
    on update
 | 
						|
* input
 | 
						|
  - qobuz/tidal: fix protocol errors due to newlines in error messages
 | 
						|
  - smbclient: disable by default due to libsmbclient crash bug
 | 
						|
* playlist
 | 
						|
  - soundcloud: fix protocol errors due to newlines in error messages
 | 
						|
* state_file: save on shutdown
 | 
						|
 | 
						|
ver 0.22.1 (2020/10/17)
 | 
						|
* decoder
 | 
						|
  - opus: apply the OpusHead output gain even if there is no EBU R128 tag
 | 
						|
  - opus: fix track/album ReplayGain fallback
 | 
						|
* output
 | 
						|
  - alsa: don't deadlock when the ALSA driver is buggy
 | 
						|
  - jack, pulse: reduce the delay when stopping or pausing playback
 | 
						|
* playlist
 | 
						|
  - cue: fix two crash bugs
 | 
						|
* state_file: fix the state_file_interval setting
 | 
						|
 | 
						|
ver 0.22 (2020/09/23)
 | 
						|
* protocol
 | 
						|
  - "findadd"/"searchadd"/"searchaddpl" support the "sort" and
 | 
						|
    "window" parameters
 | 
						|
  - add command "readpicture" to download embedded pictures
 | 
						|
  - command "moveoutput" moves an output between partitions
 | 
						|
  - command "delpartition" deletes a partition
 | 
						|
  - show partition name in "status" response
 | 
						|
* tags
 | 
						|
  - new tags "Grouping" (for ID3 "TIT1"), "Work" and "Conductor"
 | 
						|
* input
 | 
						|
  - curl: support "charset" parameter in URI fragment
 | 
						|
  - ffmpeg: allow partial reads
 | 
						|
  - io_uring: new plugin for local files on Linux (using liburing)
 | 
						|
  - smbclient: close unused SMB/CIFS connections
 | 
						|
* database
 | 
						|
  - upnp: drop support for libupnp versions older than 1.8
 | 
						|
* playlist
 | 
						|
  - cue: integrate contents in database
 | 
						|
* decoder
 | 
						|
  - ffmpeg: support RTSP
 | 
						|
  - mad: remove option "gapless", always do gapless
 | 
						|
  - sidplay: add option "default_genre"
 | 
						|
  - sidplay: map SID name field to "Album" tag
 | 
						|
  - sidplay: add support for new song length format with libsidplayfp 2.0
 | 
						|
  - vorbis, opus: improve seeking accuracy
 | 
						|
* playlist
 | 
						|
  - flac: support reading CUE sheets from remote FLAC files
 | 
						|
* filter
 | 
						|
  - ffmpeg: new plugin based on FFmpeg's libavfilter library
 | 
						|
  - hdcd: new plugin based on FFmpeg's "af_hdcd" for HDCD playback
 | 
						|
  - volume: convert S16 to S24 to preserve quality and reduce dithering noise
 | 
						|
  - dsd: add integer-only DSD to PCM converter
 | 
						|
* output
 | 
						|
  - jack: add option "auto_destination_ports"
 | 
						|
  - jack: report error details
 | 
						|
  - pulse: add option "media_role"
 | 
						|
  - solaris: support S8 and S32
 | 
						|
* lower the real-time priority from 50 to 40
 | 
						|
* switch to C++17
 | 
						|
  - GCC 8 or clang 5 (or newer) recommended
 | 
						|
 | 
						|
ver 0.21.26 (2020/09/21)
 | 
						|
* database
 | 
						|
  - inotify: obey ".mpdignore" files
 | 
						|
* output
 | 
						|
  - osx: fix crash bug
 | 
						|
  - sles: support floating point samples
 | 
						|
* archive
 | 
						|
  - bzip2: fix crash on corrupt bzip2 file
 | 
						|
  - bzip2: flush output at end of input file
 | 
						|
  - iso9660: fix unaligned reads
 | 
						|
  - iso9660: support seeking
 | 
						|
  - zzip: fix crash on corrupt ZIP file
 | 
						|
* decoder
 | 
						|
  - ffmpeg: remove "rtsp://" from the list of supported protocols
 | 
						|
  - ffmpeg: add "hls+http://" to the list of supported protocols
 | 
						|
  - opus: support the gain value from the Opus header
 | 
						|
  - sndfile: fix lost samples at end of file
 | 
						|
* fix "single" mode bug after resuming playback
 | 
						|
* the default log_level is "default", not "info"
 | 
						|
 | 
						|
ver 0.21.25 (2020/07/06)
 | 
						|
* protocol:
 | 
						|
  - fix crash when using "rangeid" while playing
 | 
						|
* database
 | 
						|
  - simple: automatically scan new mounts
 | 
						|
  - upnp: fix compatibility with Plex DLNA
 | 
						|
* storage
 | 
						|
  - fix disappearing mounts after mounting twice
 | 
						|
  - udisks: fix reading ".mpdignore"
 | 
						|
* input
 | 
						|
  - file: detect premature end of file
 | 
						|
  - smbclient: don't send credentials to MPD clients
 | 
						|
* decoder
 | 
						|
  - opus: apply pre-skip and end trimming
 | 
						|
  - opus: fix memory leak
 | 
						|
  - opus: fix crash bug
 | 
						|
  - vorbis: fix crash bug
 | 
						|
* output
 | 
						|
  - osx: improve sample rate selection
 | 
						|
  - osx: fix noise while stopping
 | 
						|
* neighbor
 | 
						|
  - upnp: fix crash during shutdown
 | 
						|
* Windows/Android:
 | 
						|
  - fix Boost detection after breaking change in Meson 0.54
 | 
						|
 | 
						|
ver 0.21.24 (2020/06/10)
 | 
						|
* protocol
 | 
						|
  - "tagtypes" requires no permissions
 | 
						|
* database
 | 
						|
  - simple: fix crash when mounting twice
 | 
						|
* decoder
 | 
						|
  - modplug: fix Windows build failure
 | 
						|
  - wildmidi: attempt to detect WildMidi using pkg-config
 | 
						|
  - wildmidi: fix Windows build failure
 | 
						|
* player
 | 
						|
  - don't restart current song if seeking beyond end
 | 
						|
* Android
 | 
						|
  - enable the decoder plugins GME, ModPlug and WildMidi
 | 
						|
  - fix build failure with Android NDK r21
 | 
						|
* Windows
 | 
						|
  - fix stream playback
 | 
						|
  - enable the decoder plugins GME, ModPlug and WildMidi
 | 
						|
  - work around Meson bug breaking the Windows build with GCC 10
 | 
						|
* fix unit test failure
 | 
						|
 | 
						|
ver 0.21.23 (2020/04/23)
 | 
						|
* protocol
 | 
						|
  - add tag fallback for AlbumSort
 | 
						|
* storage
 | 
						|
  - curl: fix corrupt "href" values in the presence of XML entities
 | 
						|
  - curl: unescape "href" values
 | 
						|
* input
 | 
						|
  - nfs: fix crash bug
 | 
						|
  - nfs: fix freeze bug on reconnect
 | 
						|
* decoder
 | 
						|
  - gme: adapt to API change in the upcoming version 0.7.0
 | 
						|
* output
 | 
						|
  - alsa: implement channel mapping for 5.0 and 7.0
 | 
						|
* player
 | 
						|
  - drain outputs at end of song in "single" mode
 | 
						|
* Windows
 | 
						|
  - fix case insensitive search
 | 
						|
 | 
						|
ver 0.21.22 (2020/04/02)
 | 
						|
* database
 | 
						|
  - simple: optimize startup
 | 
						|
* input
 | 
						|
  - curl: fix streaming errors on Android
 | 
						|
* playlist
 | 
						|
  - rss: support MIME type application/xml
 | 
						|
* mixer
 | 
						|
  - android: new mixer plugin for "sles" output
 | 
						|
* Android
 | 
						|
  - TV support
 | 
						|
* Windows
 | 
						|
  - fix time zone offset check
 | 
						|
* fix build failures with uClibc-ng
 | 
						|
 | 
						|
ver 0.21.21 (2020/03/19)
 | 
						|
* configuration
 | 
						|
  - fix bug in "metadata_to_use" setting
 | 
						|
* playlist
 | 
						|
  - asx, xspf: fix corrupt tags in the presence of XML entities
 | 
						|
* archive
 | 
						|
  - iso9660: skip empty file names to work around libcdio bug
 | 
						|
* decoder
 | 
						|
  - gme: ignore empty tags
 | 
						|
* output
 | 
						|
  - solaris: port to NetBSD
 | 
						|
* raise default "max_connections" value to 100
 | 
						|
 | 
						|
ver 0.21.20 (2020/02/16)
 | 
						|
* decoder
 | 
						|
  - audiofile, ffmpeg, sndfile: handle MIME type "audio/wav"
 | 
						|
  - ffmpeg: fix playback of AIFF and TTA
 | 
						|
  - vorbis, opus: fix seeking in small files
 | 
						|
* fix backwards seeking on ARM (and other non-x86 CPUs)
 | 
						|
 | 
						|
ver 0.21.19 (2020/01/17)
 | 
						|
* configuration
 | 
						|
  - allow overriding top-level settings in includes
 | 
						|
* output
 | 
						|
  - pulse: obey Pulse's maximum sample rate (fixes DSD128 playback)
 | 
						|
* fix build failure with clang 10
 | 
						|
* fix build failure with Android NDK r20
 | 
						|
 | 
						|
ver 0.21.18 (2019/12/24)
 | 
						|
* protocol
 | 
						|
  - work around Mac OS X bug in the ISO 8601 parser
 | 
						|
* output
 | 
						|
  - alsa: fix hang bug with ALSA "null" outputs
 | 
						|
* storage
 | 
						|
  - curl: fix crash bug
 | 
						|
* drop support for CURL versions older than 7.32.0
 | 
						|
* reduce unnecessary CPU wakeups
 | 
						|
 | 
						|
ver 0.21.17 (2019/12/16)
 | 
						|
* protocol
 | 
						|
  - relax the ISO 8601 parser: allow omitting field separators, the
 | 
						|
    time of day and the "Z" suffix
 | 
						|
* archive
 | 
						|
  - zzip: improve error reporting
 | 
						|
* outputs
 | 
						|
  - jack: mark ports as terminal
 | 
						|
  - shout: declare metadata as UTF-8
 | 
						|
* fix build failure with -Ddatabase=false
 | 
						|
 | 
						|
ver 0.21.16 (2019/10/16)
 | 
						|
* queue
 | 
						|
  - fix relative destination offset when moving a range
 | 
						|
* storage
 | 
						|
  - curl: request the "resourcetype" property to fix database update
 | 
						|
  - curl: URL-encode more paths
 | 
						|
  - curl: follow redirects for collections without trailing slash
 | 
						|
* update
 | 
						|
  - fix crash when music_directory is not a directory
 | 
						|
* fix build with iconv() instead of ICU
 | 
						|
 | 
						|
ver 0.21.15 (2019/09/25)
 | 
						|
* decoder
 | 
						|
  - dsdiff, dsf: fix displayed bit rate
 | 
						|
  - mpcdec: fix bogus ReplayGain values
 | 
						|
* output
 | 
						|
  - solaris: fix build with glibc 2.30
 | 
						|
 | 
						|
ver 0.21.14 (2019/08/21)
 | 
						|
* decoder
 | 
						|
  - sidplay: show track durations in database
 | 
						|
  - sidplay: convert tag values from Windows-1252 charset
 | 
						|
  - sidplay: strip text from "Date" tag
 | 
						|
* player
 | 
						|
  - fix crash after song change
 | 
						|
  - fix seek position after restarting the decoder
 | 
						|
* protocol
 | 
						|
  - include command name in error responses
 | 
						|
 | 
						|
ver 0.21.13 (2019/08/06)
 | 
						|
* input
 | 
						|
  - cdio_paranoia: require libcdio-paranoia 10.2+0.93+1
 | 
						|
* decoder
 | 
						|
  - mad: fix crackling sound (0.21.12 regression)
 | 
						|
* output
 | 
						|
  - jack: improved Windows compatibility
 | 
						|
 | 
						|
ver 0.21.12 (2019/08/03)
 | 
						|
* decoder
 | 
						|
  - mad: update bit rate after seeking
 | 
						|
  - mad: fix several bugs preventing the plugin from decoding the last frame
 | 
						|
  - opus: ignore case in replay gain tag names
 | 
						|
  - opus, vorbis: decode the "end of stream" packet
 | 
						|
* output
 | 
						|
  - jack: fix mono-to-stereo conversion
 | 
						|
* player
 | 
						|
  - don't restart unseekable song after failed seek attempt
 | 
						|
* Windows
 | 
						|
  - support backslash in relative URIs loaded from playlists
 | 
						|
 | 
						|
ver 0.21.11 (2019/07/03)
 | 
						|
* input
 | 
						|
  - tidal: deprecated because Tidal has changed the protocol
 | 
						|
* decoder
 | 
						|
  - wildmidi: log error if library initialization fails
 | 
						|
* output
 | 
						|
  - alsa: fix busy loop while draining
 | 
						|
  - alsa: fix missing drain call
 | 
						|
  - alsa: improve xrun-avoiding silence generator
 | 
						|
  - alsa: log when generating silence due to slow decoder
 | 
						|
  - alsa, osx: fix distortions with DSD_U32 and DoP on 32 bit CPUs
 | 
						|
* protocol
 | 
						|
  - fix "list" with multiple "group" levels
 | 
						|
 | 
						|
ver 0.21.10 (2019/06/05)
 | 
						|
* decoder
 | 
						|
  - opus: fix duplicate tags
 | 
						|
* output
 | 
						|
  - httpd: reject some well-known URIs
 | 
						|
* fix crash bug (0.21.9 regression)
 | 
						|
 | 
						|
ver 0.21.9 (2019/05/20)
 | 
						|
* input
 | 
						|
  - buffer: fix deadlock bug
 | 
						|
* Android
 | 
						|
  - fix crash on ARMv7
 | 
						|
  - request storage permission on Android 6+
 | 
						|
* fix spurious "single" mode bug
 | 
						|
 | 
						|
ver 0.21.8 (2019/04/23)
 | 
						|
* input
 | 
						|
  - smbclient: download to buffer instead of throttling transfer
 | 
						|
* output
 | 
						|
  - httpd: add missing mutex lock
 | 
						|
  - httpd: fix use-after-free bug
 | 
						|
* playlist
 | 
						|
  - soundcloud: fix "Unsupported URI scheme" (0.21.6 regression)
 | 
						|
* fix Bonjour bug
 | 
						|
* fix build failure with GCC 9
 | 
						|
* fix build failure with -Ddatabase=false
 | 
						|
* systemd: add user socket unit
 | 
						|
* doc: "list file" is deprecated
 | 
						|
 | 
						|
ver 0.21.7 (2019/04/03)
 | 
						|
* input
 | 
						|
  - qobuz/tidal: scan tags when loading a playlist
 | 
						|
* require Meson 0.49.0 for native libgcrypt-config support
 | 
						|
* fix build failure with -Dlocal_socket=false
 | 
						|
* Haiku
 | 
						|
  - fix build
 | 
						|
  - add version info
 | 
						|
 | 
						|
ver 0.21.6 (2019/03/17)
 | 
						|
* protocol
 | 
						|
  - allow loading playlists specified as absolute filesystem paths
 | 
						|
  - fix negated filter expressions with multiple tag values
 | 
						|
  - fix "list" with filter expression
 | 
						|
  - omit empty playlist names in "listplaylists"
 | 
						|
* input
 | 
						|
  - cdio_paranoia: fix build failure due to missing #include
 | 
						|
* decoder
 | 
						|
  - opus: fix replay gain when there are no other tags
 | 
						|
  - opus: fix seeking to beginning of song
 | 
						|
  - vorbis: fix Tremor conflict resulting in crash
 | 
						|
* output
 | 
						|
  - pulse: work around error with unusual channel count
 | 
						|
  - osx: fix build failure
 | 
						|
* playlist
 | 
						|
  - flac: fix use-after-free bug
 | 
						|
* support abstract sockets on Linux
 | 
						|
* Windows
 | 
						|
  - remove the unused libwinpthread-1.dll dependency
 | 
						|
* Android
 | 
						|
  - enable SLES power saving mode
 | 
						|
 | 
						|
ver 0.21.5 (2019/02/22)
 | 
						|
* protocol
 | 
						|
  - fix deadlock in "albumart" command
 | 
						|
  - fix "tagtypes disable" command
 | 
						|
* database
 | 
						|
  - simple: fix assertion failure
 | 
						|
  - fix assertion failures with mount points
 | 
						|
* storage
 | 
						|
  - udisks: fix "AlreadyMounted" error
 | 
						|
  - udisks: use relative path from mount URI
 | 
						|
  - fix memory leak
 | 
						|
* input
 | 
						|
  - buffer: fix crash bug when playing remote WAV file
 | 
						|
* tags
 | 
						|
  - ape: map "Album Artist"
 | 
						|
* output
 | 
						|
  - shout: add support for TLS
 | 
						|
* mixer
 | 
						|
  - pulse: add "scale_volume" setting
 | 
						|
 | 
						|
ver 0.21.4 (2019/01/04)
 | 
						|
* database
 | 
						|
  - inotify: fix crash bug "terminate called after throwing ..."
 | 
						|
  - upnp: implement "list ... group"
 | 
						|
* output
 | 
						|
  - httpd: declare protocol "HTTP/1.1" instead of "ICY"
 | 
						|
* remove libwrap support
 | 
						|
* Windows
 | 
						|
  - fix "Failed to accept connection: unknown error"
 | 
						|
* fix Haiku build
 | 
						|
 | 
						|
ver 0.21.3 (2018/11/16)
 | 
						|
* output
 | 
						|
  - alsa: fix crash bug
 | 
						|
  - alsa: fix stuttering at start of playback
 | 
						|
  - alsa: fix discarded samples at end of song
 | 
						|
  - alsa: clear error after reopening device
 | 
						|
* log: default to journal if MPD was started as systemd service
 | 
						|
 | 
						|
ver 0.21.2 (2018/11/12)
 | 
						|
* protocol
 | 
						|
  - operator "=~" matches a regular expression
 | 
						|
  - operator "contains" matches substrings
 | 
						|
* decoder
 | 
						|
  - ffmpeg: require FFmpeg 3.1 or later
 | 
						|
  - ffmpeg: fix broken sound with certain codecs
 | 
						|
* output
 | 
						|
  - alsa: fix high CPU usage with dmix
 | 
						|
  - httpd: fix three crash bugs
 | 
						|
* mixer
 | 
						|
  - alsa: fix more rounding errors
 | 
						|
* fix zlib support
 | 
						|
 | 
						|
ver 0.21.1 (2018/11/04)
 | 
						|
* protocol
 | 
						|
  - allow escaping quotes in filter expressions
 | 
						|
  - operator "==" never searches substrings in filter expressions
 | 
						|
* decoder
 | 
						|
  - ffmpeg: fix build failure with non-standard FFmpeg installation path
 | 
						|
  - flac: fix linker failure when building without FLAC support
 | 
						|
* encoder
 | 
						|
  - vorbis: fix linker failure when building without Vorbis decoder
 | 
						|
* fix build failure on Linux-PowerPC
 | 
						|
* fix build failure on FreeBSD
 | 
						|
* eliminate DLL dependencies on Windows
 | 
						|
* add warning about buggy Boost version 1.67
 | 
						|
* require Meson 0.47.2 because a Meson 0.47.1 bug breaks our build
 | 
						|
 | 
						|
ver 0.21 (2018/10/31)
 | 
						|
* configuration
 | 
						|
  - add "include" directive, allows including config files
 | 
						|
  - incremental "metadata_to_use" setting
 | 
						|
* protocol
 | 
						|
  - "tagtypes" can be used to hide tags
 | 
						|
  - "find" and "search" can sort
 | 
						|
  - "outputs" prints the plugin name
 | 
						|
  - "outputset" sets runtime attributes
 | 
						|
  - close connection when client sends HTTP request
 | 
						|
  - new filter syntax for "find"/"search" etc. with negation
 | 
						|
* database
 | 
						|
  - simple: scan audio formats
 | 
						|
  - proxy: require libmpdclient 2.9
 | 
						|
  - proxy: forward `sort` and `window` to server
 | 
						|
* player
 | 
						|
  - hard-code "buffer_before_play" to 1 second, independent of audio format
 | 
						|
  - "one-shot" single mode
 | 
						|
* input
 | 
						|
  - curl: download to buffer instead of throttling transfer
 | 
						|
  - qobuz: new plugin to play Qobuz streams
 | 
						|
  - tidal: new plugin to play Tidal streams
 | 
						|
* tags
 | 
						|
  - new tags "OriginalDate", "MUSICBRAINZ_WORKID"
 | 
						|
* decoder
 | 
						|
  - ffmpeg: require at least version 11.12
 | 
						|
  - gme: try loading m3u sidecar files
 | 
						|
  - hybrid_dsd: new decoder plugin
 | 
						|
  - mad: move "gapless_mp3_playback" setting to "decoder" block
 | 
						|
  - mikmod: require at least version 3.2
 | 
						|
  - pcm: support audio/L24 (RFC 3190)
 | 
						|
  - sidplay: support basic and kernal rom (libsidplayfp)
 | 
						|
* resampler
 | 
						|
  - soxr: flush resampler at end of song
 | 
						|
* output
 | 
						|
  - alsa: non-blocking mode
 | 
						|
  - alsa: change "dop" and "allowed_formats" settings at runtime
 | 
						|
  - ao: fix crash bug due to partial frames
 | 
						|
  - shout: support the Shine encoder plugin
 | 
						|
  - sndio: remove support for the broken RoarAudio sndio emulation
 | 
						|
  - osx: initial support for DSD over PCM
 | 
						|
  - roar: removed
 | 
						|
  - httpd_output: support for unix sockets
 | 
						|
* mixer
 | 
						|
  - sndio: new mixer plugin
 | 
						|
* encoder
 | 
						|
  - opus: support for sending metadata using ogg stream chaining
 | 
						|
* listen on $XDG_RUNTIME_DIR/mpd/socket by default
 | 
						|
* append hostname to Zeroconf service name
 | 
						|
* systemd watchdog support
 | 
						|
* require GCC 6
 | 
						|
* build with Meson instead of autotools
 | 
						|
* use GTest instead of cppunit
 | 
						|
 | 
						|
ver 0.20.23 (2018/10/29)
 | 
						|
* protocol
 | 
						|
  - emit "player" idle event when restarting the current song
 | 
						|
* fix broken float to s32 conversion
 | 
						|
* new clang crash bug workaround
 | 
						|
 | 
						|
ver 0.20.22 (2018/10/23)
 | 
						|
* protocol
 | 
						|
  - add tag fallbacks for AlbumArtistSort, ArtistSort
 | 
						|
  - fix empty string filter on fallback tags
 | 
						|
  - "count group ..." can print an empty group
 | 
						|
  - fix broken command "list ... group"
 | 
						|
* storage
 | 
						|
  - curl: URL-encode paths
 | 
						|
* decoder
 | 
						|
  - fluidsynth: adapt to API change in version 2.0
 | 
						|
* Android
 | 
						|
  - now runs as a service
 | 
						|
  - add button to start/stop MPD
 | 
						|
  - add option to auto-start on boot
 | 
						|
* work around clang bug leading to crash
 | 
						|
* install the SVG icon
 | 
						|
 | 
						|
ver 0.20.21 (2018/08/17)
 | 
						|
* database
 | 
						|
  - proxy: add "password" setting
 | 
						|
  - proxy: support tags "ArtistSort", "AlbumArtistSort", "AlbumSort"
 | 
						|
  - simple: allow .mpdignore comments only at start of line
 | 
						|
* output
 | 
						|
  - httpd: remove broken DLNA support code
 | 
						|
* playlist
 | 
						|
  - cue: support file type declaration "FLAC" (non-standard)
 | 
						|
* URI schemes are case insensitive
 | 
						|
* Android, Windows
 | 
						|
  - enable the "curl" storage plugin
 | 
						|
 | 
						|
ver 0.20.20 (2018/05/22)
 | 
						|
* protocol
 | 
						|
  - fix "modified-since" filter regression
 | 
						|
* output
 | 
						|
  - pulse: cork stream when paused due to "single" mode
 | 
						|
* decoder
 | 
						|
  - dsdiff, dsf: support more MIME types
 | 
						|
  - dsdiff, dsf: allow 4 MB ID3 tags
 | 
						|
  - opus: support R128_ALBUM_GAIN tag
 | 
						|
* Android, Windows
 | 
						|
  - enable the "proxy" database plugin
 | 
						|
 | 
						|
ver 0.20.19 (2018/04/26)
 | 
						|
* protocol
 | 
						|
  - validate absolute seek time, reject negative values
 | 
						|
* database
 | 
						|
  - proxy: fix "search already in progress" errors
 | 
						|
  - proxy: implement "list ... group"
 | 
						|
* input
 | 
						|
  - mms: fix lockup bug and a crash bug
 | 
						|
* decoder
 | 
						|
  - ffmpeg: fix av_register_all() deprecation warning (FFmpeg 4.0)
 | 
						|
* player
 | 
						|
  - fix spurious "Not seekable" error when switching radio streams
 | 
						|
* macOS: fix crash bug
 | 
						|
 | 
						|
ver 0.20.18 (2018/02/24)
 | 
						|
* input
 | 
						|
  - curl: allow authentication methods other than "Basic"
 | 
						|
* decoder
 | 
						|
  - flac: improve seeking precision
 | 
						|
* fix gapless CUE song transitions
 | 
						|
* Android, Windows
 | 
						|
  - enable the NFS storage plugin
 | 
						|
 | 
						|
ver 0.20.17 (2018/02/11)
 | 
						|
* output
 | 
						|
  - alsa: fix crash bug with 8 channels
 | 
						|
* mixer
 | 
						|
  - alsa: fix rounding error at volume 0
 | 
						|
* fix real-time and idle scheduling with Musl
 | 
						|
* Android
 | 
						|
  - fix compatibility with Android 4.0
 | 
						|
 | 
						|
ver 0.20.16 (2018/02/03)
 | 
						|
* output
 | 
						|
  - pulse: fix crash during auto-detection
 | 
						|
* database
 | 
						|
  - simple: fix search within mount points
 | 
						|
  - upnp: enable IPv6
 | 
						|
* archive
 | 
						|
  - iso9660: libcdio 2.0 compatibility
 | 
						|
* fix crash in debug build on Haiku and other operating systems
 | 
						|
 | 
						|
ver 0.20.15 (2018/01/05)
 | 
						|
* queue: fix crash after seek failure
 | 
						|
* resampler
 | 
						|
  - soxr: clear internal state after manual song change
 | 
						|
* state file
 | 
						|
  - make mount point restore errors non-fatal
 | 
						|
  - fix crash when restoring mounts with incompatible database plugin
 | 
						|
* Android
 | 
						|
  - build without Ant
 | 
						|
  - fix for SIGSYS crash
 | 
						|
 | 
						|
ver 0.20.14 (2018/01/01)
 | 
						|
* database
 | 
						|
  - simple: fix file corruption in the presence of mount points
 | 
						|
* archive
 | 
						|
  - bz2: fix deadlock
 | 
						|
  - reduce lock contention, fixing lots of xrun problems
 | 
						|
* fix Solaris build failure
 | 
						|
 | 
						|
ver 0.20.13 (2017/12/18)
 | 
						|
* output
 | 
						|
  - osx: set up ring buffer to hold at least 100ms
 | 
						|
* mixer
 | 
						|
  - alsa: fix rounding errors
 | 
						|
* database
 | 
						|
  - simple: don't purge mount points on update/rescan
 | 
						|
  - simple: fix "mount" bug caused by bad compiler optimization
 | 
						|
  - simple: fix "lsinfo" into mount points
 | 
						|
  - upnp: work around libupnp 1.6.24 API breakage
 | 
						|
* queue: fix spuriously misplaced prioritized songs
 | 
						|
* save and restore mountpoints within the state file
 | 
						|
* include Windows cross-build script in source tarball
 | 
						|
* fix Windows build failures
 | 
						|
 | 
						|
ver 0.20.12 (2017/11/25)
 | 
						|
* database
 | 
						|
  - upnp: adapt to libupnp 1.8 API changes
 | 
						|
* input
 | 
						|
  - cdio_paranoia, ffmpeg, file, smbclient: reduce lock contention,
 | 
						|
    fixing lots of xrun problems
 | 
						|
  - curl: fix seeking
 | 
						|
* decoder
 | 
						|
  - ffmpeg: fix GCC 8 warning
 | 
						|
  - vorbis: fix Tremor support
 | 
						|
* player
 | 
						|
  - log message when decoder is too slow
 | 
						|
* encoder
 | 
						|
  - vorbis: default to quality 3
 | 
						|
* output
 | 
						|
  - fix hanging playback with soxr resampler
 | 
						|
  - httpd: flush encoder after tag; fixes corrupt Vorbis stream
 | 
						|
 | 
						|
ver 0.20.11 (2017/10/18)
 | 
						|
* storage
 | 
						|
  - curl: support Content-Type application/xml
 | 
						|
* decoder
 | 
						|
  - ffmpeg: more reliable song duration
 | 
						|
  - gme: fix track numbering
 | 
						|
* improve random song order when switching songs manually
 | 
						|
* fix case insensitive search without libicu
 | 
						|
* fix Unicode file names in playlists on Windows
 | 
						|
* fix endless loop when accessing malformed file names in ZIP files
 | 
						|
 | 
						|
ver 0.20.10 (2017/08/24)
 | 
						|
* decoder
 | 
						|
  - ffmpeg: support MusicBrainz ID3v2 tags
 | 
						|
* tags
 | 
						|
  - aiff: fix FORM chunk size endianness (is big-endian)
 | 
						|
* mixer
 | 
						|
  - osx: add a mixer for OSX.
 | 
						|
* fix crash when resuming playback before decoder is ready
 | 
						|
* fix crash on Windows
 | 
						|
 | 
						|
ver 0.20.9 (2017/06/04)
 | 
						|
* decoder
 | 
						|
  - ffmpeg: support *.adx
 | 
						|
* fix byte order detection on FreeBSD/aarch64
 | 
						|
* fix more random crashes when compiled with clang
 | 
						|
 | 
						|
ver 0.20.8 (2017/05/19)
 | 
						|
* output
 | 
						|
  - osx: fix build failure due to missing "noexcept"
 | 
						|
* playlist
 | 
						|
  - m3u: support MIME type `audio/mpegurl`
 | 
						|
* fix build failure with GCC 4.x
 | 
						|
 | 
						|
ver 0.20.7 (2017/05/15)
 | 
						|
* database
 | 
						|
  - simple: fix false positive directory loop detection with NFS
 | 
						|
* enforce a reasonable minimum audio_buffer_size setting
 | 
						|
* cap buffer_before_play at 80% to prevent deadlock
 | 
						|
* fix random crashes when compiled with clang
 | 
						|
 | 
						|
ver 0.20.6 (2017/03/10)
 | 
						|
* input
 | 
						|
  - curl: fix headers after HTTP redirect to Shoutcast server
 | 
						|
* decoder
 | 
						|
  - ffmpeg: re-enable as fallback
 | 
						|
  - mpcdec: fix crash (division by zero) after seeking
 | 
						|
  - sidplay: make compatible with libsidplayfp < 1.8
 | 
						|
* fix stream tags after automatic song change
 | 
						|
* workaround for GCC 4.9.4 / libstdc++ bug (build failure)
 | 
						|
 | 
						|
ver 0.20.5 (2017/02/20)
 | 
						|
* tags
 | 
						|
  - id3: fix memory leak on corrupt ID3 tags
 | 
						|
* decoder
 | 
						|
  - sidplay: don't require libsidutils when building with libsidplayfp
 | 
						|
* output
 | 
						|
  - httpd: fix two buffer overflows in IcyMetaData length calculation
 | 
						|
* mixer
 | 
						|
  - alsa: fix crash bug
 | 
						|
 | 
						|
ver 0.20.4 (2017/02/01)
 | 
						|
* input
 | 
						|
  - nfs: fix freeze after reconnect
 | 
						|
* output
 | 
						|
  - sndio: work around a libroar C++ incompatibility
 | 
						|
* workaround for GCC 4.9 "constexpr" bug
 | 
						|
* fix FreeBSD build failure
 | 
						|
 | 
						|
ver 0.20.3 (2017/01/25)
 | 
						|
* protocol
 | 
						|
  - "playlistadd" creates new playlist if it does not exist, as documented
 | 
						|
* database
 | 
						|
  - proxy: fix error "terminate called after throwing ..."
 | 
						|
  - proxy: make connect errors during startup non-fatal
 | 
						|
* neighbor
 | 
						|
  - upnp: fix premature expiry
 | 
						|
* replay gain: don't reset ReplayGain levels when unpausing playback
 | 
						|
* silence surround channels when converting from stereo
 | 
						|
* use shortcuts such as "dsd64" in log messages
 | 
						|
 | 
						|
ver 0.20.2 (2017/01/15)
 | 
						|
* input
 | 
						|
  - alsa: fix crash bug
 | 
						|
  - alsa: fix buffer overruns
 | 
						|
* decoder
 | 
						|
  - flac: add options "probesize" and "analyzeduration"
 | 
						|
* resampler
 | 
						|
  - libsamplerate: reset state after seeking
 | 
						|
* output
 | 
						|
  - fix static noise after changing to a different audio format
 | 
						|
  - alsa: fix the DSD_U32 sample rate
 | 
						|
  - alsa: fix the DSD_U32 byte order
 | 
						|
  - alsa: support DSD_U16
 | 
						|
  - recorder: fix error "Failed to create : No such file or directory"
 | 
						|
* playlist
 | 
						|
  - cue: fix skipping songs
 | 
						|
 | 
						|
ver 0.20.1 (2017/01/09)
 | 
						|
* input
 | 
						|
  - curl: fix crash bug
 | 
						|
  - curl: fix freeze bug
 | 
						|
* decoder
 | 
						|
  - wavpack: fix crash bug
 | 
						|
* storage
 | 
						|
  - curl: new storage plugin for WebDAV (work in progress)
 | 
						|
* mixer
 | 
						|
  - alsa: normalize displayed volume according to human perception
 | 
						|
* fix crash with volume_normalization enabled
 | 
						|
 | 
						|
ver 0.20 (2017/01/04)
 | 
						|
* protocol
 | 
						|
  - "commands" returns playlist commands only if playlist_directory configured
 | 
						|
  - "search"/"find" have a "window" parameter
 | 
						|
  - report song duration with milliseconds precision
 | 
						|
  - "sticker find" can match sticker values
 | 
						|
  - drop the "file:///" prefix for absolute file paths
 | 
						|
  - add range parameter to command "plchanges" and "plchangesposid"
 | 
						|
  - send verbose error message to client
 | 
						|
* input
 | 
						|
  - curl: fix memory leak
 | 
						|
* tags
 | 
						|
  - ape, ogg: drop support for non-standard tag "album artist"
 | 
						|
    affected filetypes: vorbis, flac, opus & all files with ape2 tags
 | 
						|
    (most importantly some mp3s)
 | 
						|
  - id3: remove the "id3v1_encoding" setting; by definition, all ID3v1 tags
 | 
						|
    are ISO-Latin-1
 | 
						|
  - ape: support APE replay gain on remote files
 | 
						|
  - read ID3 tags from NFS/SMB
 | 
						|
* decoder
 | 
						|
  - improved error logging
 | 
						|
  - report I/O errors to clients
 | 
						|
  - ffmpeg: support ReplayGain and MixRamp
 | 
						|
  - ffmpeg: support stream tags
 | 
						|
  - gme: add option "accuracy"
 | 
						|
  - gme: provide the TRACK tag
 | 
						|
  - gme: faster scanning
 | 
						|
  - mad: reduce memory usage while scanning tags
 | 
						|
  - mpcdec: read the bit rate
 | 
						|
  - pcm: support audio/L16 (RFC 2586) and audio/x-mpd-float
 | 
						|
  - sidplay: faster scanning
 | 
						|
  - wavpack: large file support
 | 
						|
  - wavpack: support DSD (WavPack 5)
 | 
						|
  - wavpack: archive support
 | 
						|
* playlist
 | 
						|
  - cue: don't skip pregap
 | 
						|
  - embcue: fix last track
 | 
						|
  - flac: new plugin which reads the "CUESHEET" metadata block
 | 
						|
* output
 | 
						|
  - alsa: fix multi-channel order
 | 
						|
  - alsa: remove option "use_mmap"
 | 
						|
  - alsa: support DSD_U32
 | 
						|
  - alsa: disable DoP if it fails
 | 
						|
  - jack: reduce CPU usage
 | 
						|
  - pulse: set channel map to WAVE-EX
 | 
						|
  - recorder: record tags
 | 
						|
  - recorder: allow dynamic file names
 | 
						|
  - sndio: new output plugin
 | 
						|
* mixer
 | 
						|
  - null: new plugin
 | 
						|
* resampler
 | 
						|
  - new block "resampler" in configuration file
 | 
						|
    replacing the old "samplerate_converter" setting
 | 
						|
  - soxr: allow multi-threaded resampling
 | 
						|
* player
 | 
						|
  - reset song priority on playback
 | 
						|
  - reduce xruns
 | 
						|
* write database and state file atomically
 | 
						|
* always write UTF-8 to the log file.
 | 
						|
* remove dependency on GLib
 | 
						|
* support libsystemd (instead of the older libsystemd-daemon)
 | 
						|
* database
 | 
						|
  - proxy: add TCP keepalive option
 | 
						|
* update
 | 
						|
  - apply .mpdignore matches to subdirectories
 | 
						|
* switch the code base to C++14
 | 
						|
  - GCC 4.9 or clang 3.4 (or newer) recommended
 | 
						|
 | 
						|
ver 0.19.21 (2016/12/13)
 | 
						|
* decoder
 | 
						|
  - ffmpeg: fix crash bug
 | 
						|
* fix unit test failure after recent "setprio" change
 | 
						|
* systemd: add user unit
 | 
						|
 | 
						|
ver 0.19.20 (2016/12/09)
 | 
						|
* protocol
 | 
						|
  - "setprio" re-enqueues old song if priority has been raised
 | 
						|
* decoder
 | 
						|
  - ffmpeg: ignore empty packets
 | 
						|
  - pcm: fix corruption bug with partial frames (after short read)
 | 
						|
  - sidplay: fix playback speed with libsidplayfp
 | 
						|
* output
 | 
						|
  - winmm: fix 8 bit playback
 | 
						|
* fix gcc 7.0 -Wimplicit-fallthrough
 | 
						|
* systemd: paranoid security settings
 | 
						|
 | 
						|
ver 0.19.19 (2016/08/23)
 | 
						|
* decoder
 | 
						|
  - ffmpeg: bug fix for FFmpeg 3.1 support
 | 
						|
  - wildmidi: support libWildMidi 0.4
 | 
						|
* output
 | 
						|
  - pulse: support 32 bit, 24 bit and floating point playback
 | 
						|
* support non-x86 NetBSD
 | 
						|
* fix clang 3.9 warnings
 | 
						|
 | 
						|
ver 0.19.18 (2016/08/05)
 | 
						|
* decoder
 | 
						|
  - ffmpeg: fix crash with older FFmpeg versions (< 3.0)
 | 
						|
  - ffmpeg: log detailed error message
 | 
						|
  - ffmpeg: support FFmpeg 3.1
 | 
						|
  - sidplay: detect libsidplay2 with pkg-config
 | 
						|
  - sidplay: log detailed error message
 | 
						|
  - sidplay: read the "date" tag
 | 
						|
  - sidplay: allow building with libsidplayfp instead of libsidplay2
 | 
						|
* output
 | 
						|
  - shout: recognize setting "encoder" instead of "encoding"
 | 
						|
* fix memory leak after stream failure
 | 
						|
* fix build failure with Boost 1.61
 | 
						|
* require gcc 4.7 or newer
 | 
						|
 | 
						|
ver 0.19.17 (2016/07/09)
 | 
						|
* decoder
 | 
						|
  - flac: fix assertion failure while seeking
 | 
						|
  - flac: fix stream duration indicator
 | 
						|
  - fix seek problems in several plugins
 | 
						|
* fix spurious seek error "Failed to allocate silence buffer"
 | 
						|
* replay gain: fix "replay_gain_handler mixer" setting
 | 
						|
* DSD: use 0x69 as silence pattern
 | 
						|
* fix use-after-free bug on "close" and "kill"
 | 
						|
 | 
						|
ver 0.19.16 (2016/06/13)
 | 
						|
* faster seeking
 | 
						|
* fix system include path order
 | 
						|
* add missing DocBook file to tarball
 | 
						|
 | 
						|
ver 0.19.15 (2016/04/30)
 | 
						|
* decoder
 | 
						|
  - ffmpeg: support FFmpeg 3.0
 | 
						|
  - ffmpeg: use as fallback instead of "mad" if no plugin matches
 | 
						|
  - opus: support bigger OpusTags packets
 | 
						|
* fix more build failures on non-glibc builds due to constexpr Mutex
 | 
						|
* fix build failure due to missing include
 | 
						|
* fix unit test on Alpha
 | 
						|
 | 
						|
ver 0.19.14 (2016/03/18)
 | 
						|
* decoder
 | 
						|
  - dsdiff: fix off-by-one buffer overflow
 | 
						|
  - opus: limit tag size to 64 kB
 | 
						|
* archive
 | 
						|
  - iso9660: fix buffer overflow
 | 
						|
* fix quadratic runtime bug in the tag pool
 | 
						|
* fix build failures on non-glibc builds due to constexpr Mutex
 | 
						|
 | 
						|
ver 0.19.13 (2016/02/23)
 | 
						|
* tags
 | 
						|
  - aiff, riff: fix ID3 chunk padding
 | 
						|
* decoder
 | 
						|
  - ffmpeg: support the TAK codec
 | 
						|
* fix disappearing duration of remote songs during playback
 | 
						|
* initialize supplementary groups with glibc 2.19+
 | 
						|
 | 
						|
ver 0.19.12 (2015/12/15)
 | 
						|
* fix assertion failure on malformed UTF-8 tag
 | 
						|
* fix build failure on non-Linux systems
 | 
						|
* fix LimitRTTIME in systemd unit file
 | 
						|
 | 
						|
ver 0.19.11 (2015/10/27)
 | 
						|
* tags
 | 
						|
  - ape: fix buffer overflow
 | 
						|
* decoder
 | 
						|
  - ffmpeg: fix crash due to wrong avio_alloc_context() call
 | 
						|
  - gme: don't loop forever, fall back to GME's default play length
 | 
						|
* encoder
 | 
						|
  - flac: fix crash with 32 bit playback
 | 
						|
* mixer
 | 
						|
  - fix mixer lag after enabling/disabling output
 | 
						|
 | 
						|
ver 0.19.10 (2015/06/21)
 | 
						|
* input
 | 
						|
  - curl: fix deadlock on small responses
 | 
						|
  - smbclient: fix DFF playback
 | 
						|
* decoder
 | 
						|
  - ffmpeg: improve seeking accuracy
 | 
						|
  - fix stuck stream tags
 | 
						|
* encoder
 | 
						|
  - opus: fix bogus granulepos
 | 
						|
* output
 | 
						|
  - fix failure to open device right after booting
 | 
						|
* neighbor
 | 
						|
  - nfs: fix deadlock when connecting
 | 
						|
* fix "single" mode breakage due to queue edits
 | 
						|
 | 
						|
ver 0.19.9 (2015/02/06)
 | 
						|
* decoder
 | 
						|
  - dsdiff, dsf: raise ID3 tag limit to 1 MB
 | 
						|
* playlist: fix loading duplicate tag types from state file
 | 
						|
* despotify: remove defunct plugin
 | 
						|
* fix clock integer overflow on OS X
 | 
						|
* fix gcc 5.0 warnings
 | 
						|
* fix build failure with uClibc
 | 
						|
* fix build failure on non-POSIX operating systems
 | 
						|
* fix dependency issue on parallel Android build
 | 
						|
* fix database/state file saving on Windows
 | 
						|
 | 
						|
ver 0.19.8 (2015/01/14)
 | 
						|
* input
 | 
						|
  - curl: fix bug after rewinding from end-of-file
 | 
						|
  - mms: reduce delay at the beginning of playback
 | 
						|
* decoder
 | 
						|
  - dsdiff, dsf: allow ID3 tags larger than 4 kB
 | 
						|
  - ffmpeg: support interleaved floating point
 | 
						|
* fix clang 3.6 warnings
 | 
						|
* fix build failure on NetBSD
 | 
						|
 | 
						|
ver 0.19.7 (2014/12/17)
 | 
						|
* input
 | 
						|
  - nfs: fix crash while canceling a failing file open operation
 | 
						|
  - nfs: fix memory leak on connection failure
 | 
						|
  - nfs: fix reconnect after mount failure
 | 
						|
  - nfs: implement mount timeout (60 seconds)
 | 
						|
* storage
 | 
						|
  - nfs: implement I/O timeout (60 seconds)
 | 
						|
* playlist
 | 
						|
  - embcue: fix filename suffix detection
 | 
						|
  - don't skip non-existent songs in "listplaylist"
 | 
						|
* decoder
 | 
						|
  - ffmpeg: fix time stamp underflow
 | 
						|
* fix memory allocator bug on Windows
 | 
						|
 | 
						|
ver 0.19.6 (2014/12/08)
 | 
						|
* decoder
 | 
						|
  - ffmpeg: support FFmpeg 2.5
 | 
						|
* fix build failure with musl
 | 
						|
* android
 | 
						|
  - update libFLAC to 1.3.1
 | 
						|
  - update FFmpeg to 2.5
 | 
						|
 | 
						|
ver 0.19.5 (2014/11/26)
 | 
						|
* input
 | 
						|
  - nfs: fix crash on connection failure
 | 
						|
* archive
 | 
						|
  - zzip: fix crash after seeking
 | 
						|
* decoder
 | 
						|
  - dsdiff, dsf, opus: fix deadlock while seeking
 | 
						|
  - mp4v2: remove because of incompatible license
 | 
						|
 | 
						|
ver 0.19.4 (2014/11/18)
 | 
						|
* protocol
 | 
						|
  - workaround for buggy clients that send "add /"
 | 
						|
* decoder
 | 
						|
  - ffmpeg: support opus
 | 
						|
  - opus: add MIME types audio/ogg and application/ogg
 | 
						|
* fix crash on failed filename charset conversion
 | 
						|
* fix local socket detection from uid=0 (root)
 | 
						|
 | 
						|
ver 0.19.3 (2014/11/11)
 | 
						|
* protocol
 | 
						|
  - fix "(null)" result string to "list" when AlbumArtist is disabled
 | 
						|
* database
 | 
						|
  - upnp: fix breakage due to malformed URIs
 | 
						|
* input
 | 
						|
  - curl: another fix for redirected streams
 | 
						|
* decoder
 | 
						|
  - audiofile: fix crash while playing streams
 | 
						|
  - audiofile: fix bit rate calculation
 | 
						|
  - ffmpeg: support opus
 | 
						|
  - opus: fix bogus duration on streams
 | 
						|
  - opus: support chained streams
 | 
						|
  - opus: improved error logging
 | 
						|
* fix distorted audio with soxr resampler
 | 
						|
* fix build failure on Mac OS X with non-Apple compilers
 | 
						|
 | 
						|
ver 0.19.2 (2014/11/02)
 | 
						|
* input
 | 
						|
  - curl: fix redirected streams
 | 
						|
* playlist
 | 
						|
  - don't allow empty playlist name
 | 
						|
  - m3u: don't ignore unterminated last line
 | 
						|
  - m3u: recognize the file suffix ".m3u8"
 | 
						|
* decoder
 | 
						|
  - ignore URI query string for plugin detection
 | 
						|
  - faad: remove workaround for ancient libfaad2 ABI bug
 | 
						|
  - ffmpeg: recognize MIME type audio/aacp
 | 
						|
  - mad: fix negative replay gain values
 | 
						|
* output
 | 
						|
  - fix memory leak after filter initialization error
 | 
						|
  - fall back to PCM if given DSD sample rate is not supported
 | 
						|
* fix assertion failure on unsupported PCM conversion
 | 
						|
* auto-disable plugins that require GLib when --disable-glib is used
 | 
						|
 | 
						|
ver 0.19.1 (2014/10/19)
 | 
						|
* input
 | 
						|
  - mms: fix deadlock bug
 | 
						|
* playlist
 | 
						|
  - extm3u: fix Extended M3U detection
 | 
						|
  - m3u, extm3u, cue: fix truncated lines
 | 
						|
* fix build failure on Mac OS X
 | 
						|
* add missing file systemd/mpd.socket to tarball
 | 
						|
 | 
						|
ver 0.19 (2014/10/10)
 | 
						|
* protocol
 | 
						|
  - new commands "addtagid", "cleartagid", "listfiles", "listmounts",
 | 
						|
    "listneighbors", "mount", "rangeid", "unmount"
 | 
						|
  - "lsinfo" and "readcomments" allowed for remote files
 | 
						|
  - "listneighbors" lists file servers on the local network
 | 
						|
  - "playlistadd" supports file:///
 | 
						|
  - "idle" with unrecognized event name fails
 | 
						|
  - "list" on album artist falls back to the artist tag
 | 
						|
  - "list" and "count" allow grouping
 | 
						|
  - new "search"/"find" filter "modified-since"
 | 
						|
  - "seek*" allows fractional position
 | 
						|
  - close connection after syntax error
 | 
						|
* database
 | 
						|
  - proxy: forward "idle" events
 | 
						|
  - proxy: forward the "update" command
 | 
						|
  - proxy: copy "Last-Modified" from remote directories
 | 
						|
  - simple: compress the database file using gzip
 | 
						|
  - upnp: new plugin
 | 
						|
  - cancel the update on shutdown
 | 
						|
* storage
 | 
						|
  - music_directory can point to a remote file server
 | 
						|
  - nfs: new plugin
 | 
						|
  - smbclient: new plugin
 | 
						|
* playlist
 | 
						|
  - cue: fix bogus duration of the last track
 | 
						|
  - cue: restore CUE tracks from state file
 | 
						|
  - soundcloud: use https instead of http
 | 
						|
  - soundcloud: add default API key
 | 
						|
* archive
 | 
						|
  - read tags from songs in an archive
 | 
						|
* input
 | 
						|
  - alsa: new input plugin
 | 
						|
  - curl: options "verify_peer" and "verify_host"
 | 
						|
  - ffmpeg: update offset after seeking
 | 
						|
  - ffmpeg: improved error messages
 | 
						|
  - mms: non-blocking I/O
 | 
						|
  - nfs: new input plugin
 | 
						|
  - smbclient: new input plugin
 | 
						|
* filter
 | 
						|
  - volume: improved software volume dithering
 | 
						|
* decoder:
 | 
						|
  - vorbis, flac, opus: honor DESCRIPTION= tag in Xiph-based files as a comment to the song
 | 
						|
  - audiofile: support scanning remote files
 | 
						|
  - audiofile: log libaudiofile errors
 | 
						|
  - dsdiff, dsf: report bit rate
 | 
						|
  - dsdiff, dsf: implement seeking
 | 
						|
  - dsf: support DSD512
 | 
						|
  - dsf: support multi-channel files
 | 
						|
  - dsf: fix big-endian bugs
 | 
						|
  - dsf: fix noise at end of malformed file
 | 
						|
  - mpg123: support ID3v2, ReplayGain and MixRamp
 | 
						|
  - sndfile: support scanning remote files
 | 
						|
  - sndfile: support tags "comment", "album", "track", "genre"
 | 
						|
  - sndfile: native floating point playback
 | 
						|
  - sndfile: optimized 16 bit playback
 | 
						|
  - mp4v2: support playback of MP4 files.
 | 
						|
* encoder:
 | 
						|
  - shine: new encoder plugin
 | 
						|
* output
 | 
						|
  - alsa: support native DSD playback
 | 
						|
  - alsa: rename "DSD over USB" to "DoP"
 | 
						|
  - osx: fix hang after (un)plugging headphones
 | 
						|
* threads:
 | 
						|
  - the update thread runs at "idle" priority
 | 
						|
  - the output thread runs at "real-time" priority
 | 
						|
  - increase kernel timer slack on Linux
 | 
						|
  - name each thread (for debugging)
 | 
						|
* configuration
 | 
						|
  - allow playlist directory without music directory
 | 
						|
  - use XDG to auto-detect "music_directory" and "db_file"
 | 
						|
* add tags "AlbumSort", "MUSICBRAINZ_RELEASETRACKID"
 | 
						|
* disable global Latin-1 fallback for tag values
 | 
						|
* new resampler option using libsoxr
 | 
						|
* ARM NEON optimizations
 | 
						|
* install systemd unit for socket activation
 | 
						|
* Android port
 | 
						|
 | 
						|
ver 0.18.23 (2015/02/06)
 | 
						|
* despotify: remove defunct plugin
 | 
						|
* fix clock integer overflow on OS X
 | 
						|
* fix gcc 5.0 warnings
 | 
						|
 | 
						|
ver 0.18.22 (2015/01/14)
 | 
						|
* fix clang 3.6 warnings
 | 
						|
 | 
						|
ver 0.18.21 (2014/12/17)
 | 
						|
* playlist
 | 
						|
  - embcue: fix filename suffix detection
 | 
						|
* decoder
 | 
						|
  - ffmpeg: fix time stamp underflow
 | 
						|
 | 
						|
ver 0.18.20 (2014/12/08)
 | 
						|
* decoder
 | 
						|
  - ffmpeg: support FFmpeg 2.5
 | 
						|
* fix build failure with musl
 | 
						|
 | 
						|
ver 0.18.19 (2014/11/26)
 | 
						|
* archive
 | 
						|
  - zzip: fix crash after seeking
 | 
						|
 | 
						|
ver 0.18.18 (2014/11/18)
 | 
						|
* decoder
 | 
						|
  - ffmpeg: support opus
 | 
						|
* fix crash on failed filename charset conversion
 | 
						|
* fix local socket detection from uid=0 (root)
 | 
						|
 | 
						|
ver 0.18.17 (2014/11/02)
 | 
						|
* playlist
 | 
						|
  - don't allow empty playlist name
 | 
						|
  - m3u: recognize the file suffix ".m3u8"
 | 
						|
* decoder
 | 
						|
  - ignore URI query string for plugin detection
 | 
						|
  - faad: remove workaround for ancient libfaad2 ABI bug
 | 
						|
  - ffmpeg: recognize MIME type audio/aacp
 | 
						|
 | 
						|
ver 0.18.16 (2014/09/26)
 | 
						|
* fix DSD breakage due to typo in configure.ac
 | 
						|
 | 
						|
ver 0.18.15 (2014/09/26)
 | 
						|
* command
 | 
						|
  - list: reset used size after the list has been processed
 | 
						|
* fix MixRamp
 | 
						|
* work around build failure on NetBSD
 | 
						|
 | 
						|
ver 0.18.14 (2014/09/11)
 | 
						|
* protocol
 | 
						|
  - fix range parser bug on certain 32 bit architectures
 | 
						|
* decoder
 | 
						|
  - audiofile: fix crash after seeking
 | 
						|
  - ffmpeg: fix crash with ffmpeg/libav version 11
 | 
						|
  - fix assertion failure after seeking
 | 
						|
 | 
						|
ver 0.18.13 (2014/08/31)
 | 
						|
* protocol
 | 
						|
  - don't change song on "seekcur" in random mode
 | 
						|
 | 
						|
* decoder
 | 
						|
  - dsdiff, dsf: fix endless loop on malformed file
 | 
						|
  - ffmpeg: support ffmpeg/libav version 11
 | 
						|
  - gme: fix song duration
 | 
						|
* output
 | 
						|
  - alsa: fix endless loop at end of file in dsd_usb mode
 | 
						|
* fix state file saver
 | 
						|
* fix build failure on Darwin
 | 
						|
 | 
						|
ver 0.18.12 (2014/07/30)
 | 
						|
* database
 | 
						|
  - proxy: fix build failure with libmpdclient 2.2
 | 
						|
  - proxy: fix add/search and other commands with libmpdclient < 2.9
 | 
						|
* decoder
 | 
						|
  - audiofile: improve responsiveness
 | 
						|
  - audiofile: fix WAV stream playback
 | 
						|
  - dsdiff, dsf: fix stream playback
 | 
						|
  - dsdiff: fix metadata parser bug (uninitialized variables)
 | 
						|
  - faad: estimate song duration for remote files
 | 
						|
  - sndfile: improve responsiveness
 | 
						|
* randomize next song when enabling "random" mode while not playing
 | 
						|
* randomize next song when adding to single-song queue
 | 
						|
 | 
						|
ver 0.18.11 (2014/05/12)
 | 
						|
* decoder
 | 
						|
  - opus: fix missing song length on high-latency files
 | 
						|
* fix race condition when using GLib event loop (non-Linux)
 | 
						|
 | 
						|
ver 0.18.10 (2014/04/10)
 | 
						|
* decoder
 | 
						|
  - ffmpeg: fix seeking bug
 | 
						|
  - ffmpeg: handle unknown stream start time
 | 
						|
  - gme: fix memory leak
 | 
						|
  - sndfile: work around libsndfile bug on partial read
 | 
						|
* don't interrupt playback when current song gets deleted
 | 
						|
 | 
						|
ver 0.18.9 (2014/03/02)
 | 
						|
* protocol
 | 
						|
  - "findadd" requires the "add" permission
 | 
						|
* output
 | 
						|
  - alsa: improved workaround for noise after manual song change
 | 
						|
* decoder
 | 
						|
  - vorbis: fix linker failure when libvorbis/libogg are static
 | 
						|
* encoder
 | 
						|
  - vorbis: fix another linker failure
 | 
						|
* output
 | 
						|
  - pipe: fix hanging child process due to blocked signals
 | 
						|
* fix build failure due to missing signal.h include
 | 
						|
 | 
						|
ver 0.18.8 (2014/02/07)
 | 
						|
* decoder
 | 
						|
  - ffmpeg: support libav v10_alpha1
 | 
						|
* encoder
 | 
						|
  - vorbis: fix linker failure
 | 
						|
* output
 | 
						|
  - roar: documentation
 | 
						|
* more robust Icy-Metadata parser
 | 
						|
* fix Solaris build failure
 | 
						|
 | 
						|
ver 0.18.7 (2014/01/13)
 | 
						|
* playlist
 | 
						|
  - pls: fix crash after parser error
 | 
						|
  - soundcloud: fix build failure with libyajl 2.0.1
 | 
						|
* decoder
 | 
						|
  - faad: fix memory leak
 | 
						|
  - mpcdec: reject libmpcdec SV7 in configure script
 | 
						|
* daemon: don't initialize supplementary groups when already running
 | 
						|
  as the configured user
 | 
						|
 | 
						|
ver 0.18.6 (2013/12/24)
 | 
						|
* input
 | 
						|
  - cdio_paranoia: support libcdio-paranoia 0.90
 | 
						|
* tags
 | 
						|
  - riff: recognize upper-case "ID3" chunk name
 | 
						|
* decoder
 | 
						|
  - ffmpeg: use relative timestamps
 | 
						|
* output
 | 
						|
  - openal: fix build failure on Mac OS X
 | 
						|
  - osx: fix build failure
 | 
						|
* mixer
 | 
						|
  - alsa: fix build failure with uClibc
 | 
						|
* fix replay gain during cross-fade
 | 
						|
* accept files without metadata
 | 
						|
 | 
						|
ver 0.18.5 (2013/11/23)
 | 
						|
* configuration
 | 
						|
  - fix crash when db_file is configured without music_directory
 | 
						|
  - fix crash on "stats" without db_file/music_directory
 | 
						|
* database
 | 
						|
  - proxy: auto-reload statistics
 | 
						|
  - proxy: provide "db_update" in "stats" response
 | 
						|
* input
 | 
						|
  - curl: work around stream resume bug (fixed in libcurl 7.32.0)
 | 
						|
* decoder
 | 
						|
  - fluidsynth: auto-detect by default
 | 
						|
* clip 24 bit data from libsamplerate
 | 
						|
* fix ia64, mipsel and other little-endian architectures
 | 
						|
* fix build failures due to missing includes
 | 
						|
* fix build failure with static libmpdclient
 | 
						|
 | 
						|
ver 0.18.4 (2013/11/13)
 | 
						|
* decoder
 | 
						|
  - dsdiff: fix byte order bug
 | 
						|
* fix build failures due to missing includes
 | 
						|
* libc++ compatibility
 | 
						|
 | 
						|
ver 0.18.3 (2013/11/08)
 | 
						|
* fix stuck MPD after song change (0.18.2 regression)
 | 
						|
 | 
						|
ver 0.18.2 (2013/11/07)
 | 
						|
* protocol:
 | 
						|
  - "close" flushes the output buffer
 | 
						|
* input:
 | 
						|
  - cdio_paranoia: add setting "default_byte_order"
 | 
						|
  - curl: fix bug with redirected streams
 | 
						|
* playlist:
 | 
						|
  - pls: fix reversed song order
 | 
						|
* decoder:
 | 
						|
  - audiofile: require libaudiofile 0.3 due to API breakage
 | 
						|
  - dsf: enable DSD128
 | 
						|
* enable buffering when starting playback (regression fix)
 | 
						|
* fix build failures due to missing includes
 | 
						|
* fix big-endian support
 | 
						|
 | 
						|
ver 0.18.1 (2013/11/04)
 | 
						|
* protocol:
 | 
						|
  - always ignore whitespace at the end of the line
 | 
						|
* networking:
 | 
						|
  - log UNIX domain path names instead of "localhost"
 | 
						|
  - open listener sockets in the order they were configured
 | 
						|
  - don't abort if IPv6 is not available
 | 
						|
* output:
 | 
						|
  - alsa: avoid endless loop in Raspberry Pi workaround
 | 
						|
* filter:
 | 
						|
  - autoconvert: fix "volume_normalization" with mp3 files
 | 
						|
* add missing files to source tarball
 | 
						|
 | 
						|
ver 0.18 (2013/10/31)
 | 
						|
* configuration:
 | 
						|
  - allow tilde paths for socket
 | 
						|
  - default filesystem charset is UTF-8 instead of ISO-8859-1
 | 
						|
  - increase default buffer size to 4 MB
 | 
						|
* protocol:
 | 
						|
  - new command "readcomments" lists arbitrary file tags
 | 
						|
  - new command "toggleoutput"
 | 
						|
  - "find"/"search" with "any" does not match file name
 | 
						|
  - "search" and "find" with base URI (keyword "base")
 | 
						|
  - search for album artist falls back to the artist tag
 | 
						|
  - re-add the "volume" command
 | 
						|
* input:
 | 
						|
  - curl: enable https
 | 
						|
  - soup: plugin removed
 | 
						|
* playlist:
 | 
						|
  - lastfm: remove defunct Last.fm support
 | 
						|
* decoder:
 | 
						|
  - adplug: new decoder plugin using libadplug
 | 
						|
  - dsf: don't play junk at the end of the "data" chunk
 | 
						|
  - ffmpeg: drop support for pre-0.8 ffmpeg
 | 
						|
  - flac: require libFLAC 1.2 or newer
 | 
						|
  - flac: support FLAC files inside archives
 | 
						|
  - opus: new decoder plugin for the Opus codec
 | 
						|
  - vorbis: skip 16 bit quantisation, provide float samples
 | 
						|
  - mikmod: add "loop" configuration parameter
 | 
						|
  - modplug: add "loop_count" configuration parameter
 | 
						|
  - mp4ff: obsolete plugin removed
 | 
						|
* encoder:
 | 
						|
  - opus: new encoder plugin for the Opus codec
 | 
						|
  - vorbis: accept floating point input samples
 | 
						|
* output:
 | 
						|
  - new option "tags" may be used to disable sending tags to output
 | 
						|
  - alsa: workaround for noise after manual song change
 | 
						|
  - ffado: remove broken plugin
 | 
						|
  - httpd: support HEAD requests
 | 
						|
  - mvp: remove obsolete plugin
 | 
						|
  - osx: disabled by default because it's unmaintained and unsupported
 | 
						|
* improved decoder/output error reporting
 | 
						|
* eliminate timer wakeup on idle MPD
 | 
						|
* fix unresponsive MPD while waiting for stream
 | 
						|
* port of the source code to C++11
 | 
						|
 | 
						|
ver 0.17.6 (2013/10/14)
 | 
						|
* mixer:
 | 
						|
  - alsa: fix busy loop when USB sound device gets unplugged
 | 
						|
* decoder:
 | 
						|
  - modplug: fix build with Debian package 1:0.8.8.4-4
 | 
						|
* stored playlists:
 | 
						|
  - fix loading playlists with references to local files
 | 
						|
  - obey filesystem_charset for URLs
 | 
						|
 | 
						|
ver 0.17.5 (2013/08/04)
 | 
						|
* protocol:
 | 
						|
  - fix "playlistadd" with URI
 | 
						|
  - fix "move" relative to current when there is no current song
 | 
						|
* decoder:
 | 
						|
  - ffmpeg: support "application/flv"
 | 
						|
  - mikmod: adapt to libmikmod 3.2
 | 
						|
* configure.ac:
 | 
						|
  - detect system "ar"
 | 
						|
 | 
						|
ver 0.17.4 (2013/04/08)
 | 
						|
* protocol:
 | 
						|
  - allow to omit END in ranges (START:END)
 | 
						|
  - don't emit IDLE_PLAYER before audio format is known
 | 
						|
* decoder:
 | 
						|
  - ffmpeg: support float planar audio (ffmpeg 1.1)
 | 
						|
  - ffmpeg: fix AVFrame allocation
 | 
						|
* player:
 | 
						|
  - implement missing "idle" events on output errors
 | 
						|
* clock: fix build failure
 | 
						|
 | 
						|
ver 0.17.3 (2013/01/06)
 | 
						|
* output:
 | 
						|
  - osx: fix pops during playback
 | 
						|
  - recorder: fix I/O error check
 | 
						|
  - shout: fix memory leak in error handler
 | 
						|
  - recorder, shout: support Ogg packets that span more than one page
 | 
						|
* decoder:
 | 
						|
  - ffmpeg: ignore negative time stamps
 | 
						|
  - ffmpeg: support planar audio
 | 
						|
* playlist:
 | 
						|
  - cue: fix memory leak
 | 
						|
  - cue: fix CUE files with only one track
 | 
						|
 | 
						|
ver 0.17.2 (2012/09/30)
 | 
						|
* protocol:
 | 
						|
  - fix crash in local file check
 | 
						|
* decoder:
 | 
						|
  - fluidsynth: remove throttle (requires libfluidsynth 1.1)
 | 
						|
  - fluidsynth: stop playback at end of file
 | 
						|
  - fluidsynth: check MIDI file format while scanning
 | 
						|
  - fluidsynth: add sample rate setting
 | 
						|
  - wavpack: support all APEv2 tags
 | 
						|
* output:
 | 
						|
  - httpd: use monotonic clock, avoid hiccups after system clock adjustment
 | 
						|
  - httpd: fix throttling bug after resuming playback
 | 
						|
* playlist:
 | 
						|
  - cue: map "PERFORMER" to "artist" or "album artist"
 | 
						|
* mapper: fix non-UTF8 music directory name
 | 
						|
* mapper: fix potential crash in file permission check
 | 
						|
* playlist: fix use-after-free bug
 | 
						|
* playlist: fix memory leak
 | 
						|
* state_file: save song priorities
 | 
						|
* player: disable cross-fading in "single" mode
 | 
						|
* update: fix unsafe readlink() usage
 | 
						|
* configure.ac:
 | 
						|
  - don't auto-detect the vorbis encoder when Tremor is enabled
 | 
						|
 | 
						|
ver 0.17.1 (2012/07/31)
 | 
						|
* protocol:
 | 
						|
  - require appropriate permissions for searchadd{,pl}
 | 
						|
* tags:
 | 
						|
  - aiff: support the AIFC format
 | 
						|
  - ape: check for ID3 if no usable APE tag was found
 | 
						|
* playlist:
 | 
						|
  - cue: support file types "MP3", "AIFF"
 | 
						|
* output:
 | 
						|
  - fix noisy playback with conversion and software volume
 | 
						|
 | 
						|
ver 0.17 (2012/06/27)
 | 
						|
* protocol:
 | 
						|
  - support client-to-client communication
 | 
						|
  - "update" and "rescan" need only "CONTROL" permission
 | 
						|
  - new command "seekcur" for simpler seeking within current song
 | 
						|
  - new command "config" dumps location of music directory
 | 
						|
  - add range parameter to command "load"
 | 
						|
  - print extra "playlist" object for embedded CUE sheets
 | 
						|
  - new commands "searchadd", "searchaddpl"
 | 
						|
* input:
 | 
						|
  - cdio_paranoia: new input plugin to play audio CDs
 | 
						|
  - curl: enable CURLOPT_NETRC
 | 
						|
  - curl: non-blocking I/O
 | 
						|
  - soup: new input plugin based on libsoup
 | 
						|
* tags:
 | 
						|
  - RVA2: support separate album/track replay gain
 | 
						|
* decoder:
 | 
						|
  - mpg123: implement seeking
 | 
						|
  - ffmpeg: drop support for pre-0.5 ffmpeg
 | 
						|
  - ffmpeg: support WebM
 | 
						|
  - oggflac: delete this obsolete plugin
 | 
						|
  - dsdiff: new decoder plugin
 | 
						|
* output:
 | 
						|
  - alsa: support DSD-over-USB (dCS suggested standard)
 | 
						|
  - httpd: support for streaming to a DLNA client
 | 
						|
  - openal: improve buffer cancellation
 | 
						|
  - osx: allow user to specify other audio devices
 | 
						|
  - osx: implement 32 bit playback
 | 
						|
  - shout: add possibility to set url
 | 
						|
  - roar: new output plugin for RoarAudio
 | 
						|
  - winmm: fail if wrong device specified instead of using default device
 | 
						|
* mixer:
 | 
						|
  - alsa: listen for external volume changes
 | 
						|
* playlist:
 | 
						|
  - allow references to songs outside the music directory
 | 
						|
  - new CUE parser, without libcue
 | 
						|
  - soundcloud: new plugin for accessing soundcloud.com
 | 
						|
* state_file: add option "restore_paused"
 | 
						|
* cue: show CUE track numbers
 | 
						|
* allow port specification in "bind_to_address" settings
 | 
						|
* support floating point samples
 | 
						|
* systemd socket activation
 | 
						|
* improve --version output
 | 
						|
* WIN32: fix renaming of stored playlists with non-ASCII names
 | 
						|
 | 
						|
 | 
						|
ver 0.16.8 (2012/04/04)
 | 
						|
* fix for libsamplerate assertion failure
 | 
						|
* decoder:
 | 
						|
  - vorbis (and others): fix seeking at startup
 | 
						|
  - ffmpeg: read the "year" tag
 | 
						|
* encoder:
 | 
						|
  - vorbis: generate end-of-stream packet before tag
 | 
						|
  - vorbis: generate end-of-stream packet when playback ends
 | 
						|
* output:
 | 
						|
  - jack: check for connection failure before starting playback
 | 
						|
  - jack: workaround for libjack1 crash bug
 | 
						|
  - osx: fix stuttering due to buffering bug
 | 
						|
* fix endless loop in text file reader
 | 
						|
* update: skip symlinks in path that is to be updated
 | 
						|
 | 
						|
 | 
						|
ver 0.16.7 (2012/02/04)
 | 
						|
* input:
 | 
						|
  - ffmpeg: support libavformat 0.7
 | 
						|
* decoder:
 | 
						|
  - ffmpeg: support libavformat 0.8, libavcodec 0.9
 | 
						|
  - ffmpeg: support all MPD tags
 | 
						|
* output:
 | 
						|
  - httpd: fix excessive buffering
 | 
						|
  - openal: force 16 bit playback, as 8 bit doesn't work
 | 
						|
  - osx: remove sleep call from render callback
 | 
						|
  - osx: clear render buffer when there's not enough data
 | 
						|
* fix moving after current song
 | 
						|
 | 
						|
 | 
						|
ver 0.16.6 (2011/12/01)
 | 
						|
* decoder:
 | 
						|
  - fix assertion failure when resuming streams
 | 
						|
  - ffmpeg: work around bogus channel count
 | 
						|
* encoder:
 | 
						|
  - flac, null, wave: fix buffer corruption bug
 | 
						|
  - wave: support packed 24 bit samples
 | 
						|
* mapper: fix the bogus "not a directory" error message
 | 
						|
* mapper: check "x" and "r" permissions on music directory
 | 
						|
* log: print reason for failure
 | 
						|
* event_pipe: fix WIN32 regression
 | 
						|
* define WINVER in ./configure
 | 
						|
* WIN32: autodetect filesystem encoding
 | 
						|
 | 
						|
 | 
						|
ver 0.16.5 (2011/10/09)
 | 
						|
* configure.ac
 | 
						|
  - disable assertions in the non-debugging build
 | 
						|
  - show solaris plugin result correctly
 | 
						|
  - add option --enable-solaris-output
 | 
						|
* pcm_format: fix 32-to-24 bit conversion (the "silence" bug)
 | 
						|
* input:
 | 
						|
  - rewind: reduce heap usage
 | 
						|
* decoder:
 | 
						|
  - ffmpeg: higher precision timestamps
 | 
						|
  - ffmpeg: don't require key frame for seeking
 | 
						|
  - fix CUE track seeking
 | 
						|
* output:
 | 
						|
  - openal: auto-fallback to mono if channel count is unsupported
 | 
						|
* player:
 | 
						|
  - make seeking to CUE track more reliable
 | 
						|
  - the "seek" command works when MPD is stopped
 | 
						|
  - restore song position from state file (bug fix)
 | 
						|
  - fix crash that sometimes occurred when audio device fails on startup
 | 
						|
  - fix absolute path support in playlists
 | 
						|
* WIN32: close sockets properly
 | 
						|
* install systemd service file if systemd is available
 | 
						|
 | 
						|
 | 
						|
ver 0.16.4 (2011/09/01)
 | 
						|
* don't abort configure when avahi is not found
 | 
						|
* auto-detect libmad without pkg-config
 | 
						|
* fix memory leaks
 | 
						|
* don't resume playback when seeking to another song while paused
 | 
						|
* apply follow_inside_symlinks to absolute symlinks
 | 
						|
* fix playback discontinuation after seeking
 | 
						|
* input:
 | 
						|
  - curl: limit the receive buffer size
 | 
						|
  - curl: implement a hard-coded timeout of 10 seconds
 | 
						|
* decoder:
 | 
						|
  - ffmpeg: workaround for semantic API change in recent ffmpeg versions
 | 
						|
  - flac: validate the sample rate when scanning the tag
 | 
						|
  - wavpack: obey all decoder commands, stop at CUE track border
 | 
						|
* encoder:
 | 
						|
  - vorbis: don't send end-of-stream on flush
 | 
						|
* output:
 | 
						|
  - alsa: fix SIGFPE when alsa announces a period size of 0
 | 
						|
  - httpd: don't warn on client disconnect
 | 
						|
  - osx: don't drain the buffer when closing
 | 
						|
  - pulse: fix deadlock when resuming the stream
 | 
						|
  - pulse: fix deadlock when the stream was suspended
 | 
						|
 | 
						|
 | 
						|
ver 0.16.3 (2011/06/04)
 | 
						|
* fix assertion failure in audio format mask parser
 | 
						|
* fix NULL pointer dereference in playlist parser
 | 
						|
* fix playlist files in base music directory
 | 
						|
* database: allow directories with just playlists
 | 
						|
* decoder:
 | 
						|
  - ffmpeg: support libavcodec 0.7
 | 
						|
 | 
						|
 | 
						|
ver 0.16.2 (2011/03/18)
 | 
						|
* configure.ac:
 | 
						|
  - fix bashism in tremor test
 | 
						|
* decoder:
 | 
						|
  - tremor: fix configure test
 | 
						|
  - gme: detect end of song
 | 
						|
* encoder:
 | 
						|
  - vorbis: reset the Ogg stream after flush
 | 
						|
* output:
 | 
						|
  - httpd: fix uninitialized variable
 | 
						|
  - httpd: include sys/socket.h
 | 
						|
  - oss: AFMT_S24_PACKED is little-endian
 | 
						|
  - oss: disable 24 bit playback on FreeBSD
 | 
						|
 | 
						|
 | 
						|
ver 0.16.1 (2011/01/09)
 | 
						|
* audio_check: fix parameter in prototype
 | 
						|
* add void casts to suppress "result unused" warnings (clang)
 | 
						|
* input:
 | 
						|
  - ffado: disable by default
 | 
						|
* decoder:
 | 
						|
  - mad: work around build failure on Solaris
 | 
						|
  - resolve modplug vs. libsndfile cflags/headers conflict
 | 
						|
* output:
 | 
						|
  - solaris: add missing parameter to open_cloexec() cal
 | 
						|
  - osx: fix up audio format first, then apply it to device
 | 
						|
* player_thread: discard empty chunks while cross-fading
 | 
						|
* player_thread: fix assertion failure due to early seek
 | 
						|
* output_thread: fix double lock
 | 
						|
 | 
						|
 | 
						|
ver 0.16 (2010/12/11)
 | 
						|
* protocol:
 | 
						|
  - send song modification time to client
 | 
						|
  - added "update" idle event
 | 
						|
  - removed the deprecated "volume" command
 | 
						|
  - added the "findadd" command
 | 
						|
  - range support for "delete"
 | 
						|
  - "previous" really plays the previous song
 | 
						|
  - "addid" with negative position is deprecated
 | 
						|
  - "load" supports remote playlists (extm3u, pls, asx, xspf, lastfm://)
 | 
						|
  - allow changing replay gain mode on-the-fly
 | 
						|
  - omitting the range end is possible
 | 
						|
  - "update" checks if the path is malformed
 | 
						|
* archive:
 | 
						|
  - iso: renamed plugin to "iso9660"
 | 
						|
  - zip: renamed plugin to "zzip"
 | 
						|
* input:
 | 
						|
  - lastfm: obsolete plugin removed
 | 
						|
  - ffmpeg: new input plugin using libavformat's "avio" library
 | 
						|
* tags:
 | 
						|
  - added tags "ArtistSort", "AlbumArtistSort"
 | 
						|
  - id3: revised "performer" tag support
 | 
						|
  - id3: support multiple values
 | 
						|
  - ape: MusicBrainz tags
 | 
						|
  - ape: support multiple values
 | 
						|
* decoders:
 | 
						|
  - don't try a plugin twice (MIME type & suffix)
 | 
						|
  - don't fall back to "mad" unless no plugin matches
 | 
						|
  - ffmpeg: support multiple tags
 | 
						|
  - ffmpeg: convert metadata to generic format
 | 
						|
  - ffmpeg: implement the libavutil log callback
 | 
						|
  - sndfile: new decoder plugin based on libsndfile
 | 
						|
  - flac: moved CUE sheet support to a playlist plugin
 | 
						|
  - flac: support streams without STREAMINFO block
 | 
						|
  - mikmod: sample rate is configurable
 | 
						|
  - mpg123: new decoder plugin based on libmpg123
 | 
						|
  - sidplay: support sub-tunes
 | 
						|
  - sidplay: implemented songlength database
 | 
						|
  - sidplay: support seeking
 | 
						|
  - sidplay: play monaural SID tunes in mono
 | 
						|
  - sidplay: play mus, str, prg, x00 files
 | 
						|
  - wavpack: activate 32 bit support
 | 
						|
  - wavpack: allow more than 2 channels
 | 
						|
  - mp4ff: rename plugin "mp4" to "mp4ff"
 | 
						|
* encoders:
 | 
						|
  - twolame: new encoder plugin based on libtwolame
 | 
						|
  - flac: new encoder plugin based on libFLAC
 | 
						|
  - wave: new encoder plugin for PCM WAV format
 | 
						|
* output:
 | 
						|
  - recorder: new output plugin for recording radio streams
 | 
						|
  - alsa: don't recover on CANCEL
 | 
						|
  - alsa: fill period buffer with silence before draining
 | 
						|
  - openal: new output plugin
 | 
						|
  - pulse: announce "media.role=music"
 | 
						|
  - pulse: renamed context to "Music Player Daemon"
 | 
						|
  - pulse: connect to server on MPD startup, implement pause
 | 
						|
  - jack: require libjack 0.100
 | 
						|
  - jack: don't disconnect during pause
 | 
						|
  - jack: connect to server on MPD startup
 | 
						|
  - jack: added options "client_name", "server_name"
 | 
						|
  - jack: clear ring buffers before activating
 | 
						|
  - jack: renamed option "ports" to "destination_ports"
 | 
						|
  - jack: support more than two audio channels
 | 
						|
  - httpd: bind port when output is enabled
 | 
						|
  - httpd: added name/genre/website configuration
 | 
						|
  - httpd: implement "pause"
 | 
						|
  - httpd: bind_to_address support (including IPv6)
 | 
						|
  - oss: 24 bit support via OSS4
 | 
						|
  - win32: new output plugin for Windows Wave
 | 
						|
  - shout, httpd: more responsive to control commands
 | 
						|
  - wildcards allowed in audio_format configuration
 | 
						|
  - consistently lock audio output objects
 | 
						|
* player:
 | 
						|
  - drain audio outputs at the end of the playlist
 | 
						|
* mixers:
 | 
						|
  - removed support for legacy mixer configuration
 | 
						|
  - reimplemented software volume as mixer+filter plugin
 | 
						|
  - per-device software/hardware mixer setting
 | 
						|
* commands:
 | 
						|
  - added new "status" line with more precise "elapsed time"
 | 
						|
* update:
 | 
						|
  - automatically update the database with Linux inotify
 | 
						|
  - support .mpdignore files in the music directory
 | 
						|
  - sort songs by album name first, then disc/track number
 | 
						|
  - rescan after metadata_to_use change
 | 
						|
* normalize: upgraded to AudioCompress 2.0
 | 
						|
  - automatically convert to 16 bit samples
 | 
						|
* replay gain:
 | 
						|
  - reimplemented as a filter plugin
 | 
						|
  - fall back to track gain if album gain is unavailable
 | 
						|
  - optionally use hardware mixer to apply replay gain
 | 
						|
  - added mode "auto"
 | 
						|
  - parse replay gain from APE tags
 | 
						|
* log unused/unknown block parameters
 | 
						|
* removed the deprecated "error_file" option
 | 
						|
* save state when stopped
 | 
						|
* renamed option "--stdout" to "--stderr"
 | 
						|
* removed options --create-db and --no-create-db
 | 
						|
* state_file: save only if something has changed
 | 
						|
* database: eliminated maximum line length
 | 
						|
* log: redirect stdout/stderr to /dev/null if syslog is used
 | 
						|
* set the close-on-exec flag on all file descriptors
 | 
						|
* pcm_volume, pcm_mix: implemented 32 bit support
 | 
						|
* support packed 24 bit samples
 | 
						|
* CUE sheet support
 | 
						|
* support for MixRamp tags
 | 
						|
* obey $(sysconfdir) for default mpd.conf location
 | 
						|
* build with large file support by default
 | 
						|
* added test suite ("make check")
 | 
						|
* require GLib 2.12
 | 
						|
* added libwrap support
 | 
						|
* make single mode 'sticky'
 | 
						|
 | 
						|
 | 
						|
ver 0.15.17 (2011/??/??)
 | 
						|
* encoder:
 | 
						|
  - vorbis: reset the Ogg stream after flush
 | 
						|
* decoders:
 | 
						|
  - vorbis: fix tremor support
 | 
						|
 | 
						|
 | 
						|
ver 0.15.16 (2011/03/13)
 | 
						|
* output:
 | 
						|
  - ao: initialize the ao_sample_format struct
 | 
						|
  - jack: fix crash with mono playback
 | 
						|
* encoders:
 | 
						|
  - lame: explicitly configure the output sample rate
 | 
						|
* update: log all file permission problems
 | 
						|
 | 
						|
 | 
						|
ver 0.15.15 (2010/11/08)
 | 
						|
* input:
 | 
						|
  - rewind: fix assertion failure
 | 
						|
* output:
 | 
						|
  - shout: artist comes first in stream title
 | 
						|
 | 
						|
 | 
						|
ver 0.15.14 (2010/11/06)
 | 
						|
* player_thread: fix assertion failure due to wrong music pipe on seek
 | 
						|
* output_thread: fix assertion failure due to race condition in OPEN
 | 
						|
* input:
 | 
						|
  - rewind: fix double free bug
 | 
						|
* decoders:
 | 
						|
  - mp4ff, ffmpeg: add extension ".m4b" (audio book)
 | 
						|
 | 
						|
 | 
						|
ver 0.15.13 (2010/10/10)
 | 
						|
* output_thread: fix race condition after CANCEL command
 | 
						|
* output:
 | 
						|
  - httpd: fix random data in stream title
 | 
						|
  - httpd: MIME type audio/ogg for Ogg Vorbis
 | 
						|
* input:
 | 
						|
  - rewind: update MIME not only once
 | 
						|
  - rewind: enable for MMS
 | 
						|
 | 
						|
 | 
						|
ver 0.15.12 (2010/07/20)
 | 
						|
* input:
 | 
						|
  - curl: remove assertion after curl_multi_fdset()
 | 
						|
* tags:
 | 
						|
  - rva2: set "gain", not "peak"
 | 
						|
* decoders:
 | 
						|
  - wildmidi: support version 0.2.3
 | 
						|
 | 
						|
 | 
						|
ver 0.15.11 (2010/06/14)
 | 
						|
* tags:
 | 
						|
  - ape: support album artist
 | 
						|
* decoders:
 | 
						|
  - mp4ff: support tags "album artist", "albumartist", "band"
 | 
						|
  - mikmod: fix memory leak
 | 
						|
  - vorbis: handle uri==NULL
 | 
						|
  - ffmpeg: fix memory leak
 | 
						|
  - ffmpeg: free AVFormatContext on error
 | 
						|
  - ffmpeg: read more metadata
 | 
						|
  - ffmpeg: fix libavformat 0.6 by using av_open_input_stream()
 | 
						|
* playlist: emit IDLE_OPTIONS when resetting single mode
 | 
						|
* listen: make get_remote_uid() work on BSD
 | 
						|
 | 
						|
 | 
						|
ver 0.15.10 (2010/05/30)
 | 
						|
* input:
 | 
						|
  - mms: fix memory leak in error handler
 | 
						|
  - mms: initialize the "eof" attribute
 | 
						|
* decoders:
 | 
						|
  - mad: properly calculate ID3 size without libid3tag
 | 
						|
 | 
						|
 | 
						|
ver 0.15.9 (2010/03/21)
 | 
						|
* decoders:
 | 
						|
  - mad: fix crash when seeking at end of song
 | 
						|
  - mpcdec: fix negative shift on fixed-point samples
 | 
						|
  - mpcdec: fix replay gain formula with v8
 | 
						|
* playlist: fix single+repeat in random mode
 | 
						|
* player: postpone song tags during cross-fade
 | 
						|
 | 
						|
 | 
						|
ver 0.15.8 (2010/01/17)
 | 
						|
* input:
 | 
						|
  - curl: allow rewinding with Icy-Metadata
 | 
						|
* decoders:
 | 
						|
  - ffmpeg, flac, vorbis: added more flac/vorbis MIME types
 | 
						|
  - ffmpeg: enabled libavformat's file name extension detection
 | 
						|
* dbUtils: return empty tag value only if no value was found
 | 
						|
* decoder_thread: fix CUE track playback
 | 
						|
* queue: don't repeat current song in consume mode
 | 
						|
 | 
						|
 | 
						|
ver 0.15.7 (2009/12/27)
 | 
						|
* archive:
 | 
						|
  - close archive when stream is closed
 | 
						|
  - iso, zip: fixed memory leak in destructor
 | 
						|
* input:
 | 
						|
  - file: don't fall back to parent directory
 | 
						|
  - archive: fixed memory leak in error handler
 | 
						|
* tags:
 | 
						|
  - id3: fix ID3v1 charset conversion
 | 
						|
* decoders:
 | 
						|
  - eliminate jitter after seek failure
 | 
						|
  - ffmpeg: don't try to force stereo
 | 
						|
  - wavpack: allow fine-grained seeking
 | 
						|
* mixer: explicitly close all mixers on shutdown
 | 
						|
* mapper: fix memory leak when playlist_directory is not set
 | 
						|
* mapper: apply filesystem_charset to playlists
 | 
						|
* command: verify playlist name in the "rm" command
 | 
						|
* database: return multiple tag values per song
 | 
						|
 | 
						|
 | 
						|
ver 0.15.6 (2009/11/18)
 | 
						|
* input:
 | 
						|
  - lastfm: fixed variable name in GLib<2.16 code path
 | 
						|
  - input/mms: require libmms 0.4
 | 
						|
* archive:
 | 
						|
  - zzip: require libzzip 0.13
 | 
						|
* tags:
 | 
						|
  - id3: allow 4 MB RIFF/AIFF tags
 | 
						|
* decoders:
 | 
						|
  - ffmpeg: convert metadata
 | 
						|
  - ffmpeg: align the output buffer
 | 
						|
  - oggflac: rewind stream after FLAC detection
 | 
						|
  - flac: fixed CUE seeking range check
 | 
						|
  - flac: fixed NULL pointer dereference in CUE code
 | 
						|
* output_thread: check again if output is open on PAUSE
 | 
						|
* update: delete ignored symlinks from database
 | 
						|
* database: increased maximum line length to 32 kB
 | 
						|
* sticker: added fallback for sqlite3_prepare_v2()
 | 
						|
 | 
						|
 | 
						|
ver 0.15.5 (2009/10/18)
 | 
						|
* input:
 | 
						|
  - curl: don't abort if a packet has only metadata
 | 
						|
  - curl: fixed endless loop during buffering
 | 
						|
* tags:
 | 
						|
  - riff, aiff: fixed "limited range" gcc warning
 | 
						|
* decoders:
 | 
						|
  - flac: fixed two memory leaks in the CUE tag loader
 | 
						|
* decoder_thread: change the fallback decoder name to "mad"
 | 
						|
* output_thread: check again if output is open on CANCEL
 | 
						|
* update: fixed memory leak during container scan
 | 
						|
 | 
						|
 | 
						|
ver 0.15.4 (2009/10/03)
 | 
						|
* decoders:
 | 
						|
  - vorbis: revert "faster tag scanning with ov_test_callback()"
 | 
						|
  - faad: skip assertion failure on large ID3 tags
 | 
						|
  - ffmpeg: use the "artist" tag if "author" is not present
 | 
						|
* output:
 | 
						|
  - osx: fix the OS X 10.6 build
 | 
						|
 | 
						|
 | 
						|
ver 0.15.3 (2009/08/29)
 | 
						|
* decoders:
 | 
						|
  - vorbis: faster tag scanning with ov_test_callback()
 | 
						|
* output:
 | 
						|
  - fix stuttering due to uninitialized variable
 | 
						|
* update: don't re-read unchanged container files
 | 
						|
 | 
						|
 | 
						|
ver 0.15.2 (2009/08/15)
 | 
						|
* tags:
 | 
						|
  - ape: check the tag size (fixes integer underflow)
 | 
						|
  - ape: added protection against large memory allocations
 | 
						|
* decoders:
 | 
						|
  - mad: skip ID3 frames when libid3tag is disabled
 | 
						|
  - flac: parse all replaygain tags
 | 
						|
  - flac: don't allocate cuesheet twice (memleak)
 | 
						|
* output:
 | 
						|
  - shout: fixed stuck pause bug
 | 
						|
  - shout: minimize the unpause latency
 | 
						|
* update: free empty path string (memleak)
 | 
						|
* update: free temporary string in container scan (memleak)
 | 
						|
* directory: free empty directories after removing them (memleak)
 | 
						|
 | 
						|
 | 
						|
ver 0.15.1 (2009/07/15)
 | 
						|
* decoders:
 | 
						|
  - flac: fix assertion failure in tag_free() call
 | 
						|
* output:
 | 
						|
  - httpd: include sys/types.h (fixes Mac OS X)
 | 
						|
* commands:
 | 
						|
  - don't resume playback when stopping during pause
 | 
						|
* database: fixed NULL pointer dereference after charset change
 | 
						|
* log: fix double free() bug during shutdown
 | 
						|
 | 
						|
 | 
						|
ver 0.15 (2009/06/23)
 | 
						|
* input:
 | 
						|
  - parse Icy-Metadata
 | 
						|
  - added support for the MMS protocol
 | 
						|
  - hide HTTP password in playlist
 | 
						|
  - lastfm: new input plugin for last.fm radio (experimental and incomplete!)
 | 
						|
  - curl: moved proxy settings to "input" block
 | 
						|
* tags:
 | 
						|
  - support the "album artist" tag
 | 
						|
  - support MusicBrainz tags
 | 
						|
  - parse RVA2 tags in mp3 files
 | 
						|
  - parse ID3 tags in AIFF/RIFF/WAV files
 | 
						|
  - ffmpeg: support new metadata API
 | 
						|
  - ffmpeg: added support for the tags comment, genre, year
 | 
						|
* decoders:
 | 
						|
  - audiofile: streaming support added
 | 
						|
  - audiofile: added 24 bit support
 | 
						|
  - modplug: another MOD plugin, based on libmodplug
 | 
						|
  - mikmod disabled by default, due to severe security issues in libmikmod
 | 
						|
  - sidplay: new decoder plugin for C64 SID (using libsidplay2)
 | 
						|
  - fluidsynth: new decoder plugin for MIDI files (using libfluidsynth,
 | 
						|
    experimental due to shortcomings in libfluidsynth)
 | 
						|
  - wildmidi: another decoder plugin for MIDI files (using libwildmidi)
 | 
						|
  - flac: parse stream tags
 | 
						|
  - mpcdec: support the new libmpcdec SV8 API
 | 
						|
  - added configuration option to disable decoder plugins
 | 
						|
  - flac: support embedded cuesheets
 | 
						|
  - ffmpeg: updated list of supported formats
 | 
						|
* audio outputs:
 | 
						|
  - added option to disable audio outputs by default
 | 
						|
  - wait 10 seconds before reopening after play failure
 | 
						|
  - shout: enlarged buffer size to 32 kB
 | 
						|
  - null: allow disabling synchronization
 | 
						|
  - mvp: fall back to stereo
 | 
						|
  - mvp: fall back to 16 bit audio samples
 | 
						|
  - mvp: check for reopen errors
 | 
						|
  - mvp: fixed default device detection
 | 
						|
  - pipe: new audio output plugin which runs a command
 | 
						|
  - alsa: better period_time default value for high sample rates
 | 
						|
  - solaris: new audio output plugin for Solaris /dev/audio
 | 
						|
  - httpd: new audio output plugin for web based streaming, similar to icecast
 | 
						|
     but built in.
 | 
						|
* commands:
 | 
						|
  - "playlistinfo" and "move" supports a range now
 | 
						|
  - added "sticker database", command "sticker", which allows clients
 | 
						|
     to implement features like "song rating"
 | 
						|
  - added "consume" command which removes a song after play
 | 
						|
  - added "single" command, if activated, stops playback after current song or
 | 
						|
     repeats the song if "repeat" is active.
 | 
						|
* mixers:
 | 
						|
  - rewritten mixer code to support multiple mixers
 | 
						|
  - new pulseaudio mixer
 | 
						|
  - alsa: new mixer_index option supports choosing between multiple
 | 
						|
    identically-named controls on a device.
 | 
						|
* Add audio archive extraction support:
 | 
						|
  - bzip2
 | 
						|
  - iso9660
 | 
						|
  - zip
 | 
						|
* the option "error_file" was removed, all messages are logged into
 | 
						|
   "log_file"
 | 
						|
* support logging to syslog
 | 
						|
* fall back to XDG music directory if no music_directory is configured
 | 
						|
* failure to read the state file is non-fatal
 | 
						|
* --create-db starts the MPD daemon instead of exiting
 | 
						|
* playlist_directory and music_directory are optional
 | 
						|
* playlist: recalculate the queued song after random is toggled
 | 
						|
* playlist: don't unpause on delete
 | 
						|
* pause when all audio outputs fail to play
 | 
						|
* daemon: ignore "user" setting if already running as that user
 | 
						|
* listen: fix broken client IP addresses in log
 | 
						|
* listen: bind failure on secondary address is non-fatal
 | 
						|
* 24/32 bit audio support
 | 
						|
* print available protocols in --version
 | 
						|
* fill buffer after seeking
 | 
						|
* choose the fallback resampler at runtime
 | 
						|
* steps taken towards win32 compatibility
 | 
						|
* require glib 2.6 or greater
 | 
						|
* built-in documentation using doxygen and docbook
 | 
						|
 | 
						|
 | 
						|
ver 0.14.2 (2009/02/13)
 | 
						|
* configure.ac:
 | 
						|
  - define HAVE_FFMPEG after all checks
 | 
						|
* decoders:
 | 
						|
  - ffmpeg: added support for the tags comment, genre, year
 | 
						|
  - ffmpeg: don't warn of empty packet output
 | 
						|
  - ffmpeg: check if the time stamp is valid
 | 
						|
  - ffmpeg: fixed seek integer overflow
 | 
						|
  - ffmpeg: enable WAV streaming
 | 
						|
  - ffmpeg: added TTA support
 | 
						|
  - wavpack: pass NULL if the .wvc file fails to open
 | 
						|
  - mikmod: call MikMod_Exit() only in the finish() method
 | 
						|
  - aac: fix stream metadata
 | 
						|
* audio outputs:
 | 
						|
  - jack: allocate ring buffers before connecting
 | 
						|
  - jack: clear "shutdown" flag on reconnect
 | 
						|
  - jack: reduced sleep time to 1ms
 | 
						|
  - shout: fixed memory leak in the mp3 encoder
 | 
						|
  - shout: switch to blocking mode
 | 
						|
  - shout: use libshout's synchronization
 | 
						|
  - shout: don't postpone metadata
 | 
						|
  - shout: clear buffer before calling the encoder
 | 
						|
* mapper: remove trailing slashes from music_directory
 | 
						|
* player: set player error when output device fails
 | 
						|
* update: recursively purge deleted directories
 | 
						|
* update: free deleted subdirectories
 | 
						|
 | 
						|
ver 0.14.1 (2009/01/17)
 | 
						|
* decoders:
 | 
						|
  - mp4: support the writer/composer tag
 | 
						|
  - id3: strip leading and trailing whitespace from ID3 tags
 | 
						|
  - oggvorbis: fix tremor support
 | 
						|
  - oggvorbis: disable seeking on remote files
 | 
						|
* audio outputs:
 | 
						|
  - jack: allocate default port names (fixes a crash)
 | 
						|
* update:
 | 
						|
  - refresh stats after update
 | 
						|
  - save the database even if it is empty
 | 
						|
* input_curl:
 | 
						|
  - use select() to eliminate busy loop during connect
 | 
						|
  - honour http_proxy_* config directives
 | 
						|
  - fix assertion failure on "connection refused"
 | 
						|
  - fix assertion failure with empty HTTP responses
 | 
						|
* corrected the sample calculation in the fallback resampler
 | 
						|
* log: automatically append newline
 | 
						|
* fix setenv() conflict on Solaris
 | 
						|
* configure.ac: check for pkg-config before using it
 | 
						|
* fix minor memory leak in decoder_tag()
 | 
						|
* fix cross-fading bug: it used to play some chunks of the new song twice
 | 
						|
* playlist
 | 
						|
  - fix assertion failure during playlist load
 | 
						|
  - implement Fisher-Yates shuffle properly
 | 
						|
  - safely search the playlist for deleted song
 | 
						|
* use custom PRNG for volume dithering (speedup)
 | 
						|
* detect libid3tag without pkg-config
 | 
						|
 | 
						|
ver 0.14 (2008/12/25)
 | 
						|
* audio outputs:
 | 
						|
  - wait 10 seconds before reopening a failed device
 | 
						|
  - fifo: new plugin
 | 
						|
  - null: new plugin
 | 
						|
  - shout: block while trying to connect instead of failing
 | 
						|
  - shout: new timeout parameter
 | 
						|
  - shout: support mp3 encoding and the shoutcast protocol
 | 
						|
  - shout: send silence during pause, so clients don't get disconnected
 | 
						|
* decoders:
 | 
						|
  - ffmpeg: new plugin
 | 
						|
  - wavpack: new plugin
 | 
						|
  - aac: stream support added
 | 
						|
  - mod: disabled by default due to critical bugs in all libmikmod versions
 | 
						|
* commands:
 | 
						|
  - "addid" takes optional second argument to specify position
 | 
						|
  - "idle" notifies the client when a notable change occurs
 | 
						|
* Zeroconf support using Bonjour
 | 
						|
* New zeroconf_enabled option so that Zeroconf support can be disabled
 | 
						|
* Stop the player/decode processes when not playing to allow the CPU to sleep
 | 
						|
* Fix a bug where closing an ALSA dmix device could cause MPD to hang
 | 
						|
* Support for reading ReplayGain from LAME tags on MP3s
 | 
						|
* MPD is now threaded, which greatly improves performance and stability
 | 
						|
* memory usage reduced by merging duplicate tags in the database
 | 
						|
* support connecting via unix domain socket
 | 
						|
* allow authenticated local users to add any local file to the playlist
 | 
						|
* 24 bit audio support
 | 
						|
* optimized PCM conversions and dithering
 | 
						|
* much code has been replaced by using GLib
 | 
						|
* the HTTP client has been replaced with libcurl
 | 
						|
* symbolic links in the music directory can be disabled; the default
 | 
						|
  is to ignore symlinks pointing outside the music directory
 | 
						|
 | 
						|
ver 0.13.0 (2007/5/28)
 | 
						|
* New JACK audio output
 | 
						|
* Support for "file" as an alternative to "filename" in search, find, and list
 | 
						|
* FLAC 1.1.3 API support
 | 
						|
* New playlistadd command for adding to stored playlists
 | 
						|
* New playlistclear command for clearing stored playlists
 | 
						|
* Fix a bug where "find any" and "list <type> any" wouldn't return any results
 | 
						|
* Make "list any" return an error instead of no results and an OK
 | 
						|
* New gapless_mp3_playback option to disable gapless MP3 playback
 | 
						|
* Support for seeking HTTP streams
 | 
						|
* Zeroconf support using Avahi
 | 
						|
* libsamplerate support for high quality audio resampling
 | 
						|
* ID3v2 "Original Artist/Performer" tag support
 | 
						|
* New playlistsearch command for searching the playlist (similar to "search")
 | 
						|
* New playlistfind command for finding songs in the playlist (similar to "find")
 | 
						|
* libmikmod 3.2.0 beta support
 | 
						|
* New tagtypes command for retrieving a list of available tag types
 | 
						|
* Fix a bug where no ACK was returned if loading a playlist failed
 | 
						|
* Fix a bug where db_update in stats would be 0 after initial database creation
 | 
						|
* New count command for getting stats on found songs (similar to "find")
 | 
						|
* New playlistmove command for moving songs in stored playlists
 | 
						|
* New playlistdelete command for deleting songs from stored playlists
 | 
						|
* New rename command for renaming stored playlists
 | 
						|
* Increased default buffer_before_play from 0% to 10% to prevent skipping
 | 
						|
* Lots of bug fixes, cleaned up code, and performance improvements
 | 
						|
 | 
						|
ver 0.12.2 (2007/3/20)
 | 
						|
* Fix a bug where clients could cause MPD to segfault
 | 
						|
 | 
						|
ver 0.12.1 (2006/10/10)
 | 
						|
* Fix segfault when scanning an MP3 that has a Xing tag with 0 frames
 | 
						|
* Fix segfault when there's no audio output specified and one can't be detected
 | 
						|
* Fix handling of escaping in quotes
 | 
						|
* Allow a quality of -1 to be specified for shout outputs
 | 
						|
* A few minor cleanups
 | 
						|
 | 
						|
ver 0.12.0 (2006/9/22)
 | 
						|
* New audio output code which supports:
 | 
						|
  * A plugin-like architecture
 | 
						|
  * Non-libao ("native") outputs:
 | 
						|
    * ALSA
 | 
						|
    * OSS
 | 
						|
    * OS X
 | 
						|
    * Media MVP
 | 
						|
    * PulseAudio
 | 
						|
    * Shout (Icecast or Shoutcast)
 | 
						|
  * Playing through multiple outputs at once
 | 
						|
  * Enabling/disabling outputs while MPD is running
 | 
						|
  * Saving output state (enabled/disabled) to the state_file
 | 
						|
* OggFLAC support
 | 
						|
* Musepack support
 | 
						|
* Gapless MP3 playback
 | 
						|
* MP3 ReplayGain support (using ID3v2 tags only)
 | 
						|
* Support for MP2 files if MP3 support is enabled
 | 
						|
* Composer, Performer, Comment, and Disc metadata support
 | 
						|
* New outputs command for listing available audio outputs
 | 
						|
* New enableoutput and disableoutput commands for enabling/disabling outputs
 | 
						|
* New plchangesposid command for a stripped down version of plchanges
 | 
						|
* New addid command for adding to the playlist and returning a song ID
 | 
						|
* New commands and notcommands commands for checking available commands
 | 
						|
* Can now specify any supported metadata type or "any" in search, find, and list
 | 
						|
* New volume_normalization parameter for enabling Audio Compress normalization
 | 
						|
* New metadata_to_use parameter for choosing supported metadata types
 | 
						|
* New pid_file parameter for saving the MPD process ID to the specified file
 | 
						|
* The db_file parameter is now required
 | 
						|
* The port parameter is now optional (defaults to 6600)
 | 
						|
* Can specify bind_to_address multiple times
 | 
						|
* New --kill argument for killing MPD if pid_file is specified
 | 
						|
* Removed --update-db argument (use the update function in your client instead)
 | 
						|
* New mpdconf.example
 | 
						|
* New mpd.conf man page 
 | 
						|
* Removed bundled libmad and libid3tag
 | 
						|
* Lots of bug fixes, cleaned up code, and performance improvements
 | 
						|
 | 
						|
ver 0.11.5 (2004/11/1)
 | 
						|
1) New id3v1_encoding config option to configure the id3v1 tag encoding (patch
 | 
						|
from dottedmag)
 | 
						|
2) Strip '\r' from m3u playlists (thank you windows)
 | 
						|
3) Use random() instead of rand() for playlist randomizing
 | 
						|
4) Fix a bug trying skipping some commented lines in m3u playlist files
 | 
						|
5) Fix a bug when fetching metadata from streams that may cause certain
 | 
						|
weirdnesses
 | 
						|
6) Fix a bug where replaygain preamp was used on files w/o replaygain tags
 | 
						|
7) Fix a busy loop when trying to prebuffer a nonexistant or missing stream
 | 
						|
8) Fix a bug in forgetting to remove leading ' ' in content-type for http
 | 
						|
streams
 | 
						|
9) Check for ice-name in http headers
 | 
						|
10) Be sure the strip all '\n' chars in tags
 | 
						|
11) Set $HOME env variable when setuid'ing, this should fix the /root/.mcop
 | 
						|
errors triggered by arts/libao
 | 
						|
 | 
						|
ver 0.11.4 (2004/7/26)
 | 
						|
1) Fixed a segfault when decoding mp3's with corrupt id3v2 tags
 | 
						|
2) Fixed a memory leak when encountering id3v2 tags in mp3 decoder
 | 
						|
 | 
						|
ver 0.11.3 (2004/7/21)
 | 
						|
1) Add support for http authentication for streams
 | 
						|
2) Added replaygain pre-amp support
 | 
						|
3) Better error handling for fread() in inputStream_file
 | 
						|
4) Fixed a bug so that when a freeAllInterfaces is called, it sets
 | 
						|
max_interface_connections to 0.  This prevents potential segfaults and other
 | 
						|
nastiness for forked processes, like the player and update-er (do to
 | 
						|
interfacePrintWithFD()).
 | 
						|
5) Allow blockingWrite() to handle errors more gracefully (for example, if the
 | 
						|
disc is full, and thus the write() fails or can't be completed, we just skip
 | 
						|
this write() and continue, instead of getting stuck in an infinite loop until
 | 
						|
the write() becomes successful)
 | 
						|
6) Updated mpdconf.example from sbh/avuton
 | 
						|
7) If "user" is specified, then convert ~ in paths to the user's home path
 | 
						|
specified by "user" config paramter (not the actual current user running mpd).
 | 
						|
 | 
						|
ver 0.11.2 (2004/7/5) 
 | 
						|
1) Work around in computing total time for mp3's whose first valid mpeg frame is
 | 
						|
not layer III
 | 
						|
2) Fix mp3 and mp4 decoders when seeking past the end of the file
 | 
						|
3) Fix replaygain for flac and vorbis
 | 
						|
4) Fix memory leaks in flac decoder (from normalperson)
 | 
						|
5) Fix Several other bugs in playlist.c and directory.c (from normalperson)
 | 
						|
 | 
						|
ver 0.11.1 (2004/6/24)
 | 
						|
1) Fix a bug that caused "popping" at the beginning of mp3's
 | 
						|
2) Fix playlistid command
 | 
						|
3) Fix move commands so they don't mess up the song id's
 | 
						|
4) Added support for HTTP Proxy
 | 
						|
5) Detect and skip recursive links in the music directory
 | 
						|
6) Fix addPathToDB() so updating on a specific path doesn't exist correctly adds
 | 
						|
the parent directories to the DB
 | 
						|
 | 
						|
ver 0.11.0 (2004/6/18)
 | 
						|
1) Support for playing mp3 and Ogg Vorbis streams
 | 
						|
2) Non-blocking Update
 | 
						|
3) Replaygain support for Ogg Vorbis and FLAC (by Eric Moore aka AliasMrJones)
 | 
						|
4) audio_output_format option that allows for all audio output to be converted
 | 
						|
to a format compatible with any sound card
 | 
						|
5) Own routines for to always support UTF-8 <-> ISO-8859-1 conversion
 | 
						|
6) Added "Id" and "Pos" metadata for songs in playlist
 | 
						|
7) Added commands: plchanges, currentsong, playid, seekid, playlistid, moveid,
 | 
						|
swapid, deleteid
 | 
						|
8) UTF-8 validation of all tags
 | 
						|
9) Update specific files/directories (for fast, incremental updating)
 | 
						|
10) Added ACK error codes
 | 
						|
11) Mod file support
 | 
						|
12) Added command_list_ok_begin
 | 
						|
13) Play after stop resumes from last position in the playlist
 | 
						|
14) Play while pause resumes playback
 | 
						|
15) Better signal handling by mackstann
 | 
						|
16) Cleanup decoder interface (now called InputPlugins)
 | 
						|
17) --create-db no long starts the daemon
 | 
						|
18) --no-daemon outputs to log files
 | 
						|
19) --stdout sends output to stdout/stderr
 | 
						|
20) Default port is now 6600
 | 
						|
21) Lots of other cleanups and Bugfixes
 | 
						|
 | 
						|
ver 0.10.4 (2004/5/26)
 | 
						|
1) Fix configure problems on OpenBSD with langinfo and iconv
 | 
						|
2) Fix an infinte loop when writing to an interface and it has expired
 | 
						|
3) Fix a segfault in decoding flac's
 | 
						|
4) Ingore CRC stuff in mp3's since some encoders did not compute the CRC
 | 
						|
correctly
 | 
						|
5) Fix a segfault in processing faulty mp4 metadata
 | 
						|
 | 
						|
ver 0.10.3 (2004/4/2)
 | 
						|
1) Fix a segfault when a blanck line is sent from a client
 | 
						|
2) Fix for loading playlists on platforms where char is unsigned
 | 
						|
3) When pausing, release audio device after we say pause is successful (this
 | 
						|
makes pause appear to not lag)
 | 
						|
4) When returning errors for unknown types by player, be sure to copy the
 | 
						|
filename
 | 
						|
5) add --disable-alsa for disabling alsa mixer support
 | 
						|
6) Use select() for a portable usleep()
 | 
						|
7) For alsa mixer, default to "Master' element, not first element
 | 
						|
 | 
						|
ver 0.10.2 (2004/3/25)
 | 
						|
1) Add suport for AAC
 | 
						|
2) Substitute '\n' with ' ' in tag info
 | 
						|
3) Remove empty directories from db
 | 
						|
4) Resume from current position in song when using state file
 | 
						|
5) Pause now closes the music device, and reopens it on resuming
 | 
						|
6) Fix unnecessary big endian byte swapping
 | 
						|
7) If locale is "C" or "POSIX", then use ISO-8859-1 as the fs charset
 | 
						|
8) Fix a bug where alsa mixer wasn't detecting volume changes
 | 
						|
9) For alsa and software mixer, show volume to be the same as it was set (even
 | 
						|
if its not the exact volume)
 | 
						|
10) Report bitrate for wave files
 | 
						|
11) Compute song length of CBR mp3's more accurately
 | 
						|
 | 
						|
ver 0.10.1 (2004/3/7)
 | 
						|
1) Check to see if we need to add "-lm" when linking mpd
 | 
						|
2) Fix issues with skipping bad frames in an mp3 (this way we get the correct
 | 
						|
samplerate and such)
 | 
						|
3) Fix crossfading bug with ogg's
 | 
						|
4) Updated libmad and libid3tag included w/ source to 0.15.1b
 | 
						|
 | 
						|
ver 0.10.0 (2004/3/3)
 | 
						|
1) Use UTF-8 for all client communications
 | 
						|
2) Crossfading support
 | 
						|
3) Password Authentication (all in plaintext)
 | 
						|
4) Software mixer
 | 
						|
5) Buffer Size is configurable
 | 
						|
6) Reduced Memory consumption (use directory tree for search and find)
 | 
						|
7) Bitrate support for Flac
 | 
						|
8) setvol command (deprecates volume command)
 | 
						|
9) add command takes directories
 | 
						|
10) Path's in config file now work with ~
 | 
						|
11) Add samplerate,bits, and channels to status
 | 
						|
12) Reenable playTime in stats display
 | 
						|
13) Fix a segfault when doing: add ""
 | 
						|
14) Fix a segfault with flac vorbis comments simply being "="
 | 
						|
15) Fix a segfault/bug in queueNextSong with repeat+random
 | 
						|
16) Fix a bug, where one process may segfault, and cause more processes to spawn
 | 
						|
w/o killing ones that lost their parent.
 | 
						|
17) Fix a bug when the OSS device was unable to fetch the current volume,
 | 
						|
it would close the device (when it maybe previously closed by the exact same
 | 
						|
code)
 | 
						|
18) command.c cleanup by mackstann
 | 
						|
19) directory.c and command.c cleanup by tw-nym
 | 
						|
 | 
						|
ver 0.9.4 (2004/1/21)
 | 
						|
1) Fix a bug where updated tag info wasn't being detected
 | 
						|
2) Set the default audio write size to 1024 bytes (should decrease cpu load a
 | 
						|
bit on some machines).
 | 
						|
3) Make audio write size configurable via "audio_write_size" config option
 | 
						|
4) Tweak output buffer size for connections by detecting the kernel output
 | 
						|
buffer size.
 | 
						|
 | 
						|
ver 0.9.3 (2003/10/31)
 | 
						|
1) Store total time/length of songs in db and display in *info commands
 | 
						|
2) Display instantaneous bitrate in status command
 | 
						|
3) Add Wave Support using libaudiofile (Patch from normalperson)
 | 
						|
4) Command code cleanup (Patch from tw-nym)
 | 
						|
5) Optimize listing of playlists (10-100x faster)
 | 
						|
6) Optimize interface output (write in 4kB chunks instead of on every '\n')
 | 
						|
7) Fix bug that prevented rm command from working
 | 
						|
8) Fix bug where deleting current song skips the next song
 | 
						|
9) Use iconv to convert vorbis comments from UTF-8 to Latin1
 | 
						|
 | 
						|
ver 0.9.2 (2003/10/6)
 | 
						|
1) Fix FreeBSD Compilation Problems
 | 
						|
2) Fix bug in move command
 | 
						|
3) Add mixer_control options to configure which mixer control/device mpd
 | 
						|
controls
 | 
						|
4) Randomize on play -1
 | 
						|
5) Fix a bug in toggling repeat off and at the end of the playlist
 | 
						|
 | 
						|
ver 0.9.1 (2003/9/30)
 | 
						|
1) Fix a statement in the middle of declarations in listen.c, causes error for
 | 
						|
gcc 2.7
 | 
						|
 | 
						|
ver 0.9.0 (2003/9/30)
 | 
						|
1) Random play mode
 | 
						|
2) Alsa Mixer Support
 | 
						|
3) Save and Restore "state"
 | 
						|
4) Default config file locations (.mpdconf and /etc/mpd.conf)
 | 
						|
5) Make db file locations configurable
 | 
						|
6) Move songs around in the playlist
 | 
						|
7) Gapless playback
 | 
						|
8) Use Xing tags for mp3's
 | 
						|
9) Remove stop_on_error
 | 
						|
10) Seeking support
 | 
						|
11) Playlists can be loaded and deleted from subdirectories
 | 
						|
12) Complete rewrite of player layer (fork()'s only once, opens and closes
 | 
						|
audio device as needed).
 | 
						|
13) Eliminate use and dependence of SIGIO
 | 
						|
14) IPv6 support
 | 
						|
15) Solaris compilations fixes
 | 
						|
16) Support for different log levels
 | 
						|
17) Timestamps for log entries
 | 
						|
18) "user" config parameter for setuid (patch from Nagilum)
 | 
						|
19) Other misc features and bug fixes
 | 
						|
 | 
						|
ver 0.8.7 (2003/9/3)
 | 
						|
1) Fix a memory leak.  When closing a interface, was called close() on the fd
 | 
						|
instead of calling fclose() on the fp that was opened with fdopen().
 | 
						|
 | 
						|
ver 0.8.6 (2003/8/25)
 | 
						|
1) Fix a memory leak when a buffered existed, and a connection was unexpectedly
 | 
						|
closed, and i wasn't free'ing the buffer apropriatly.
 | 
						|
 | 
						|
ver 0.8.5 (2003/8/17)
 | 
						|
1) Fix a bug where an extra end of line is returned when attempting to play a
 | 
						|
non existing file.  This causes parsing errors for clients.
 | 
						|
 | 
						|
ver 0.8.4 (2003/8/13)
 | 
						|
1) Fix a bug where garbage is returned with errors in "list" command
 | 
						|
 | 
						|
ver 0.8.3 (2003/8/12) 
 | 
						|
1) Fix a compilation error on older linux systems
 | 
						|
2) Fix a bug in searching by title
 | 
						|
3) Add "list" command
 | 
						|
4) Add config options for specifying libao driver/plugin and options
 | 
						|
5) Add config option to specify which address to bind to
 | 
						|
6) Add support for loading and saving absolute pathnames in saved playlists
 | 
						|
7) Playlist no longer creates duplicate entries for song data (more me
 | 
						|
efficient)
 | 
						|
8) Songs deleted from the db are now removed for the playlist as well
 | 
						|
 | 
						|
ver 0.8.2 (2003/7/22)
 | 
						|
1) Increased the connection que for listen() from 0 to 5
 | 
						|
2) Cleanup configure makefiles so that mpd uses MPD_LIBS and MPD_CFLAGS
 | 
						|
rather than LIBS and CFLAGS
 | 
						|
3) Put a cap on the number of commands per command list
 | 
						|
4) Put a cap on the maximum number of buffered output lines
 | 
						|
5) Get rid of TIME_WAIT/EADDRINUSE socket problem
 | 
						|
6) Use asynchronious IO (i.e. trigger SIGIO instead so we can sleep in
 | 
						|
select() calls longer)
 | 
						|
 | 
						|
ver 0.8.1 (2003/7/11)
 | 
						|
1) FreeBSD fixes
 | 
						|
2) Fix for rare segfault when updating
 | 
						|
3) Fix bug where client was being hungup on when done playing current song
 | 
						|
4) Fix bug when playing flac's where it incorrectly reports an error
 | 
						|
5) Make stop playlist on error configurable
 | 
						|
6) Configure checks for installed libmad and libid3tag and uses those if found
 | 
						|
7) Use buffer->finished in *_decode's instead of depending on catching signals
 | 
						|
 | 
						|
ver 0.8.0 (2003/7/6)
 | 
						|
1) Flac support
 | 
						|
2) Make playlist max length configurable
 | 
						|
3) New backward compatible status (backward compatible for 0.8.0 on)
 | 
						|
4) listall command now can take a directory as an argument
 | 
						|
5) Buffer rewritten to use shared memory instead of sockets
 | 
						|
6) Playlist adding done using db
 | 
						|
7) Add sort to list, and use binary search for finding
 | 
						|
8) New "stats" command
 | 
						|
9) Command list (for faster adding of large batches of files)
 | 
						|
10) Add buffered chunks before play
 | 
						|
11) Useful error reporting to clients (part of status command)
 | 
						|
12) Use libid3tag for reading id3 tags (more stable)
 | 
						|
13) Non-blocking output to clients
 | 
						|
14) Fix bug when removing items from directory
 | 
						|
15) Fix bug when playing mono mp3's
 | 
						|
16) Fix bug when attempting to delete files when using samba
 | 
						|
17) Lots of other bug fixes I can't remember
 | 
						|
 | 
						|
ver 0.7.0 (2003/6/20)
 | 
						|
1) use mad instead of mpg123 for mp3 decoding
 | 
						|
2) volume support
 | 
						|
3) repeate playlist support
 | 
						|
4) use autoconf/automake (i.e. "configure")
 | 
						|
5) configurable max connections
 | 
						|
 | 
						|
ver 0.6.2 (2003/6/11)
 | 
						|
1) Buffer support for ogg
 | 
						|
2) new config file options: "connection_timeout" and "mpg123_ignore_junk"
 | 
						|
3) new commands: "next", "previous", and "listall"
 | 
						|
Thanks to Niklas Hofer for "next" and "previous" patches!
 | 
						|
4) Search by filename
 | 
						|
5) bug fix for pause when playing mp3's
 | 
						|
 | 
						|
ver 0.6.1 (2003/5/29)
 | 
						|
1) Add conf file support
 | 
						|
2) Fix a bug when doing mp3stop (do wait3(NULL,WNOHANG|WUNTRACED,NULL))
 | 
						|
3) Fix a bug when fork'ing, fflush file buffers before forking so the
 | 
						|
child doesn't print the same stuff in the buffer.
 | 
						|
 | 
						|
ver 0.6.0 (2003/5/25)
 | 
						|
1) Add ogg vorbis support
 | 
						|
2) Fix two bugs relating to tables, one for search by title, and one where we
 | 
						|
freed the tables before directories, causing a segfault
 | 
						|
3) The info command has been removed.
 | 
						|
 | 
						|
ver 0.5.0-0.5.2
 | 
						|
Initial release(s).  Support for MP3 via mpg123
 |