Szabolcs Szőke
bb1f595b53
adapter: support custom prefix for device ports
...
Prefixes can be disabled for device ports by providing an empty string
2023-01-16 08:25:41 +00:00
Dmitry Sharshakov
7b355d5628
convolver: add gain when resampling to preserve volume
2023-01-15 11:53:30 +00:00
Dmitry Sharshakov
e0cc072100
filter-chain: use equal rate for capture and playback
...
If only one of rates is provided, propagate it. If both are provided and are inequal, warn.
This configuration appears to be broken for obvious reasons
2023-01-14 19:52:47 +00:00
Wim Taymans
792defde27
adapter: only add port name override when not empty
...
This makes it possible to add an empty string to keep the original
port name.
2023-01-13 17:52:24 +01:00
Wim Taymans
cab3e3c1ce
clarify deprecated use of NODE_TARGET
2023-01-10 17:21:02 +01:00
Wim Taymans
c3032c70b6
keys: move NODE_TARGET to deprecated properties
...
Add PW_ENABLE_DEPRECATED to some places where we can not yet
avoid removing support.
2023-01-10 17:17:34 +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
Wim Taymans
8767e8ed97
pulse-server: handle .monitor master source
2023-01-10 16:22:39 +01:00
Wim Taymans
ff69454eb4
pulse-server: use TARGET_OBJECT
...
The pulse API uses either the node.name or object.serials so pass this
along in the TARGET_OBJECT instead of the NODE_TARGET now that
wireplumber handles this.
2023-01-10 16:05:55 +01:00
Wim Taymans
624e265fd6
pulse-server: clear the drained state correctly
...
When we start the drain, we unpause the stream. When we conplete the
drain, we unpause again, which does nothing when the stream was already
unpaused. However, this leaves the drained state on the stream and so
the stream will never be able to play new data.
Trigger a new pw_stream_set_active() with the current stream state to
clear the drained state.
Fixes #2928
2023-01-10 12:49:22 +01:00
Wim Taymans
97aafe2234
fix use_buffers checks
...
We can set 0 buffers even if there is no format.
Return -ENOSPC when too many buffers are set.
2023-01-10 12:30:25 +01:00
Jan Beich
6d58c73937
module-rt: fix warning when xdg-desktop-portal isn't running
...
$ pipewire
...
[W][1234.001] mod.rt | [ module-rt.c: 278 pw_rtkit_check_xdg_portal()] Can't find xdg-portal: (null)
...
2023-01-08 07:29:42 +00:00
Wim Taymans
b2f43e7bad
pulse-server: fix echo-cancel _master args
...
The sink_master and source_master should be set on the capture and
playback streams so use the new properties on module-echo-cancel to do
this.
2023-01-07 15:00:40 +01:00
Wim Taymans
feac9f1c70
module-echo-cancel: add capture and playback props
...
Add a capture.props and playback.props config section to set properties
for the capture and playback stream.
Fixes #2939
2023-01-07 13:58:30 +01:00
Dmitry Sharshakov
6fb543a514
adapter: support node.channel-names
...
Allow customizing channel names for nodes
2023-01-06 23:17:33 +03:00
Wim Taymans
4f458b5d9a
filter-chain: dynamically allocate the params
...
Dynamically allocate the offsets and params arrays so that it can
support more than 512 params.
Fixes #2933
2023-01-06 12:41:06 +01:00
Wim Taymans
860b8fc27f
modules: fix rate update
...
Setting the rate with the PROP_rate would actually result in a rate
adjustment of 1.0f / rate, so do the same here.
See #2891
2022-12-29 12:22:56 +01:00
Barnabás Pőcze
73c5f6e1bf
pipewire: module-roc-{sink,source}: port to ROC v0.2.X
...
Incompatible changes between ROC v0.1.X and v0.2.X require
adjusting the ROC modules' code. The largest change is going
from `roc_address` to `roc_endpoint`. There is also a breaking
change, the removal of `local.ip` parameter from module-roc-sink
as `roc_sender_bind()` has been removed.
The API usage was modelled after https://github.com/roc-streaming/roc-pulse
See #1757
Fixes #2911
2022-12-29 10:13:30 +00:00
Julian Picht
8c0a94c9d8
module/roc-*: fix position of comment
2022-12-19 12:47:47 +01:00
Julian Picht
b47e799c9a
module/roc-*: implement audio.rate
2022-12-19 12:25:33 +01:00
Wim Taymans
f4f316b951
filter-chain: move fft to dsp_ops
2022-12-16 11:30:18 +01:00
Wim Taymans
b6b6efff42
convolver: use normal float for complex float array
2022-12-16 10:51:19 +01:00
Wim Taymans
538b6ce35e
filter-chain: use dsp sum/copy/clear functions
2022-12-16 10:22:01 +01:00
Wim Taymans
0f2f113bdc
filter-chain: add optimized sum function
2022-12-16 10:19:20 +01:00
Wim Taymans
cd38d7b53b
filter-chain: move functions to separate struct
...
So that it's easier to copy them.
2022-12-16 09:37:45 +01:00
Wim Taymans
fa10849139
filter-chain: pass dsp_ops around
...
Initialize dsp_ops in the filter-chain and pass it around.
2022-12-16 09:28:00 +01:00
Wim Taymans
f7c49bbdde
pulse-server: add channel-map in echo-cancel module
2022-12-15 13:12:47 +01:00
Wim Taymans
72bee99f87
pulse-server: add category for connection debug
...
Use a new conn. topic to debug the messages. These are disabled by
default.
2022-12-14 16:40:58 +01:00
Wim Taymans
61750813ff
filter-chain: move buffer resample to separate function
...
Fix the error paths.
Rename some variables around to make things clearer.
2022-12-13 12:18:46 +01:00
Dmitry Sharshakov
28af79be79
filter-chain: convolver: flush, add resampler quality option
...
Robustness fix: don't truncate IR, free the resampler state after use.
2022-12-13 10:09:55 +00:00
Dmitry Sharshakov
7950d3ff0d
filter-chain: convolver: resample IR
...
Ensure correct filtering when node rate does not match filter rate
2022-12-13 10:09:55 +00:00
Wim Taymans
b29200ee82
pulse-server: add a pulse.cmd section
...
Add a new config section that can contain a set of commands to run after
starting.
There is only load-module available now but it can be used to remove the
dependency on pactl when starting the server.
2022-12-12 16:46:16 +01:00
Wim Taymans
45235172c8
pulse-server: disable idle.timeout by default
...
Only enable pulse.idle.timeout for selected applications
(speech-dispatcher) and let other applications be. We can also
lower the minreq and min-quantum of speech-dispatcher now.
Fixes #2880
2022-12-09 10:00:32 +01:00
Jonas Holmberg
83f1de95c0
module-loopback: connect playback before capture
...
Connect the playback stream before the capture stream since the capture
stream can otherwise trigger playback_process() before the playback node
has been activated.
2022-12-08 13:31:45 +01:00
Wim Taymans
9bf6fa05d1
module-rtp-sink: silence some messages
2022-12-08 12:10:22 +01:00
Wim Taymans
2f397035b8
modules: don't call pw_stream_set_control in process
...
pw_stream_set_control can only be used from the pipewire main_loop, not
the process callback. Instead, use the rate_match field directly.
Fixes #2633
2022-12-08 11:01:24 +01:00
Wim Taymans
7b61bf8c8a
improve debug
2022-12-07 16:01:16 +01:00
Torkel Niklasson
126bcd200b
modules: Change some core errors to info
...
Modules echo-cancel, filter-chain and loopback may print errors if no
applicable target nodes exist when they start up. For our products this
is not considered error/warning worthy, since the issue will resolve
itself once the target nodes exist.
2022-12-07 11:36:30 +01:00
Wim Taymans
37439d2b73
pulse-server: add gsettings module
...
Uses a thread to monitor gsettings data. Loads and unload modules
based on gsettings.
This makes paprefs work.
2022-12-07 09:45:43 +01:00
Wim Taymans
89d4cafec4
pulse-server: fix module args
2022-12-06 19:02:02 +01:00
Wim Taymans
865d41b986
pulse-server: module does not depend on client
...
We don't need to pass the client to the module create and load
functions, they can work without a client.
The only place the client is used is to access the properties to make a
new connection to pipewire. This is also however not a good idea, we
should simply use the defaults used by the context or else a client
could set strange properties like remote.name etc for these internal
connections.
Also removing the dependency of the client will make it possible to load
modules from the startup script or other modules later.
2022-12-06 18:26:29 +01:00
Wim Taymans
9f2abea480
module-loopback: deactive both streams before destroying
...
First deactivate both streams so that they are not calling eachother
anymore and then destroy the streams.
2022-12-05 16:05:37 +01:00
Wim Taymans
a20101c58c
pulse-server: Add IPv4 address first in server list
...
So that zeroconf-discover prefers to publish with the IPv4 address
because that is likely more successfull.
See #2861
2022-12-01 20:17:08 +01:00
Barnabás Pőcze
c933c5ed74
pipewire: module-zeroconf-publish: only unpublish service when necessary
...
When a server is stopped, only unpublish those services
that have been published with that particular server,
do not touch the others.
2022-11-28 14:54:04 +01:00
Wim Taymans
5f000b007d
filter-chain: optimize copy plugin
...
A copy plugin at the input ports can be replaced by directly writing
into the peer input ports so that we can avoid a memcpy.
2022-11-27 11:56:00 +01:00
Wim Taymans
f673764e58
filter-chain: use optimized sum
2022-11-27 11:55:55 +01:00
Wim Taymans
ca8bc59d0a
filter-chain: add biquad to dsp functions
2022-11-24 19:14:34 +01:00
Wim Taymans
be1d4940a3
protocol-native: initialize fields
...
Set some of the fields to default values.
Fixes #2852
2022-11-24 09:40:14 +01:00
Wim Taymans
0f79014e18
filter-chain: add some optimized mix functions
2022-11-22 17:59:44 +01:00
Wim Taymans
9d8edef1a0
client-node: guard against NULL resource
...
When destroying, the resource can be NULL (mix->io should also be
NULL ideally so we can check first).
See #2847
2022-11-21 20:20:16 +01:00