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.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