- 06 Jul, 2018 4 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
Meanwhile, GCC 5 fails to compile MPD due to incomplete C++14 implementation.
-
Max Kellermann authored
-
Max Kellermann authored
This code was added in 21851c06 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
-
- 22 Jun, 2018 1 commit
-
-
Max Kellermann authored
For remote files (not streams), this downloads as quickly as possible to a large buffer instead of throttling the stream during playback. Throttling can make the server impatient and it may then disconnect. This is what Qobuz and Tidal do, and this commit attempts to solve this by not letting the Qobuz/Tidal server wait (closes #241).
-
- 28 May, 2018 3 commits
-
-
Max Kellermann authored
Closes #284
-
Max Kellermann authored
Closes #283
-
Max Kellermann authored
-
- 22 May, 2018 1 commit
-
-
Max Kellermann authored
-
- 12 May, 2018 2 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
This mostly affects the Pulse output plugin which needs to "cork" the stream (closes #278).
-
- 07 May, 2018 2 commits
-
-
Michal Koutenský authored
-
Max Kellermann authored
Closes #277
-
- 03 May, 2018 1 commit
-
-
Max Kellermann authored
These are used by DSD-streaming servers. For example, MiniDLNA uses "audio/x-dsd".
-
- 30 Apr, 2018 2 commits
-
-
Max Kellermann authored
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 386688b8
-
Max Kellermann authored
-
- 26 Apr, 2018 3 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
Closes #258
-
Max Kellermann authored
Fixes "search already in progress" errors.
-
- 25 Apr, 2018 2 commits
-
-
Max Kellermann authored
av_register_all() was deprecated in FFmpeg/FFmpeg@0694d8702421e7aff1340038559c438b61bb30dd
-
Max Kellermann authored
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".
-
- 15 Mar, 2018 1 commit
-
-
Max Kellermann authored
Fixes crash due to "pure virtual method called" in the "mms" input plugin. Closes #253
-
- 14 Mar, 2018 1 commit
-
-
Max Kellermann authored
Without setting the "ready" flag, the caller will wait in WaitReady() forever, locking up MPD. Closes #252
-
- 04 Mar, 2018 3 commits
-
-
Max Kellermann authored
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.
-
Christian Kröner authored
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.
-
Max Kellermann authored
-
- 26 Feb, 2018 1 commit
-
-
Christian Kröner authored
From: Christian Kröner <ckroener@gmx.net> This just copies the necessary bits and pieces from the ALSA plugin and applies them to OSXOutput based on dop config setting. It only changes the OSXOutput plugin as needed for DoP (further changes to support additionally e.g. integer mode or setting the physical device mode require rather a complete rewrite of the output plugin). Fortunately the Core Audio API is by default bit perfect and supports DoP with minimal changes (setting the sampling rate accordingly after ensuring that the physical mode supports at least 24 bits per channel seems to be enough). This was tested on an Amanero Combo384 device hooked up to a ES9018 DAC. USAGE (try only on DACs that support DoP): - Add dop "yes" option to mpdconf - Be sure to set at least 24bits per channel before playing some DSD file (using Audio-MIDI-Setup) - Based on the dop setting, MPD will change the sample rate as required and output DoP signal to the DAC - Hog mode is recommended to ensure that no other program will try to mix some output with the DoP stream (resulting in bad noise) - Alternatively set the default output device to another device (e.g. the built-in output) to avoid having other audio interfere with DSD playback
-
- 25 Feb, 2018 2 commits
-
-
cathugger authored
support for chaining ogg opus streams to enable changing stream' metadata on the fly. currently support is opt-in (enabled by additional option) because lots of clients can't handle this properly yet.
-
Patryk Hachuła authored
-
- 24 Feb, 2018 3 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
Now that all build failures have been fixed, we can enable the feature.
-
tpoeiras authored
-
- 20 Feb, 2018 1 commit
-
-
Max Kellermann authored
Enable the NFS storage plugin on Android. Closes #226
-
- 17 Feb, 2018 3 commits
-
-
Max Kellermann authored
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
-
Max Kellermann authored
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
-
Max Kellermann authored
-
- 12 Feb, 2018 1 commit
-
-
Max Kellermann authored
-
- 11 Feb, 2018 1 commit
-
-
Max Kellermann authored
-
- 10 Feb, 2018 1 commit
-
-
Max Kellermann authored
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
-
- 09 Feb, 2018 1 commit
-
-
Max Kellermann authored
Closes #213.
-