Commit graph

2818 commits

Author SHA1 Message Date
Barnabás Pőcze
3fefb55ef2 pulse-server: return NULL instead of 0
... to be consistent with the vast majority of the
existing source code.
2021-10-18 15:36:22 +02:00
Barnabás Pőcze
ee7b82ac9e pulse-server: remove unnecessary NULL check
`spa_streq()` already checks for NULL pointers, so the
pointer does not need to be checked before calling it.
2021-10-18 15:36:22 +02:00
Barnabás Pőcze
80ae688cc6 pulse-server: compile extensions separately
Avoid including other C source files. Compile them separately.
2021-10-18 15:36:17 +02:00
Wim Taymans
bd8ec29bb5 link-factory: avoid using 0 for invalid id
Use SPA_ID_INVALID instead of 0 when we fail to parse the port id
so that we don't accidentally match an internal port id.

See #1724
2021-10-18 11:35:25 +02:00
Wim Taymans
8c346ab3a7 pulse-server: list NETWORK flag on devices
Mark network sinks and sources with node.network.
2021-10-14 13:45:58 +02:00
Wim Taymans
d6c1479ba0 module-zeroconf-discover: also parse the channel_map
So that we create the device with the same channel_map as the remote
end.

Fixes #1692
2021-10-14 13:28:43 +02:00
Wim Taymans
257bbb1fd5 echo-cancel: flush streams in PAUSED
so that we don't end up with old data when we resume.

Fixes #1660
2021-10-14 12:18:37 +02:00
Peter Hutterer
4ec2a6b320 modules: fix a property fetch
Leftover from an earlier version where get() was what is now called
fetch().

Fixes d8d7e90ceb21dac3723fa3c3fd3c2983afe1372
2021-10-14 06:32:20 +10:00
Wim Taymans
64d6ff4184 modules: flush and reset state in paused
So that we don't end up with previous data when we resume.

See #1660
2021-10-13 18:37:02 +02:00
Wim Taymans
6e818480c1 filter-chain: implement convoler_reset
To reset the state of the convolver.
2021-10-13 18:36:20 +02:00
Wim Taymans
058cecee7e pulse-server: remove some pw_log_info debug 2021-10-13 15:44:38 +02:00
Wim Taymans
f1c29194a8 pulse-server: improve lookup of default source and sink
Make things work then there is no default input device and the default
source is actually the monitor of the default sink.

Also implement lookups of monitor sources with the monitor id as the
name.

Fixes #1691
2021-10-13 15:39:41 +02:00
Wim Taymans
1b09640b6f pulse-server: use find_device for get_info of a device
So that we also go through the same logic for finding the default
source and sink when needed.
2021-10-13 15:38:59 +02:00
Peter Hutterer
32fb369b66 modules: switch more modules to the new property helpers 2021-10-13 07:12:00 +00:00
Peter Hutterer
56bc3508c4 module-rt{kit}: replace get_default_int with the new property helper 2021-10-13 07:12:00 +00:00
Peter Hutterer
1d8d7e90ce modules: switch a few modules to the new property helpers 2021-10-13 07:12:00 +00:00
Peter Hutterer
d8de1cb255 modules: switch to new property helpers 2021-10-13 07:12:00 +00:00
Peter Hutterer
696a4b22e9 module-rt{kit}: use spa_atoi32 instead of custom strtol
And duplicate the function into rtkit which had a similar but different
approach to it. Let's get both to do the same here.
2021-10-13 07:12:00 +00:00
Wim Taymans
9afb832d22 pulse-server: find the sink when doing monitor source lookup
When we do a lookup of a source with the monitor flag bits set in the
id, strip off the monitor bits se we can find the associated sink.

Fixes #1677
2021-10-11 17:02:13 +02:00
Wim Taymans
38981a4c8c filter-chain: biquad fequency is half the samplerate
See #1699
2021-10-11 16:07:13 +02:00
Wim Taymans
5f7c4dec34 meson: make it possible to compile without dbus
Make an option to disable dbus and all the code that depends on
it.

Fixes #1685
2021-10-09 15:00:04 +02:00
Björn Daase
492abccfe6 filter-chain: fix incorrect codespell fix
Fixes cf38b7bdc4
2021-10-07 21:31:01 +02:00
Björn Daase
cf38b7bdc4 fix codespell issues 2021-10-07 15:26:18 +00:00
Nicolai Syvertsen
dea1755b68 pulse-tunnel: follow pulseaudio for default format 2021-10-07 15:39:11 +02:00
Nicolai Syvertsen
28c2e8ca56 pulse-tunnel: use format, channels and rate props 2021-10-07 13:00:24 +02:00
Wim Taymans
a95937dfdb log: remove NAME as log prefix, topic is enough 2021-10-03 12:03:45 +02:00
Wim Taymans
3dde9fef9c client-node: send the right peer_id
Output ports share the same buffers on all mix outputs and the buffers
are stored in a special mix area with id SPA_ID_INVALID.

The special mix area does not have the peer_id of the link, we need to
get that from the non-shared mix area.

This fixes some invalid peer port-id values in the set_mix_info event.
2021-10-01 09:33:19 +02:00
Wim Taymans
5026645e93 pulse-server: add latency_msec parameter 2021-09-30 09:49:09 +02:00
Wim Taymans
696dbf7cd6 pulse-tunnel: pass latency as msec 2021-09-30 09:49:00 +02:00
Peter Hutterer
abd5f9fbe8 Remove remaining tabs from meson.build files
No changes, just tab-to-space replacement and a little bit of manual
twiddling.
2021-09-30 00:08:27 +00:00
Wim Taymans
d6469e5437 filter-chain: make it possible to suggest a samplerate
Make it possible to let a plugin suggest a samplerate for the filter.
Make the convolver suggest the samplerate of the IR file anf use that
if nothing else is specified in the config.

Fixes #1659
2021-09-29 16:53:18 +02:00
Wim Taymans
275dfed92a filter-chain: handle unaligned sum_simd
Fall back to slow path if the input is not aligned, which can happen
after resampling.

Fixes #1659
2021-09-29 16:30:59 +02:00
Barnabás Pőcze
d2f0573369 pipewire: module-zeroconf-discover: handle module destroy events
module-zeroconf-discover loads module-pulse-tunnel for each entity
exposed on the network. Previously, however, the destroy event
of the loaded pulse-tunnel modules were not handled.

This resulted in a use-after-free because both `pw_context_destroy()`
and `module-zeroconf-discover.c:impl_free()` tried to destroy
the pulse-tunnel modules. The reason for that is that since
1de16afc40 the modules
are prepended to the module list of the context, not appended,
therefore modules are destroyed in LIFO order, thus the pulse-tunnel
modules were destroyed before the zeroconf-discover module that
loaded them.

Fix that by handling the destroy event of the loaded pulse-tunnel
modules.

Fixes #1653
2021-09-29 10:35:16 +02:00
Peter Hutterer
52a96bb602 modules: add log topics to module-protocol-pulse
This ends up using a nested namespace: mod.protocol-pulse for the module
itself, mod.protocol-pulse.foo for the various submodules and
extensions.
2021-09-28 09:35:39 +02:00
Peter Hutterer
96f8a7597e modules: switch protocol-native to the new logging system
This is more complicated than a normal module because we have two
logging topics: mod.protocol-native and conn.protocol-native for wire
messages. Because the latter use spa_debug (through spa_debug_pod) we
need to #define our way around so those too use the right topics.

Note that this removes the previous "connection" category, it is now
"conn.protocol-native" instead.
2021-09-28 09:35:39 +02:00
Peter Hutterer
14112fd168 modules: use the new topic-based logging from various pipewire modules 2021-09-28 09:35:39 +02:00
Wim Taymans
cb474043fa pulse-tunnel: add pulse.latency option
Add a pulse.latency option to override the default 100ms latency.
2021-09-23 13:11:52 +02:00
Wim Taymans
88ba3014d6 pulse-tunnel: increase default latency to 100ms
20ms is too small and might be a typo from the pulseaudio 200ms default
latency.
2021-09-23 13:00:15 +02:00
Peter Hutterer
207c5796b6 pulse: print the strerror on metadata errors 2021-09-23 15:29:48 +10:00
Wim Taymans
6f519d4052 pulse-server: put the channel map in the loopback args
Fixes #1486
2021-09-21 18:33:29 +02:00
Wim Taymans
c8f629a0a3 pulse-server: improve module args compatibility
Boolean switches can also be true with 'y', 'yes', 't' and 'on'
2021-09-21 17:39:11 +02:00
Peter Hutterer
335ad734de doc: fix example config for echo cancel
Fixes #1625
2021-09-20 15:56:13 +10:00
Wim Taymans
97be5687ec remote-node: clear the node io areas when removing the memory
When the memory is removed, clear the node io areas so that it doesn't
accidentally get reused.

Fixes a crash in cheese when the node is stopped and then resumed.
2021-09-15 20:57:10 +02:00
Wim Taymans
21657ea2af remote-node: improve node io tag
Set the second tag field to INVALID to separate the node io areas from
the port io areas.
2021-09-15 20:57:10 +02:00
Peter Hutterer
14f0c6f9a6 modules: print the optional modules as part of the meson summary
This makes it easier to figure out if a particular module was missing
from the build. Example output:

  Optional Modules
    rt                        : YES
    rtkit                     : YES
    portal                    : YES
    pulse-tunnel              : YES
    zeroconf-discover         : YES
    roc-sink                  : NO
    roc-source                : NO
2021-09-15 11:24:09 +10:00
Wim Taymans
fda6e7b4af pulse-server: parse default.clock.rate from core info
Use the core.info clock rate as the default sample rate as soon as the
manager exposes the core object. Otherwise the default sample rate is 0
until someone calls GET_SERVER_INFO, which as a side effect sets the
default sample rate.

Fixes issues with sinks not appearing right away.

Fixes #1588
2021-09-13 10:50:01 +02:00
Wim Taymans
75f15accd5 filter-chain: add dirac pulse 2021-09-07 20:12:58 +02:00
Wim Taymans
7e4d5b142f pulse-server: don't leak format info 2021-09-07 09:51:58 +02:00
Peter Hutterer
8bb0e340c7 protocol-pulse: fix two -Wformat-nonliteral warnings
For the stream group, we break into the three components we write out
and print those.

For the IPv6 address printing inside [], we can make this a condition on
the printf statement.
2021-09-07 08:57:28 +10:00
Wim Taymans
435de99428 Increase pod buffer size
The props of a 64 channel node are at least 2048 bytes long so make sure
we can build and filter them.

Fixes #1574
2021-09-06 15:09:28 +02:00