- 06 Nov, 2019 1 commit
-
-
Max Kellermann authored
Apparently, Icecast defaults to ISO-8859-1 for MP3: http://icecast.org/docs/icecast-2.4.0/config-file.html#mountsettings This change forces Icecast to UTF-8 without having to configure it in Icecast's configuration file.
-
- 29 Oct, 2019 1 commit
-
-
Niklas Haas authored
This is the correct thing to do for ports from which a signal ultimately "originates", such as is the case with mpd.
-
- 26 Sep, 2019 3 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
- 27 Aug, 2019 2 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
-
- 22 Aug, 2019 1 commit
-
-
Max Kellermann authored
This header had been available for a long time on Linux, but was removed in glibc 2.30. This commit moves the `#include` line inside the `#ifdef __sun` block and adds a fake declaration of `I_FLUSH` for the Linux build. Closes https://github.com/MusicPlayerDaemon/MPD/issues/630
-
- 21 Aug, 2019 1 commit
-
-
Max Kellermann authored
-
- 13 Aug, 2019 1 commit
-
-
Max Kellermann authored
-
- 06 Aug, 2019 3 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
Without this, the compiler may optimize accesses away.
-
Max Kellermann authored
-
- 05 Aug, 2019 5 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
- 04 Aug, 2019 3 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
Without this, the compiler may optimize accesses away.
-
Max Kellermann authored
-
- 03 Aug, 2019 3 commits
-
-
Max Kellermann authored
-
ckdo authored
This is useful in multiple mpd instances scenario, or multiple pulse outputs defined on the same mpd instance. It is actually a more flexible way to route flows than the "sink" parameter, letting the PulseAudio routing do its job, but with the ability to isolate routing for each output. If not specified, the role remains like it was before this commit, ie "music"
-
Richard Dodd authored
-
- 02 Aug, 2019 1 commit
-
-
Diomendius authored
The JACK output plugin would not correctly upmix mono input files when exactly 2 output ports were configured. This fixes that.
-
- 30 Jul, 2019 1 commit
-
-
Max Kellermann authored
Applying software volume to S16 samples means several bits of precision are lost; at 25% volume, two bits are lost. Additionally, dithering adds some noise. The problem gets worse when you apply the software volume code twice: for the software mixer volume, and again for the replay gain. This loses some more precision and adds even more dithering noise, which can become audible (see https://github.com/MusicPlayerDaemon/MPD/issues/542). By converting everything to 24 bit, we need to shift only two bits to the right instead of ten, losing nearly no precision, and dithering is not needed. Even if the output device is unable to play S24 directly, we can convert back to S16 with only one stage of dithering. Closes https://github.com/MusicPlayerDaemon/MPD/issues/542
-
- 12 Jul, 2019 1 commit
-
-
Max Kellermann authored
-
- 08 Jul, 2019 1 commit
-
-
Max Kellermann authored
Just in case.
-
- 05 Jul, 2019 1 commit
-
-
Max Kellermann authored
-
- 04 Jul, 2019 5 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
It's not a tri-state anymore since we introduced C++ exceptions.
-
Max Kellermann authored
-
Max Kellermann authored
Pass only the amount of data to PcmExport::Export() when its full output fits into the ring buffer. Using only a part of the PcmExport::Export() result may cause data corruption because PcmExport's internal state may contain partial blocks which would need to be rolled back when only some of its output data was used. As a side effect, this fixes an assertion failure because PcmExport::CalcInputSize() considered partial block data and could cause Play() to return a number larger than the "size" parameter.
-
Max Kellermann authored
If snd_pcm_writei() fails, throw an error and stop playback instead of going into an endless busy loop.
-
- 03 Jul, 2019 3 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
- 28 Jun, 2019 3 commits
-
-
Max Kellermann authored
MPD used to do that when this code lived in the player thread, but it was removed by commit 98a7c62d; and the replacement code in the ALSA output plugin didn't have it.
-
Max Kellermann authored
Without this timer, DispatchSockets() may disable the MultiSocketMonitor and if Play() doesn't get called soon, it never gets a chance to generate silence. However if Play() gets called, generating silence isn't necessary anymore... Resulting from this misdesign (added by commit ccafe3f3 in 0.21.3), the silence generator didn't work reliably.
-
Max Kellermann authored
In DispatchSockets(), when there was not enough data, but enough for current playback, the method would disable the "active" flag so the next Play() call would re-enable the MultiSocketMonitor. This was an abuse of the flag which could result in a crash in Cancel(), because that method asserts that the period_buffer is empty, which it may be not. The solution is to add anther flag called "waiting" which shares some behavior with the old flag.
-