Max Kellermann
17562dc90b
output/pipewire: remove misplaced noexcept
2021-10-20 09:41:27 +02:00
Max Kellermann
7b24316734
output/pipewire: fix coding style
2021-10-20 09:41:10 +02:00
Max Kellermann
eb111a10e7
output/pipewire: remove redundant prefix and newline from log message
2021-10-19 14:38:37 +02:00
Nicolai Syvertsen
5ccf78855d
Implement SendTag for PipeWire output plugin
2021-10-19 14:31:40 +02:00
Max Kellermann
aa9933c0b5
output/pipewire: add noexcept
2021-10-19 08:58:50 +02:00
Max Kellermann
0697d1f859
output/pipewire: include cleanup
2021-10-19 08:57:33 +02:00
Nicolai Syvertsen
b941a7df83
Implement volume updates for pipewire output
2021-10-19 00:01:45 +02:00
Max Kellermann
d5be8c74b0
output/pipewire: attempt to change the graph sample rate
...
Requires PipeWire 0.3.32.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1283
2021-10-18 16:46:23 +02:00
Max Kellermann
57a1403f08
output/pipewire: implement Delay(), fix busy loop while paused
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1265
2021-09-24 11:33:35 +02:00
Max Kellermann
bad3283182
output/pipewire: add flag "active", replaces some uses of "paused"
...
This way, we know whether we're explicitly "paused" or "not yet
activated because the ring buffer hasn't been filled yet".
2021-09-24 11:33:30 +02:00
Max Kellermann
0dacde32f2
output/pipewire: append output name to PW node name
2021-08-10 11:30:25 +02:00
Max Kellermann
528e05f025
output/pipewire: add config option "remote"
2021-08-10 11:28:29 +02:00
Max Kellermann
269583f5dd
output/pipewire: allow specifying a target by its name
2021-08-10 11:17:16 +02:00
Max Kellermann
7c9f4f7e4f
output/pipewire: create inactive stream, fill ring_buffer first
...
This avoids underruns at the start of playback.
2021-08-10 10:50:42 +02:00
Max Kellermann
00fd692eba
output/pipewire: wait for buffer to fill before resuming
2021-08-10 10:48:25 +02:00
Max Kellermann
668c3782b2
output/pipewire: smaller ring buffer, 500ms should be enough
2021-08-10 10:43:56 +02:00
Max Kellermann
1e0af2dadf
output/pipewire: add type alias for boost::lockfree::spsc_queue
2021-08-10 10:43:54 +02:00
Max Kellermann
4ea2ea2a52
output/pipewire: update nbytes
after calling PcmSilence()
...
This was missing in commit 8a243e6e28
2021-08-10 10:43:28 +02:00
Max Kellermann
8a243e6e28
output/pipewire: call pw_stream_flush() only if really draining
...
If draining was not requested, generate silence instead if there is no
data in the ring buffer.
The problem is that pw_stream_flush() appears to disable the stream
permanently, even though there is no state_changed callback - the
stream state remains at PW_STREAM_STATE_STREAMING, but the stream is
defunct. I have no idea why and I havn't found any documentation
about it.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1219
2021-08-10 06:30:58 +02:00
Max Kellermann
d33aa01000
output/pipewire: reset the "paused" flag
...
This was missing in commit 4d1ce7023b
2021-08-09 19:31:22 +02:00
Max Kellermann
968624035c
mixer/pipewire: new plugin
2021-08-05 10:57:37 +02:00
Max Kellermann
b838bf3109
output/pipewire: un-inline StateChanged()
2021-08-05 10:48:17 +02:00
Max Kellermann
4d1ce7023b
output/pipewire: implement Pause()
2021-08-04 17:26:54 +02:00
Max Kellermann
52577ac87a
output/pipewire: implement Cancel() properly
2021-08-04 17:24:49 +02:00
Max Kellermann
239698cb5a
output/pipewire: set channel positions
2021-07-30 15:55:37 +02:00
Max Kellermann
e55de6e9f0
output/pipewire: implement Drain()
2021-07-30 15:28:01 +02:00
Max Kellermann
cfaf2ed03c
output/pipewire: move code to CheckThrowError()
2021-07-30 15:24:20 +02:00
Max Kellermann
6015960871
output/pipewire: reset the "interrupted" flag in Cancel()
...
This fixes seeking.
2021-07-30 15:20:32 +02:00
Max Kellermann
26328cc915
output/pipewire: detect connection errors
2021-07-30 14:31:06 +02:00
Max Kellermann
cd512f0b40
output/pipewire: replace usleep() with with pw_thread_loop_wait()
2021-07-30 14:31:04 +02:00
Max Kellermann
be14dd59a8
output/pipewire: remove obsolete TODO comment
2021-07-30 13:50:55 +02:00
Max Kellermann
97e5787ff7
output/pipewire: call libpipewire only while holding the lock
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1210
2021-07-30 13:49:22 +02:00
Max Kellermann
6975d3ca4b
output/pipewire: switch from pw_main_loop to pw_thread_loop
...
We need this for pw_thread_loop_lock().
2021-07-30 13:42:59 +02:00
Max Kellermann
4f75eb9bfe
output/pipewire: remove unreachable "return" statement
2021-05-26 11:57:57 +02:00
Max Kellermann
428f769c38
output/pipewire: new output plugin
...
Very rough draft. Barely works.
2021-03-03 18:44:39 +01:00