Dmitry Sharshakov
57985e5aea
module-rtp-sap: set source-filter up
...
Might enhance support for some devices or otherwise useful.
Co-authored-by: Dewi Seignard <dewiweb@gmail.com>
2023-12-20 09:35:22 +00:00
Dmitry Sharshakov
caabc074c8
module-rtp-session: remove outdated FIXME
...
rtp-sink already handles DSCP and uses profile 41 by default
2023-12-20 09:35:22 +00:00
Dmitry Sharshakov
eab90d6029
module-rtp-sap: allow overriding NTP value
...
It seems like most devices use value 0 there, so for further enhanced compatibility it's preferred to do so as well
2023-12-20 09:35:22 +00:00
Dmitry Sharshakov
065e819f18
TODO: module-rtp: buffering for sender
...
This should be done to match packet size requirements (e.g. 1 ms) while allowing user's software to run at higher buffer size to not stutter.
This will require scheduling multiple rtp_audio_flush_packets calls per one rtp_audio_process_capture call
2023-12-20 09:35:22 +00:00
Dmitry Sharshakov
066e8e1c63
module-rtp-sap: add a way to add extra attributes to SDP
...
Useful for new device bringup without rebuilding PW
2023-12-20 09:35:22 +00:00
Dmitry Sharshakov
1fe6feac56
module-rtp: improve logging priorities
...
Previous state was useless for real debug at the current implementation level
2023-12-20 09:35:22 +00:00
Dmitry Sharshakov
c75f6219dc
module-rtp-sap: add notices about different channelmap formats used by different hw
2023-12-20 09:35:22 +00:00
Dmitry Sharshakov
873e6119b8
module-rtp: handle framecount attribute
2023-12-20 09:35:22 +00:00
Dmitry Sharshakov
2525a99b97
module-rtp-sap: parse ptime from incoming streams
2023-12-20 09:35:22 +00:00
Dmitry Sharshakov
6a64ec8b8f
module-rtp-sap: send out a default channelmap if none specified
...
RAVENNA devices (at least Lawo) seem to error out on streams without this property
Co-authored-by: Dewi Seignard <dewiweb@gmail.com>
2023-12-20 09:35:22 +00:00
Dmitry Sharshakov
533161a766
module-rtp: add framecount to the SDP
...
Required for RAVENNA hardware.
Co-authored-by: Dewi Seignard <dewiweb@gmail.com>
2023-12-20 09:35:22 +00:00
Duncan Overbruck
fffda6b6d1
pulse-server: fill in active port for monitors
...
The monitor sources also list the port of the sink and so the active
port needs to be collected as well so it doesn't fall back to the first
port (which might not be available).
2023-12-20 10:15:06 +01:00
Mark Gallagher
bd87902da6
Add a build option to specify whether pulse gsettings schema should be installed
2023-12-16 21:10:00 +01:00
Mark Gallagher
ee42a6868d
Add pulseaudio gsettings schema
2023-12-16 21:09:17 +01:00
Wim Taymans
06d6551cc1
pulse-server: handle errors in echo-cancel geometry
...
Check for errors when loading the geometry instead of silently failing.
The points need to be given in the user locale and so might fail to
parse when given in JSON format.
Format the geometry nicely when loading the module.
2023-12-14 12:16:29 +01:00
Wim Taymans
5e750f6fb8
modules: place floats in properties in JSON format
...
Using %f will result in a locale dependent format and might not parse
with JSON parsers or even our own spa_atof() function.
2023-12-14 11:50:30 +01:00
Christian Glombek
c386c96ff0
module-raop-discover: Skip tunnel creation for link-local addresses
...
Some Apple devices will advertise their link-local address via mDNS.
Ignore these mDNS entries.
2023-12-14 10:14:33 +00:00
Christian Glombek
c0f018e0f4
module-raop-sink: Destroy module on RTSP error
...
Avoid continuation of the stream on error more rigorously.
2023-12-14 10:14:33 +00:00
Christian Glombek
dc82bc5086
module-raop-discover: Remove unused raop.ip.version prop
...
Some AirPlay devices will announce their IPv4 addresses
over IPv6 mDNS if both are available, so the determined
IP version was not reliable.
The prop is not used by module-raop-sink, so its
removal should be safe.
2023-12-14 10:14:33 +00: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
Wim Taymans
e4d6cca32a
raop: use default 1500ms latency again
...
Use 1500ms as the default latency and use the raop.latency.ms to
configure a smaller value.
Fixes #3605
2023-12-11 16:33:51 +01:00
Wim Taymans
cda2522384
raop: add option back to set custom latency
2023-12-11 16:10:06 +01:00
Wim Taymans
ae045ef3f6
raop: use 1500ms of latency as fallback
...
The Pro Link 1 replies with Audio-latency=0, patch that up to
1500ms to make it work again.
Previously it configured 1500ms as the default latency but that seems
unnecessary in the usual case.
Fixes #3698
2023-12-11 16:07:57 +01:00
Wim Taymans
971bc8a249
modules: make sure we don't overrun our array
...
Limit the max number of params to 512 and make sure we don't collect
more.
2023-12-11 12:53:40 +01:00
Wim Taymans
6cda416e71
modules: always add the Props param
...
We always need to add the Props param because it contains the
debug.aec.wav-path key, which is always available, even when the AEC
implementation has no properties.
Also add the debug.aec.wav-path PropInfo.
2023-12-11 12:02:58 +01:00
Wim Taymans
658b624a83
modules: reuse the same code for setting properties
...
We can reuse the same code for setting input and output stream
properties. This also makes it possible to set the debug.aec.wav-path
on all streams, like the properties say.
2023-12-11 12:00:43 +01:00
Wim Taymans
fbaf4db6b0
modules: add source ip and port in stream props
2023-12-11 10:04:14 +01:00
Wim Taymans
f31d87cfee
modules: return -EINVAL on invalid port
2023-12-11 10:03:51 +01:00
Pauli Virtanen
4e2057930f
pulse-server: update all params only after enumeration complete
...
For params that don't emit change events, the param enumeration does not
start core sync, and its enumeration may be incomplete if a previous
core sync completes first.
Fix by always starting a core sync if we are updating params.
This fixes dev_info.active_port being sporadically SPA_ID_INVALID if
there is event pressure, which causes do_set_volume randomly set the
volume on the node instead of setting it on the device. This can be
triggered e.g. by shaking the volume slider in Pavucontrol with mouse.
2023-12-09 11:23:25 +00:00
Wim Taymans
cfd422854f
module-x11-bell: force pulse backend
...
The libcanberra ALSA backend has some races and causes crashes, we
should try to not use that one.
Fixes #3688
2023-12-05 16:20:40 +01:00
Wim Taymans
425c849042
avoid compiler warning
2023-12-04 12:24:24 +01:00
Barnabás Pőcze
539115fc59
pipewire: module-filter-chain: dsp_ops_init(): take cpu_flags
...
Instead of relying on the caller to initialize `dsp_ops::cpu_flags`,
take it as an argument.
2023-12-02 20:24:33 +00:00
Barnabás Pőcze
75c77b9116
pipewire: module-filter-chain: builtin_plugin: fix filename leak
...
The `filenames` array must be cleared before the `samples == NULL`
check otherwise the `strdup()`ed strings will be leaked in case
of failure.
2023-12-02 20:24:33 +00:00
Wim Taymans
6c772a1843
module-pulse-tunnel: don't block the main thread
...
Do the pulse context and stream connect async so that we don't have to
block the main thread.
Fixes #3221
2023-11-30 10:42:48 +01:00
Pauli Virtanen
08a4590070
module-access: recognize "allowed" as legacy alias for "unrestricted"
...
Previously, it was an alias for "unrestricted" so support that still if
access.legacy=true.
2023-11-29 18:44:49 +02:00
Wim Taymans
1a83ce0908
module-loopback: improve channel remapping support
...
Convert capture and playback streams to any global channel position that
has been set. This can then be used to implement an upmix sink and add
such an example config.
2023-11-29 16:07:54 +01:00
Wim Taymans
b9e5dde4ac
client-node: keep target fd up to date
...
Keep the target and source fd in sync when we get the new fd from the
server in remote-node.
This makes it possible to refactor some things and only schedule nodes
by triggering the target.
2023-11-28 16:23:00 +01:00
Barnabás Pőcze
d88def09bd
pipewire: module-roc-{sink,source}: add rudimentary ROC_INTERFACE_AUDIO_CONTROL support
2023-11-23 17:21:39 +01:00
Barnabás Pőcze
b19d0ffbc3
pipewire: module-roc-source: use SPA_NSEC_PER_MSEC instead of hard-coding
2023-11-23 15:12:50 +01:00
Barnabás Pőcze
b5e898ee83
pipewire: module-roc-{sink,source}: do not remove from argument property list
...
The property list is destroyed and not kept around, not passed
to any other component, so this is unnecessary work.
2023-11-23 15:12:50 +01:00
Barnabás Pőcze
68c0a13694
pipewire: module-roc-{sink,source}: pass 0 to pw_properties_get_uint32()
...
There is no reason to use `data->rate` as the default value
since it will be zero, so just pass 0 explicitly.
2023-11-23 15:12:50 +01:00
Barnabás Pőcze
0a3bd825cd
pipewire: module-roc-{sink,source}: remove props member
...
The `props` member was not used at all, so get rid of it.
2023-11-23 15:12:47 +01:00
Barnabás Pőcze
6d8a31a3e4
pipewire: module-roc-{sink,source}: deduplicate protocol selection
2023-11-23 14:12:35 +01:00
Barnabás Pőcze
333fd8d2ae
pipewire: module-roc-{sink,source}: port to ROC v0.3.X
...
ROC 0.3 introduced breaking changes, so adjust the code.
Also set the minimum supported ROC version to 0.3.0.
Fixes #3667
2023-11-23 14:12:35 +01:00
Arun Raghavan
63bb128948
rtp-stream: Set rtp.ptime on senders not receivers
...
The pw_stream direction is inverted from what we want (input => sender).
2023-11-23 01:28:20 -05:00
Barnabás Pőcze
aa681365c3
pipewire: module-filter-chain: fix buffer memory leaks
...
`impl::{silence_data,discard_data}` were not freed either
in case of an initialization error or graceful shutdown.
2023-11-23 05:50:17 +00:00
Wim Taymans
de954655bc
modules: fix doc
2023-11-22 17:48:05 +01:00
Wim Taymans
bb82ddb601
Fix a warning
...
../src/modules/module-rt.c:615:21: warning: suggest parentheses around
assignment used as truth value [-Wparentheses]
2023-11-22 16:17:08 +01:00
Jonas Holmberg
72323dcaf3
module-rt: Protect setrlimit() with mutex
...
Make sure threads initializing the module doesn't get/set RLIMIT_RTTIME
simultaneously.
2023-11-22 13:56:15 +00:00
Wim Taymans
0c857f5455
pulse-server: add stream/device state in dev_info
...
Also include and update the state of the device/stream in
collect_device_info so that we can compare it against the previous value
and emit a change event.
Fixes #3660
2023-11-20 11:39:31 +01:00