- 12 Jul, 2022 1 commit
-
-
guihkx authored
Closes #1564
-
- 08 Jul, 2022 16 commits
-
-
Max Kellermann authored
Deactivate the stream in Cancel(). This fixes stuttering after a manual song change by refilling the whole ring buffer before reactivating the stream. Closes https://github.com/MusicPlayerDaemon/MPD/issues/1354
-
Max Kellermann authored
Clear not only MPD's ring buffer, but also libpipewire's buffers, to avoid playing some audio from the previous song after a manual song change. Fixes part 1 of https://github.com/MusicPlayerDaemon/MPD/issues/1354
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
Removing the LockHasClients(); this code was copied from the "httpd" output plugin, but unlike "httpd", the SnapCast output plugin does not feed silence while paused, so we need to implement a delay to avoid busy-looping the CPU. As a side effect, this eliminates the suttering after resuming playback, because the timer now gets reset even if there is a client. Closes https://github.com/MusicPlayerDaemon/MPD/issues/1394
-
Max Kellermann authored
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1484
-
Max Kellermann authored
After connecting, PipeWire sometimes sends SPA_PROP_channelVolumes with no values, and this led to "volume=-NaN".
-
Max Kellermann authored
Since PipeWire 0.3.53, there is no control name anymore, therefore the name check doesn't work anymore, breaking volume change events. This obsoletes the crash bug fix in commit 2ee57f9b
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
Fixes a potential crash bug.
-
Max Kellermann authored
This is a lower-level function without some of the clutter of PipeWireOutput::SetVolume() which is not needed in that case.
-
Max Kellermann authored
-
Max Kellermann authored
If the PipeWire output has not yet been enabled and no thread_loop has been created yet, a nullptr dereference in SetVolume() was possible because nullptr was passed to pw_thread_loop_lock().
-
- 04 Jul, 2022 1 commit
-
-
Max Kellermann authored
Since PipeWire 0.3.53, control names can apparently be nulled, leading to crashes in applications assertion that the string cannot be nullptr. Closes https://github.com/MusicPlayerDaemon/MPD/issues/1558
-
- 24 May, 2022 1 commit
-
-
Dave Hocker authored
-
- 26 Apr, 2022 9 commits
-
-
Max Kellermann authored
Even if the "wave_encoder" option is disabled (and no other encoder plugins are enabled), forcefully enable the Wave encoder (if Snapcast is enabled). Closes https://github.com/MusicPlayerDaemon/MPD/issues/1500
-
Arsen Arsenović authored
Previous versions of MPD would, on parameter change, set the PipeWire volume before clearing the restore_volume flag, causing the call to short circuit and do nothing. Instead, clear the flag before the call.
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
This version was released 7 years ago, and it's reasonable to require at least this version.
-
Max Kellermann authored
-
Max Kellermann authored
Fixes -Wunused-result
-
- 14 Mar, 2022 1 commit
-
-
Richard Schorrig authored
Wasapi output plugin won't start playing after being paused The cause is that the scope guard in the WASAPI work thread (WasapiOutputPlugin.cxx, function WasapiOutputThread::Work(), in the while (true) loop) is set up too 'late' in the execution. There is one condition ("if (data_in_frames >= buffer_size_in_frames)") when it is hit, the loop will continue without executing the scope guard. This scope guard is responsible for emptying the buffer again, and if the buffer is not emptied, the above mentioned condition will stay true. Closes https://github.com/MusicPlayerDaemon/MPD/issues/1451
-
- 09 Mar, 2022 1 commit
-
-
Max Kellermann authored
Must be initialized for the check in SetVolume().
-
- 03 Dec, 2021 1 commit
-
-
Max Kellermann authored
-
- 26 Nov, 2021 1 commit
-
-
Rosen Penev authored
Signed-off-by:
Rosen Penev <rosenp@gmail.com>
-
- 23 Nov, 2021 1 commit
-
-
Rosen Penev authored
Signed-off-by:
Rosen Penev <rosenp@gmail.com>
-
- 12 Nov, 2021 3 commits
-
-
Rosen Penev authored
Signed-off-by:
Rosen Penev <rosenp@gmail.com>
-
Rosen Penev authored
Signed-off-by:
Rosen Penev <rosenp@gmail.com>
-
Rosen Penev authored
SonarLint reports the latter to be better: std::scoped_lock basically provides the same feature as std::lock_guard, but is more generic: It can lock several mutexes at the same time, with a deadlock prevention mechanism (see {rule:cpp:S5524}). The equivalent code to perform simultaneous locking with std::lock_guard is significantly more complex. Therefore, it is simpler to use std::scoped_lock all the time, even when locking only one mutex (there will be no performance impact). Signed-off-by:
Rosen Penev <rosenp@gmail.com>
-
- 11 Nov, 2021 1 commit
-
-
Rosen Penev authored
C arrays can be used with make_unique in C++17. Signed-off-by:
Rosen Penev <rosenp@gmail.com>
-
- 10 Nov, 2021 1 commit
-
-
0xC0ncord authored
This fixes this build error observed with clang and -stdlib=libc++: ../mpd-0.23.3/src/output/plugins/PipeWireOutputPlugin.cxx:661:55: error: implicit instantiation of undefined template 'std::array<std::byte, 64>' std::array<std::byte, MAX_CHANNELS * MAX_INTERLEAVE> buffer; ^ /usr/include/c++/v1/__tuple:219:64: note: template is declared here template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array; ^
-
- 04 Nov, 2021 2 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
-