Age | Commit message (Collapse) | Author |
|
|
|
This way, IsFileNotFound() can detect status 404.
|
|
Supports .mpdignore on NFS/SMB and others (closes #290).
|
|
Allows callers to extract the NFS error code.
|
|
|
|
|
|
|
|
|
|
See commit be137a191e5bb12f44e5c51205b2e5f86ef7117c
|
|
Since 7d353bbe2a70cd7894b1f5954a37e4a07890478d, _GNU_SOURCE is always
defined, which implies __USE_MINGW_ANSI_STDIO and thus switches to
the mingw implementations of the printf() family. That's
standards-compliant, unlike Microsoft's CRT implementations.
|
|
|
|
|
|
This code was added in 21851c06733080b4c131d553d5d1f8784c12410f but
looks completely broken:
- the status code is "206 OK" but "206" would be "Partial Content"
- the "Content-Length" header has a bogus value
- the "Content-RangeX" parameter has different bogus values (why
"Content-RangeX" anyway and not "Content-Range"?)
Apart from that, there are strange undocumented non-standard headers
which are probably there to work around bugs/expectations in one
broken proprietary client product. But these days, MPD doesn't bend
over to support broken clients. So let's kill this code.
Closes #304
|
|
Closes #284
|
|
Closes #283
|
|
This mostly affects the Pulse output plugin which needs to "cork" the
stream (closes #278).
|
|
|
|
Closes #277
|
|
These are used by DSD-streaming servers. For example, MiniDLNA uses
"audio/x-dsd".
|
|
|
|
Error message sent to client was "basic_string::_M_construct null not
valid" due to passing nullptr to the std::string constructor.
Regression caused by commit 386688b87ac
|
|
Closes #258
|
|
Fixes "search already in progress" errors.
|
|
av_register_all() was deprecated in
FFmpeg/FFmpeg@0694d8702421e7aff1340038559c438b61bb30dd
|
|
When switching to another song manually, the player checks if the
decoder is already decoding that song; if so, it will attempt to reuse
it by seeking it to the new position. That however fails if the
decoder is not seekable (e.g. a radio stream) which leaves the user
unable to switch to that song with the bogus error message "Not
seekable".
|
|
There was a discrepancy between what was written to the buffer and the
size returned by pcm_dsd_to_dop(): the "for" loop uses num_frames/2,
rounding down, while the return value is num_samples which is
num_frames*channels, without rounding. This could cause undefined
data at the end of the destination buffer if the source buffer size
was not aligned to multiples of 8 bytes (4 DSD bytes per channel).
The latter however can occur in the 0.21 branch after commit
a06bf388d96
Closes #233
|
|
|
|
Fixes crash due to "pure virtual method called" in the "mms" input
plugin. Closes #253
|
|
Without setting the "ready" flag, the caller will wait in WaitReady()
forever, locking up MPD. Closes #252
|
|
Instead of stopping playback (due to seek time overflow), reject the
seek command. Closes #240
Relative negative values (with "seekcur") are still allowed, and MPD
will fix the resulting position if it turns out to be negative. But
the "seek" and "seekid" commands use an unsigned time stamp which must
not be negative.
|
|
With Grand Central Dispatch used in Main.cxx, debug builds on macOS
crash as the IsInside() assertion gets triggered in the event loop. As
a simple fix, usage of GCD is removed. Plugging and unplugging
headphones or changes of the default output device was tested without
issues. Whatever the original commit tried to fix by GCD probably does
not need fixing anymore.
|
|
|
|
|
|
Fixes two build failures with libnfs on Windows.
|
|
|
|
It indeed is a macro on Windows.
|
|
|
|
than basic.
|
|
Instead of setting state=IGNORE_TRACK, ignore only the following
"INDEX" lines.
Correction for commit 8461d71b520. Closes #227
|
|
This addresses two problems:
1. the libFLAC write callback had to send an error status to its
caller when SubmitData() returned a command; this disrupted libFLAC
and the resulting command could not be used for anything;
2. the libFLAC function FLAC__stream_decoder_seek_absolute() also
calls the write callback, but its result cannot be used, because
seeking is still in progress, so we lose all data from one FLAC frame.
By moving the SubmitData() call until after CommandFinished(), we
avoid losing this data. This fixes another part of #113
|
|
See code comment.
|
|
|
|
Instead of passing whole chunks to the MusicPipe and checking the
end_time after each chunk, truncate the last chunk if it would exceed
the end_time. This requires keeping track of the absolute PCM frame
number.
This fixes a problem with gapless CUE song transitions: a small part
of the following song was always played twice.
Closes #113
|
|
it was uninitialized before
|
|
Due to rounding errors, a slightly negative value can be passed to
set_normalized_volume(), which will make the log10() call fail.
Actually, volume 0 is already failing because log10(0) is illegal. So
let's fix this by implementing two corner cases: <=0 and >=100.
Closes #212
|
|
Not needed on Android, and the implementation uses getpwuid_r() which
is unavailable on old Android versions.
|
|
|
|
Requires Android API 21, but we want to support older versions as
well.
|
|
For Android pre-5.0 compatibility (#213).
|
|
|