summaryrefslogtreecommitdiff
path: root/NEWS
AgeCommit message (Collapse)Author
2020-10-28release v0.22.2v0.22.2Max Kellermann
2020-10-28meson_options.txt: disable the "smbclient" plugin by defaultMax Kellermann
The bug https://bugzilla.samba.org/show_bug.cgi?id=11413 makes MPD crash after at most a minute of using the plugin. Since this bug is five years old already and it doesn't look like it will ever be fixed, all libsmbclient code in MPD is scheduled for removal. For now, the plugin is disabled by default so people are less likely to hit the crash bug. Closes https://github.com/MusicPlayerDaemon/MPD/issues/991
2020-10-28lib/yajl/Handle: strip newlines from error messagesMax Kellermann
Closes https://github.com/MusicPlayerDaemon/MPD/issues/981
2020-10-28Main: save the state_file on shutdownMax Kellermann
This got lost in commit 5d597a3646cc (v0.21.19), but it was never noticed because the state_file_interval was way too short due to commit 3413d1bf23a, fixed recently by commit 27cc7b352d5
2020-10-28db/simple: purge songs for unavailable decoder plugins on updateMax Kellermann
2020-10-27db/simple: purge special directories for unavailable plugins on updateMax Kellermann
2020-10-27increment version number to 0.22.2Max Kellermann
2020-10-17release v0.22.1v0.22.1Max Kellermann
2020-10-16decoder/opus: fix track/album ReplayGain fallbackMax Kellermann
Fixes regression by commit 23d5a2b8620cea69958d087fc7e13fe1e5adb83d - that commit always pretended that any Opus file has both track and album gain, and thus disabled the fallback to the other if one is not set. This patch changes the logic to only submit ReplayGain if at least one value is set, and apply the offset only to that value. If none is available, then the new check in HandleAudio() will submit only the output gain. Closes https://github.com/MusicPlayerDaemon/MPD/issues/977
2020-10-16decoder/opus: submit output_gain even if there is no OpusTags packetMax Kellermann
2020-10-08config/Data: cast to std::chrono::steady_clock::duration properlyMax Kellermann
Oh no, 3413d1bf23a was broken! Instead of passing a number as "seconds" to the duration constructor, it just abused the duration constructor as cast operator, which caused custom state_file_interval settings to be extremely short.
2020-10-05playlist/cue/parser: fix nullptr dereferenceMax Kellermann
Closes https://github.com/MusicPlayerDaemon/MPD/issues/974
2020-10-05playlist/cue/parser: fix off-by-one buffer overflowMax Kellermann
cue_next_word() can return a pointer one past the end of the string if the word is followed by the terminating null byte.
2020-10-02output/jack: implement Interrupt()Max Kellermann
2020-10-02output/pulse: implement Interrupt()Max Kellermann
2020-10-02output/alsa: implement Interrupt()Max Kellermann
This allows canceling the blocking method LockWaitWriteAvailable(), and thus allows breaking free of misbehaving ALSA drivers, avoiding a MPD lockup. Closes https://github.com/MusicPlayerDaemon/MPD/issues/966
2020-09-23increment version number to 0.22.1Max Kellermann
2020-09-23release v0.22v0.22Max Kellermann
2020-09-23NEWS: update recommended compilersMax Kellermann
2020-09-21Merge tag 'v0.21.26' into masterMax Kellermann
release v0.21.26
2020-09-21release v0.21.26v0.21.26v0.21.xMax Kellermann
2020-09-21decoder/ffmpeg: implement protocols() and uri_decode() (for RTSP)Max Kellermann
This implements the feature that was missing/broken in this bug report: https://github.com/MusicPlayerDaemon/MPD/issues/930
2020-09-21Merge branch 'v0.21.x' into masterMax Kellermann
2020-09-21Support opus header gain tags and match opus playback volume to other tracks ↵Desuwa
when ReplayGain is enabled.
2020-09-17Merge branch 'v0.21.x' into masterMax Kellermann
2020-09-17db/update/InotifyUpdate: obey `.mpdignore` filesMax Kellermann
Closes https://github.com/MusicPlayerDaemon/MPD/issues/846
2020-09-16player/Thread: call OnPlayerSync() in SeekDecoder()Max Kellermann
This fixes a spurious "single" mode bug which occurs when using "play" or "seek" to start playback on the song that is currently paused: in that case, the main thread never queues the next song, and at the end of the song, the player thread exits Run(), stopping playback, and after that, the main thread starts the next song without considering "single" mode. By calling OnPlayerSync(), we ensure that the main thread gets a chance to queue the next song before the player thread exits the Run() loop. Closes https://github.com/MusicPlayerDaemon/MPD/issues/850
2020-09-16LogBackend: change the initial log_threshold to DEFAULTMax Kellermann
The log levels have always been very confusing (and badly named), but this was most confusing: if there's a log level called "default", why is it not the default? Closes https://github.com/MusicPlayerDaemon/MPD/issues/926
2020-09-16decoder/ffmpeg: add "hls+http://" to the list of supported protocolsMax Kellermann
2020-09-16decoder/ffmpeg: remove "rtsp://" from the list of supported protocolsMax Kellermann
FFmpeg implements RTSP as a demuxer, not as a protocol handler. Thus, avio_open() cannot be used, and our input plugin cannot handle RTSP. Closes https://github.com/MusicPlayerDaemon/MPD/issues/930
2020-09-07Merge branch 'v0.21.x' into masterMax Kellermann
2020-09-07archive/iso9660: implement seekingMax Kellermann
2020-09-07archive/iso9660: fix unaligned readsMax Kellermann
Oh the horror! This plugin cannot possibly ever have worked. It was broken from the start, when it was added in commit 37796699cf7 nearly twelve (!) years ago. The plugin would always read at sector boundaries, so it could only ever work at multiples of 2 kB.
2020-09-04Merge branch 'v0.21.x' into masterMax Kellermann
2020-09-04archive/bzip2: throw on unexpected input EOFMax Kellermann
Don't silently return 0 when there is no more data, because this may crash the caller. And flush output even if input EOF has been reached.
2020-09-04archive/zzip: fix crash on corrupt ZIP fileMax Kellermann
Sometimes, zzip_file_read() returns 0 even though the end of the file was not reached. This causes assertion failures in DecoderBridge::Read(). Closes https://github.com/MusicPlayerDaemon/MPD/issues/935
2020-09-04decoder/sndfile: allow partial reads at end of fileMax Kellermann
While libsndfile doesn't like partial reads in the middle of a file (see commit 95ac6071b9), it allows partial reads at the end of a file. It doesn't pay attention to the file size when issuing a read. Commit ecb67a1ed16e9 (MPD 0.18.12) was a regression: previously, partial reads at the end of a file were possible, but switching to decoder_read_full() made this an error condition. This way, a portion at the end of each file was lost, leading to corruption with gapless playback (https://github.com/MusicPlayerDaemon/MPD/issues/936). This fix switches to the newly introduced function decoder_read_much(), which does the same as the code before commit ecb67a1ed16e93. Closes https://github.com/MusicPlayerDaemon/MPD/issues/936
2020-08-14output/osx: catch kAudioDevicePropertyHogMode errorsMax Kellermann
Our AudioObjectGetPropertyDataT() wrapper throws exception on error, and calling it from OSXOutput::Disable() can cause MPD crash due to std::terminate(). Closes https://github.com/MusicPlayerDaemon/MPD/issues/932
2020-07-20*/smbclient: use the new API with SMBCCTX parameterMax Kellermann
As a side effect, the input plugin closes the SMB/CIFS connection after closing the file. This solves one part of https://github.com/MusicPlayerDaemon/MPD/issues/916
2020-07-20output/sles: support floating point samplesMax Kellermann
According to https://developer.android.com/ndk/guides/audio/opensl/android-extensions This feature was mentioned in https://github.com/MusicPlayerDaemon/MPD/issues/922
2020-07-16increment version number to 0.21.26Max Kellermann
2020-07-06Merge tag 'v0.21.25'Max Kellermann
release v0.21.25
2020-07-06release v0.21.25v0.21.25Max Kellermann
2020-07-06db/upnp/Object: root nodes are allowed to omit parent_id and nameMax Kellermann
This fixes compatibility with Plex DLNA. Closes https://github.com/MusicPlayerDaemon/MPD/issues/851
2020-07-06Merge branch 'v0.21.x'Max Kellermann
2020-07-06command/storage: automatically scan new mountsMax Kellermann
Closes https://github.com/MusicPlayerDaemon/MPD/issues/841
2020-07-06command/storage: check if mount point is busyMax Kellermann
When mounting something over a directory that is already a mount point, CompositeStorage::Mount() silently overwrites the previously mounted storage, disposing it. After that, SimpleDatabase::Mount() will fail and handle_mount() will roll back the CompositeStorage::Mount() command, effectively unmounting what was there before (and also leaking memory). Closes https://github.com/MusicPlayerDaemon/MPD/issues/918
2020-07-06db/update/Walk: pass concatenated .mpdignore URI to storage.MapUTF8()Max Kellermann
Fixes the "Unrecognized URI" error with the udisks storage plugin, which is caused by the kludge in UdisksStorage::MapUTF8().
2020-07-06neighbor/upnp: remove D-Bus filter and match in Close()Max Kellermann
Fixes use-after-free crash bug during MPD shutdown.
2020-07-06decoder/Plugin: allow scan_{file,stream}() to throwMax Kellermann
Bug #915 is about an I/O exception thrown where none was allowed, leading to crash via std::terminate(). However, instead of catching and logging the error inside the decoder plugin, it should be able to propagate the I/O error to the MPD core, so MPD can avoid trying other decoder plugins. Closes https://github.com/MusicPlayerDaemon/MPD/issues/915