Wim Taymans
b6559289f1
pulse-server: fix compilation on some compilers
2021-06-14 15:43:32 +02:00
Wim Taymans
1bc383a7b7
pipewire-pulse: also store format/channels for sources
2021-06-12 20:30:49 +02:00
Wim Taymans
ba402209ba
pulse-server: use PulseAudio name for format and channels
...
Use the pulseaudio names for the format and channels, like the real
pulseaudio.
2021-06-12 20:29:51 +02:00
Sanchayan Maity
cf93fd7f9a
module-protocol-pulse: Add Avahi zeroconf publish module
2021-06-12 17:56:49 +00:00
Sanchayan Maity
e66125ede0
module-protocol-pulse: Factor out some common code
...
Factor out some of the common code that will be required for zeroconf
support next.
2021-06-12 17:56:49 +00:00
Barnabás Pőcze
bd6f63fecd
pulse-server: improve module loading
...
Modules no longer need to emit the "loaded" event manually
if they can load immediately. In that case, the module loading
code will take care of emitting the event. If they can't,
they must return an async spa result, and emit the "loaded" event
when they see fit.
Fixes #1232
2021-06-11 20:50:30 +02:00
Barnabás Pőcze
4d02233ff3
pulse-server: don't broadcast remove event when a module wasn't loaded
2021-06-11 20:50:30 +02:00
Barnabás Pőcze
f26358e958
pulse-server: module-simple-protocol-tcp: remove unnecessary struct member
2021-06-11 20:50:30 +02:00
Barnabás Pőcze
3eaea123f9
pulse-server: module-simple-protocol-tcp: add module listener
2021-06-11 20:50:30 +02:00
Barnabás Pőcze
12359b490d
pulse-server: module-null-sink: provide fallback name
...
If no `sink_name` has been specified, use "null-sink" to avoid a
NULL pointer dereference later in the function.
2021-06-11 20:50:30 +02:00
Barnabás Pőcze
09c162c8bf
pulse-server: module-null-sink: add missing version to events struct
2021-06-11 20:50:30 +02:00
Barnabás Pőcze
6f5b089767
pulse-server: clear hook list when module is freed
...
Moreover, rename the hook list to "listener_list".
2021-06-11 20:50:30 +02:00
Barnabás Pőcze
d9befc0792
pulse-server: eliminate some memory leaks in modules
2021-06-11 20:50:30 +02:00
Barnabás Pőcze
1d5fb2a7db
pulse-server: remove unnecessary struct members
2021-06-11 20:50:30 +02:00
Barnabás Pőcze
cd0eb829dd
pulse-server: remove redundant log messages from modules
...
The same information is printed in
* `on_module_loaded()`,
* `module_load()`, and
* `module_unload()`.
2021-06-11 20:50:30 +02:00
Wim Taymans
b7c2e7a693
conf: the midi bridge example is from a spa-node-factory
...
Fixes #1294
2021-06-10 23:47:15 +02:00
Nicolai Syvertsen
01875ad223
pipewire-pulse: set description
...
Some applications like TeamSpeak crash when this isn't set.
2021-06-10 22:21:26 +02:00
Wim Taymans
77a4ae380e
json: remove obsolete # comment handling
...
Comments are handled by the parser now. Keys and values starting
with # are intentional now.
2021-06-10 18:02:34 +02:00
Wim Taymans
342ae0b643
Revert "conf: Load and stack all config files."
...
This reverts commit db44fe47ee .
We should not be merging config files at this point. Generating config
files should be done offline and only the result is loaded here.
2021-06-10 11:28:37 +02:00
Wim Taymans
61007dd412
Revert "conf: add comment about removing sections"
...
This reverts commit 85d34d8d94 .
2021-06-10 11:27:31 +02:00
Peter Hutterer
0cd0d6e826
meson.build: split the version data into a separate config
...
Use this for the version.h file so we enforce that being used everywhere
instead of accidentaly relying on whatever ends up in config.h.
The generated version.h file is identical.
2021-06-10 09:30:56 +02:00
Peter Hutterer
b5e98027b7
meson.build: drop VERSION, use PACKAGE_VERSION in the C sources
...
Slightly better namespaced since it's not usually used anywhere else, VERSION
is too generic.
2021-06-10 09:30:56 +02:00
Peter Hutterer
5cf3c28fa4
config.h is a local header, not a system one
...
Change the #include accordingly, that's what we use in the rest of the tree
too.
2021-06-10 09:04:16 +10:00
Peter Hutterer
da339c286f
meson.build: drop HAVE_CONFIG_H
...
This is an autotools leftover, with meson we're always guaranteed to have
the config.h file.
2021-06-10 09:04:16 +10:00
Wim Taymans
1b5ffa7891
filter: init the Latency param correctly
...
See #911
2021-06-09 21:12:19 +02:00
Wim Taymans
d91cc99d92
properties: escape '/' as well
2021-06-09 18:08:26 +02:00
Wim Taymans
262e609b73
conf: use serialize_dict to write state files
...
Instead of our home-brew version.
2021-06-09 18:00:47 +02:00
Wim Taymans
54326abd54
properties: improve serialize method
...
Properly escape the keys because we're trying to generate
valid JSON.
Always place ',' after items.
Add a flag to add a '\n' before each item.
Don't try to string-encode the value when it's already a string.
2021-06-09 17:57:58 +02:00
Wim Taymans
85d34d8d94
conf: add comment about removing sections
...
Sections that don't need to be changed can be removed because they
are now taken from the main config file.
2021-06-09 15:25:58 +02:00
Wim Taymans
db44fe47ee
conf: Load and stack all config files.
...
Load and parse config files in the following order:
$PIPEWIRE_CONFIG_DIR or /usr/share/pipewire
/etc/pipewire
$XDG_CONFIG_DIR or ~/.config/pipewire
This ensure we always load a working base config and reduce the
chances of failing because of a back user config file.
The user config file now only needs to contain the section that
needs the be changed.
See #207
2021-06-09 12:15:39 +02:00
Peter Hutterer
dcfd6745d0
test: move the context tests to here
2021-06-09 18:00:39 +10:00
Peter Hutterer
493f0724b5
test: move the array tests to pwtest
...
Add them to the existing pw_properties test binary and rename that to
pw-utils.
Same functionality as before for the pw_array tests.
2021-06-09 18:00:39 +10:00
Peter Hutterer
0054319d88
meson.build: add -D_GNU_SOURCE to the project arguments
...
This appends it to every compilation command so we can get rid of the c_args
for (almost all) executables.
2021-06-09 07:47:51 +00:00
Wim Taymans
750cafd7d1
context: use pw_context_destroy() in error cases
...
Make sure we free all the resources of a context when it can't be
created.
2021-06-09 09:41:50 +02:00
Wim Taymans
c12bdb8c6c
pipewire: cleanup on error
...
To make leak checks more accurate.
2021-06-09 09:41:50 +02:00
Wim Taymans
db245fd0ce
context: override the CORE_NAME in context
...
Override the CORE_NAME using the env variable in the context instead
of pipewire.c. This avoids needing the _add_string() property method.
Remove the properties_add_string() method, there are new improved
plans for property parsing and merging: See #207
2021-06-08 16:56:22 +02:00
Wim Taymans
1f85d06317
module-adapter: clear bound-resource when destroyed
...
So that we don't reference it anymore or try to remove the listener.
2021-06-07 12:57:09 +02:00
Barnabás Pőcze
b6c6a21747
pipewire: module-adapter: remove resource listener
...
Unregister the resource listener when the node is going
away to avoid use-after-free issues.
Fixes #1276
2021-06-07 10:54:19 +00:00
Peter Hutterer
b6e27822e5
pipewire: use RUNNING_ON_VALGRIND to determine if we're in valgrind
...
This removes the use of the VALGRIND environment variable
2021-06-07 10:44:27 +00:00
Wim Taymans
9a90030596
pw-cli: fix command parsing after pw_split changes
...
Don't assume anything about the way the split function maintain the
state.
2021-06-07 11:17:45 +02:00
Arun Raghavan
08daf3f4f4
pulse-server: Add a module-echo-cancel
...
Fairly straightforwad module to load libpipewire-module-echo-cancel
2021-06-05 17:54:02 +00:00
Wim Taymans
a2cb5f3394
properties: try to keep full doxygen docs out of headers
...
Try to keep the full docs out of the headers and into the .c file.
A small short blurb in the header is enough for quick lookups.
Also try to use a regular comment to not confuse the doc system.
2021-06-04 12:08:23 +02:00
Peter Hutterer
2e6621fae0
daemon: use getenv(PIPEWIRE_CORE) for the core.name if it exists
...
As documented in pipewire/keys.h, PIPEWIRE_CORE is supposed to overwrite the
default value.
2021-06-04 08:58:18 +00:00
Peter Hutterer
f775547528
pipewire: merge, not overwrite the context.properties from the config file
...
Any values already set in the properties list (e.g. from earlier getenv())
calls should not be overwritten by the value in the config file.
2021-06-04 08:58:18 +00:00
Peter Hutterer
b179e81070
pipewire: add pw_properties_add_string()
...
Equivalent to the existing pw_properties_update_string() but only adds new
properties from the given string, it doesn't overwrite existing ones.
2021-06-04 08:58:18 +00:00
Wim Taymans
2a8b7594bc
pulse-server: avoid overflow
...
Make sure the requested bytes never go below 0.
See #1258
2021-06-04 09:13:43 +02:00
Barnabás Pőcze
e65afe8fa2
pulse-server: module-combine-sink: remove hooks
...
Remove hooks when the module is unloaded to avoid
use-after-free issues. Remove the cleanup source as well.
Fixes #1259 .
2021-06-04 06:55:08 +00:00
Peter Hutterer
4cb87317a7
pipewire: assert a nonzero array allocation size
...
If pw_array_ensure_size() is called on an array that has not been initialized
with an extend, assert. Otherwise we get stuck in an infinite loop since
doubling our zero allocation size will never reach "need".
2021-06-04 09:00:34 +10:00
Wim Taymans
0ba9402d4b
Revert "media-session: use direction to find the node by name"
...
This reverts commit b0068fd46b .
It breaks recording from monitor ports.
2021-06-03 20:33:59 +02:00
Wim Taymans
669fbf10c1
fix some leaks in error paths
2021-06-03 20:33:59 +02:00