Wim Taymans
1ae4374ccf
Fix compilation with -Werror=float-conversion
...
Better make the conversions explicit so that we don't get any surprises.
Fixes #4065
2024-06-18 12:17:56 +02:00
Wim Taymans
78fbe6f750
protocol-simple: add per stream properties and formats
...
Add capture.props and playback.props to configure the created streams
with arbitrary properties.
Improve format parsing, make it possible to have different formats peer
stream.
Improve some of the property handling.
This can now also be used to upload a stream to a snapcast server, add
an example of this to the docs.
2024-05-14 17:30:05 +02:00
Wim Taymans
c3d4abd7f1
modules: use acquire/release loop
...
Expose the acquire_loop/release_loop functions and use them in the
modules.
Make sure the nodes created from the module use the same data loop as
the module. We need to ensure this because otherwise, the nodes might
be scheduled on different data loops and the invoke or timer logic will
fail.
2024-04-22 16:19:02 +02:00
Wim Taymans
d7e48f3042
module-pipe: resync when ringbuffer too full
...
When the ringbuffer has too much data, do a resync or else we would just
have a huge delay and would try to resample to get back to the target
fill level.
2024-02-01 16:00:25 +01:00
Wim Taymans
0bc7f3f48c
module-pipe: warn underrun only once
2024-02-01 16:00:25 +01:00
Wim Taymans
6045ce87b1
module-pipe-tunnel: avoid bitfield data race
...
Move the have_sync bitfield away from the other bitfields because they
are written from different threads and might cause a data race.
Fixes #3706
2023-12-13 12:48:51 +01:00
Pauli Virtanen
fdcb02ed75
modules: add Module Name section to the module reference docs
2023-11-20 08:41:13 +00:00
Pauli Virtanen
eca773fc12
modules: strip "PipeWire Module:" from Doxygen page name
...
Make them appear nicer in the output.
2023-11-19 16:39:15 +00:00
Wim Taymans
0278695e7d
modules: add tunnel.may-pause option for pipe-tunnel
...
To override the default may-pause behaviour of streams.
2023-11-15 13:02:08 +01:00
Wim Taymans
63385cedd0
modules: add pause support for pipe-tunnel
...
Streams are allowed to pause/resume when the pipe xruns.
Wait for IO_IN or IO_OUT when the ringbuffer xruns to resume playback or
capture.
Fixes #3197
2023-11-15 12:52:10 +01:00
Samuel Thibault
5aefb1f9f4
module-pipe-tunnel.c: Include <sys/uio.h> to get struct iovec
2023-09-24 15:11:52 +00:00
Wim Taymans
9f30e58ef2
pipe-tunnel: support pipe-source as a driver
...
Use a timer to periodically schedule the pipe-source when configured
as a driver. Adjust the timeout period based on buffer fill levels.
Fixes #3478
2023-08-31 11:41:00 +02:00
Wim Taymans
9f66c42d1f
pipe-tunnel: rework the source
...
Let the source write into a ringbuffer when there is data available.
We then read from the ringbuffer when scheduled and use a dll to keep
the delay constant. We can later make this a driver and use the rate
correction to tweak the timeouts instead of resampling.
See #3478
2023-08-30 18:41:19 +02:00
Wim Taymans
43e2978255
module-pipe: reword docs from the perspective of the module
2023-05-07 20:53:04 +02:00
Harri Nieminen
4323a8ad4a
module-pipe-tunnel: remove extra whitespace
2023-03-28 13:36:16 +00:00
Wim Taymans
07e6f44e58
modules: clean up USAGE arguments
...
use () to mark optional arguments to avoid confusion with arrays.
Add some more optional arguments.
2023-03-22 16:35:55 +01:00
Barnabás Pőcze
934ab3036e
treewide: use SPDX tags to specify copyright information
...
SPDX tags make the licensing information easy to understand and clear,
and they are machine parseable.
See https://spdx.dev for more information.
2023-02-16 10:54:48 +00:00
Wim Taymans
164e343dbf
remove pipewire/private.h includes when possible
...
In many places this is not needed.
Expose pw_impl_node_set_param() for adapter.
2023-01-20 16:08:38 +01:00
Wim Taymans
d11fb766c6
module-pipe: improve properties on nodes
...
Actually move the stream properties in stream.props object for the pipe
tunnel module.
Set pipe.filename on the node. Remap this to device.string in pulse.
Add some more default properties on the pipe nodes.
See #2973
2023-01-19 11:05:54 +01:00
Wim Taymans
f472fd736d
fix includes
...
Only include debug we need. We usually only need the debug types.
2023-01-18 13:12:16 +01:00
Wim Taymans
2254c74fb9
use TARGET_OBJECT instead of the deprecated NODE_TARGET
...
Clarify the docs.
2023-01-10 16:51:47 +01:00
Ashok Sidipotu
f383956b7b
module-pipe-tunnel: Update the description of the module.
2022-10-28 07:07:43 +00:00
Ashok Sidipotu
315b2d1ad5
module-pipe-tunnel: Initialize the target.node property
...
Initialize the PW_KEY_TARGET_OBJECT property on the stream node based on the
user config.
2022-10-28 07:07:43 +00:00
Wim Taymans
de65fd442f
modules: use TARGET_OBJECT instead of NODE_TARGET
2022-07-11 13:52:35 +02:00
Wim Taymans
60cbc44526
modules: improve docs
2022-06-23 12:48:45 +02:00
Wim Taymans
c8b8b24a9c
modules: fix format parsing
...
Use the same logic for parsing the format.
2022-06-23 12:39:51 +02:00
Barnabás Pőcze
84c01bb0bc
pipewire: module-pipe-tunnel: accept file descriptor 0
...
As Coverity points out, `open()` returning 0 is not an error,
it should be handled just like any other valid file descriptor.
2022-06-16 17:55:59 +02:00
Wim Taymans
0f839c7b61
modules: clamp input offset and size
...
So that we don't cause memory errors with invalid input.
2022-06-04 11:47:48 +02:00
Wim Taymans
6276253c30
pulse-server: implement pipe sink/source with module
2022-06-03 11:51:29 +02:00
Wim Taymans
fe1652e843
modules: add more docs and options to pipe-tunnel
2022-06-03 10:52:45 +02:00
Wim Taymans
af41d45e1a
modules: add pipe tunnel
2022-06-03 10:52:45 +02:00