- 02 Aug, 2019 7 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
Diomendius authored
The JACK output plugin would not correctly upmix mono input files when exactly 2 output ports were configured. This fixes that.
-
Max Kellermann authored
The "end of stream" packet is not special; it contains normal data, and thus we should pass it to OnOggPacket(). This fixes one part of https://github.com/MusicPlayerDaemon/MPD/issues/601
-
Max Kellermann authored
-
- 29 Jul, 2019 4 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
Closes https://github.com/MusicPlayerDaemon/MPD/issues/604
-
Max Kellermann authored
Closes https://github.com/MusicPlayerDaemon/MPD/issues/607
-
Max Kellermann authored
-
- 12 Jul, 2019 2 commits
-
-
Max Kellermann authored
This exception is usually thrown by class DecoderBridge, but the Opus plugin (ab)uses it as well, so we need to catch it.
-
Max Kellermann authored
-
- 03 Jul, 2019 1 commit
-
-
Max Kellermann authored
-
- 28 Jun, 2019 8 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.
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
Draining isn't finished just because the period_buffer has run empty. It is only finished after snd_pcm_drain() has succeeded.
-
Max Kellermann authored
Apparently, if snd_pcm_drain() returns EAGAIN, it does not actually want to be called again; the next call will snd_pcm_drain() will also return EAGAIN, forever, even though the PCM state has meanwhile switched to SND_PCM_STATE_SETUP. This causes a busy loop; to fix this, we should always check snd_pcm_state() to see if draining is really required.
-
- 26 Jun, 2019 7 commits
-
-
-
Max Kellermann authored
Fix build breakage from commit ea639269
-
Max Kellermann authored
-
Max Kellermann authored
Closes https://github.com/MusicPlayerDaemon/MPD/issues/589
-
Max Kellermann authored
This makes the configuration error more visible, possibly addressing one part of https://github.com/MusicPlayerDaemon/MPD/issues/589
-
Max Kellermann authored
-
Max Kellermann authored
-
- 18 Jun, 2019 1 commit
-
-
Max Kellermann authored
Commit 1eae9339 added support for multiple "groups" in the "list" command, and this change allows clients to detect that this behavior, which had been documented for several years, is now implemented properly.
-
- 17 Jun, 2019 3 commits
-
-
Max Kellermann authored
Workaround for a regression caused by commit a06bf388, revealing a problem with discarding odd numer of frames in the DSD_U32 and DoP converters, causing distortions with DSD_U32 and DoP on 32 bit CPUs. Closes https://github.com/MusicPlayerDaemon/MPD/issues/469
-
Max Kellermann authored
This can happen if the DoP converter doesn't get enough source samples for one destination quad. This isn't a critical bug, because the OSS plugin doesn't support DoP yet, but it's good to be prepared.
-
Max Kellermann authored
-
- 16 Jun, 2019 1 commit
-
-
Max Kellermann authored
Instead of passing tag and group, pass an array of tags. To support a nested return value, return a nested std::map of std::maps. Each key specifies the tag value, and each value may be another nesting level. Closes https://github.com/MusicPlayerDaemon/MPD/issues/408
-
- 11 Jun, 2019 2 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
-
- 05 Jun, 2019 4 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
Since we now don't duplicate all items, we can easily remove the 64kB limit from OpusReader::ReadString() and instead silently ignore and skip all strings which are longer than 4 kB. This fixes a tag duplication bug with Opus file containing a very long `METADATA_BLOCK_PICTURE` tag, which occurred because the Opus plugin returned false after parsing all tags, and then the MPD core fell back to FFmpeg which scanned the tags again.
-
cathugger authored
Return `404 not found` for some common well-known paths, as clients requesting them usually do that automatically and don't expect endless audio stram. Closes #572
-
cathugger authored
memcmp use may result in out of bounds access
-