summaryrefslogtreecommitdiff
path: root/NEWS
AgeCommit message (Collapse)Author
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-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
2020-07-02output/osx: don't restart AudioUnit at the end of Cancel()Max Kellermann
We shouldn't restart the AudioUnit while the ring buffer is empty, or else our render callback may emit noise. Closes https://github.com/MusicPlayerDaemon/MPD/issues/771
2020-07-01decoder/opus: implement End Trimming (RFC7845 4.4)Max Kellermann
Closes https://github.com/MusicPlayerDaemon/MPD/issues/867
2020-07-01decoder/opus: allocate buffer only in the first chained songMax Kellermann
Fixes memory leak. That's what we get for
2020-07-01decoder/opus: apply pre-skip (RFC7845 4.2)Max Kellermann
Fixes the first part of https://github.com/MusicPlayerDaemon/MPD/issues/867
2020-07-01output/osx: improve sample rate selectionMax Kellermann
The formula in osx_output_score_sample_rate() to detect multiples of the source sample rate was broken: when given a 44.1 kHz input file, it preferred 16 kHz over 48 kHz, because its `frac_portion(16)=0.75` is smaller than `frac_portion(48)=0.91`. That formula, introduced by commit 40a1ebee295c569, looks completely wrong. It doesn't do what the code comment pretends it does. Instead of using that `frac_portion` to calculate a score, this patch adds to the score only if `frac_portion` is nearly `0` or `1`. This means that the factor is nearly integer. Closes https://github.com/MusicPlayerDaemon/MPD/issues/904
2020-07-01python/build/meson.py: set BOOST_ROOT for Meson 0.54Max Kellermann
Commit https://github.com/mesonbuild/meson/commit/08224dafcba1b694fb624553e7d84deb565aae22 changed Meson to require BOOST_ROOT for cross builds.
2020-07-01input/file: detect premature end of fileMax Kellermann
A bug report (https://github.com/MusicPlayerDaemon/MPD/issues/912) suggests that on Linux, reading on `cifs` files may rarely return 0 (= end of file) before the end of the file has really been reached. But that's just a theory which I need to validate, so this runtime check shall catch this condition before the assertion in DecoderBridge::Read() crashes MPD. Let's see. Closes https://github.com/MusicPlayerDaemon/MPD/issues/912
2020-06-22util/UriUtil: strip credentials from smb:// URIsMax Kellermann
Closes https://github.com/MusicPlayerDaemon/MPD/issues/910
2020-06-11queue/PlaylistEdit: fix crash in SetSongIdRange() while playingMax Kellermann
An assertion failure in UpdateQueuedSong() could trigger because the `prev` parameter is always `nullptr`, but `queued` may be set. And in fact, calling UpdateQueuedSong() is only necessary when the queued song was edited, to re-queue it with the new range. Closes https://github.com/MusicPlayerDaemon/MPD/issues/901
2020-06-11increment version number to 0.21.25Max Kellermann
2020-06-10release v0.21.24v0.21.24Max Kellermann
2020-06-10lib/curl/Request: don't enable CURLOPT_NETRC on WindowsMax Kellermann
Our Windows build is built with `--disable-netrc`, and that makes CURLOPT_NETRC fail, causing failures with all streams. D'oh! Closes https://github.com/MusicPlayerDaemon/MPD/issues/886
2020-06-10{android,win32}/build.py: enable the GME decoder pluginMax Kellermann
Closes https://github.com/MusicPlayerDaemon/MPD/issues/891
2020-06-10decoder/Bridge: add flag to make initial seek errors fatalMax Kellermann
When the client wants to seek, but the decoder has already finished decoding the current song, the player restarts the decoder with an initial seek at the new position. When this initial seek fails, MPD pretends nothing has happened and plays this song from the start. With this new flag, a restarted decoder marks the initial seek as "essential" and fails the decoder if that seek fails. Closes https://github.com/MusicPlayerDaemon/MPD/issues/895
2020-05-27{android,win32}/build.py: build libmodplug and WildMidiMax Kellermann
Closes https://github.com/MusicPlayerDaemon/MPD/issues/866
2020-05-27decoder/modplug: assume ModPlug is built as static library on WindowsMax Kellermann
2020-05-27decoder/wildmidi: use NarrowPath, fixing the Windows buildMax Kellermann
2020-05-27meson.build: attempt to detect WildMidi using pkg-configMax Kellermann
The WildMidi project added the pkg-config file in version 0.3.3, but unfortunately, Debian still doesn't ship it 4 years later: https://bugs.debian.org/916631 However, for cross-compiling, the pkg-config file is very helpful.
2020-05-27NEWS: move two lines below Windows/AndroidMax Kellermann
2020-05-26meson.build: work around Meson bug detecting strndup() on WindowsMax Kellermann
Work around Meson bug https://github.com/mesonbuild/meson/issues/3672
2020-05-07android/build.py: use -mfpu=vfpv3-d16 on ARMv7Max Kellermann
This flag is used by the Android NDK build scripts as well, and this fixes a build failure (assembler error) with FFmpeg and NDK r21.
2020-05-05db/simple: fix crash when mounting twiceMax Kellermann
The `db->close()` call was a `nullptr` dereference because the `db` variable had already been moved. Closes https://github.com/MusicPlayerDaemon/MPD/issues/839
2020-04-30command/all: "tagtypes" requires no permissionsMax Kellermann
The command is used to configure the client's connection, and this shouldn't require any permissions. The client should be able to do that before sending a password.
2020-04-30Revert "Fix unsafe float comparison."Max Kellermann
This reverts commit a5273d699274c0a6274052bb80fcfdd5c7fac88b. It was wrong and broke the MixRamp unit test. Closes https://github.com/MusicPlayerDaemon/MPD/issues/844
2020-04-29increment version number to 0.21.24Max Kellermann
2020-04-23release v0.21.23v0.21.23Max Kellermann
2020-04-23event/SocketMonitor: handle epoll_ctl()=EBADF/ENOENT in Schedule()Max Kellermann
This fixes a freeze bug in the NFS input/storage plugins: when libnfs auto-reconnets after a failure, it installs the new socket on the same file descriptor number. MPD's attempt to unregister the old socket by calling SocketMonitor::Steal() from NfsConnection::ScheduleSocket() fails because the new/old socket number is not registered in epoll, so epoll_ctl() returns ENOENT. The problem is that it left `scheduled_flags`, and so subsequent Schedule() calls will use `EPOLL_CTL_MOD`, which will fail again and again. Instead, we need to use `EPOLL_CTL_ADD` to register the new socket. Closes https://github.com/MusicPlayerDaemon/MPD/issues/806 Closes https://github.com/MusicPlayerDaemon/MPD/issues/756
2020-04-23lib/nfs/FileReader: set `state=IDLE` before invoking callbackMax Kellermann
Fixes assertion failure if the callback fails.
2020-04-22tag/Fallback: add tag fallback for AlbumSortgeneticdrift
Closes https://github.com/MusicPlayerDaemon/MPD/issues/832
2020-04-22gme: adapt to API change in the upcoming version 0.7.0Max Kellermann
Closes https://github.com/MusicPlayerDaemon/MPD/issues/833
2020-04-22lib/icu/CaseFold: remove Windows implementationMax Kellermann
Reverts commit fb3564fbe76a10a0825bd06c0ff19f481d94b835 LCMapStringEx() doesn't do what I imagined it would do 5 years ago. D'oh! Closes https://github.com/MusicPlayerDaemon/MPD/issues/820
2020-04-15storage/curl: fix path comparison when the server escapes differentlyThomas Guillem
Unescape the base path and the path coming from the server (href) to fix the comparison when the server uses different escaped characters. The outputted name need to be unescaped. Doing that before or after the HrefToEscapedName() call should not change the current behavior.
2020-04-15storage/curl: fix href when file has a '&' charThomas Guillem
If the file name is "Hello & bye", 3 CharacterData events will be sent with the State::HREF state: - "Hello%20" - "&" - "%20bye" Reproduced with files hosted on an apache2 DAV server: 2.4.38-3+deb10u3.
2020-04-15Added missing channel order setups for ALSAFlorian Heese
2020-04-14player/Thread: drain outputs at end of song in "single" modeMax Kellermann
Without this, the Pause() call would drop the ring buffers and would skip a considerable portion of the end of the song. Closes https://github.com/MusicPlayerDaemon/MPD/issues/824
2020-04-14increment version number to 0.21.23Max Kellermann
2020-04-02release v0.21.22v0.21.22Max Kellermann
2020-04-02tag/Pool: enlarge hash tableMax Kellermann
This consumes more memory (plus 48 kB on 32 bit systems), but reduces the number of hash collisions, speeding up MPD startup with large databases.
2020-04-01time/Convert: fix GetTimeZoneOffset() on WindowsMax Kellermann
Was using the wrong parameter.
2020-03-31fs/io/GunzipReader: increase buffer size to 64 kBMax Kellermann
Reduces I/O overhead while reading a compressed database file.
2020-03-26android: add TV supportThomas Guillem
TODO: Not sure the app could be accepted on the play store without a valid banner.
2020-03-26Merge branch 'ucl' of git://github.com/neheb/MPD into v0.21.xMax Kellermann
2020-03-26lib/curl/Request: fix Exception "error" on AndroidThomas Guillem
Apparently, it's not possible to change CURLOPT_NETRC on Android.