Age | Commit message (Collapse) | Author |
|
|
|
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
|
|
|
|
Closes https://github.com/MusicPlayerDaemon/MPD/issues/867
|
|
Fixes memory leak. That's what we get for
|
|
Fixes the first part of
https://github.com/MusicPlayerDaemon/MPD/issues/867
|
|
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
|
|
|
|
Commit
https://github.com/mesonbuild/meson/commit/08224dafcba1b694fb624553e7d84deb565aae22
changed Meson to require BOOST_ROOT for cross builds.
|
|
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
|
|
Closes https://github.com/MusicPlayerDaemon/MPD/issues/910
|
|
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
|
|
|
|
release v0.21.24
|
|
|
|
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
|
|
Closes https://github.com/MusicPlayerDaemon/MPD/issues/891
|
|
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
|
|
|
|
|
|
Closes https://github.com/MusicPlayerDaemon/MPD/issues/866
|
|
|
|
|
|
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.
|
|
|
|
Work around Meson bug https://github.com/mesonbuild/meson/issues/3672
|
|
|
|
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.
|
|
|
|
The `db->close()` call was a `nullptr` dereference because the `db`
variable had already been moved.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/839
|
|
This is the final piece of the series to establish io_uring support on
Linux.
MPD doesn't need io_uring for its efficient bulk I/O support, but to
allow file I/O to be cancelled. This is a big problem on CIFS/NFS
mounts where processes sleep uninterruptable if the file server
disappears, deadlocking MPD.
With io_uring, a flaky NFS connection allows MPD to continue to work
(even though there are still deadlocks inside MPD which need to be
addressed).
This plugin does not yet use cancellable `open()` using
`IORING_OP_OPENAT`. This will be implemented later.
Lots of other optimization opportunities for io_uring are still
missing as well - for example the database update could benefit a lot,
but unfortunately, io_uring doesn't have `readdir()` support just yet.
|
|
|
|
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.
|
|
This reverts commit a5273d699274c0a6274052bb80fcfdd5c7fac88b. It was
wrong and broke the MixRamp unit test.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/844
|
|
|
|
release v0.21.23
|
|
|
|
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
|
|
Fixes assertion failure if the callback fails.
|
|
Closes https://github.com/MusicPlayerDaemon/MPD/issues/832
|
|
Closes https://github.com/MusicPlayerDaemon/MPD/issues/833
|
|
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
|
|
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.
|
|
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.
|
|
|
|
|
|
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
|
|
|
|
release v0.21.22
|
|
|