George Kiagiadakis
8e5448fd0c
si-audio-adapter/endpoint: do not sync() in loops, use ports-changed instead
...
Calling sync() in loops may end up looping forever if the operating
system's scheduling allows pipewire to reply to this sync() before
wireplumber's event loop has a chance to become idle.
In order for the new ports to appear, the object manager that monitors
them needs to emit "objects-changed", which only ever happens in an
idle callback. If the reply to sync() arrives before the idle callback,
it gets prioritized and processed, which causes another sync(), and so on...
Since setting PortFormat in the adapter always changes the ports,
watching for "ports-changed" feels like a better solution. Still,
there is more room for improvement.
2021-06-18 15:14:03 +03:00
George Kiagiadakis
87741e39ec
s/metadatas/metadata/g
...
data is already plural
2021-06-18 10:44:24 +03:00
George Kiagiadakis
a57647769a
metadata: filter for the "default" metadata object in all places where we use it
...
there can be more metadata objects around...
2021-06-18 10:39:47 +03:00
George Kiagiadakis
b8979e7434
wp-uninstalled.sh: don't shift after -b, there's a generic shift below
2021-06-16 19:45:36 +03:00
George Kiagiadakis
48ef823318
meson: avoid source_root(), as it fails when wireplumber is a subproject
2021-06-16 19:44:43 +03:00
George Kiagiadakis
1075d23fab
lib: fix some issues found by coverity
2021-06-15 17:43:22 +03:00
George Kiagiadakis
63282707ba
README: add coverity badge
2021-06-15 15:48:13 +03:00
George Kiagiadakis
b0f35427a9
coverity: use gzip instead of lzma to compress the coverity data
...
lzma is not available in the fedora image that we use... what was I thinking?
2021-06-15 15:26:43 +03:00
George Kiagiadakis
b7294e0695
coverity: use a regexp that nukes all the glib enumerator deprecation macros
...
coverity can't cope with enum declarations like:
G_ENUM_FOO GLIB_DEPRECATED_ENUMERATOR_IN_2_26 = N,
... so make sure all these are removed
2021-06-15 15:03:09 +03:00
George Kiagiadakis
41d8610a40
ci: disable more things from the pipewire build
2021-06-15 13:29:24 +03:00
George Kiagiadakis
95c8f0ec48
ci: add support for coverity, based on pipewire's gitlab-ci.yml
2021-06-15 12:30:21 +03:00
George Kiagiadakis
863c2d496a
meson: bump glib requirement to 2.62 as we are already using 2.62 API
2021-06-15 12:04:08 +03:00
George Kiagiadakis
6c592f3322
meson: add glib version required/allowed checks
2021-06-15 12:00:43 +03:00
George Kiagiadakis
4af7e2bd68
release 0.4.0
2021-06-10 19:42:04 +03:00
George Kiagiadakis
950c358180
create-item: handle all kinds of Audio/Video & Stream nodes
...
And be careful not to handle nodes created by si-audio-endpoint,
by using a specific property for that.
Also, use Audio/{Source,Sink}/Virtual as the media class of null sinks
created by si-audio-endpoint, it sounds more appropriate.
Fixes #34
2021-06-10 16:41:01 +03:00
George Kiagiadakis
558ab50367
si-standard-link: treat endpoints as devices when linking stream<->endpoint
...
This avoids reconfiguring endpoint nodes when re-linking streams
to their endpoint after having been corked by the policy.
This is not ideal, the logic here needs some refinement.
2021-06-10 14:53:09 +03:00
George Kiagiadakis
cead4dffb8
config: document the duck.level policy property
2021-06-10 14:53:09 +03:00
George Kiagiadakis
4cdfeb9c32
scripts: change debug level for some messages
2021-06-10 14:53:08 +03:00
George Kiagiadakis
2668900e18
lua: improve the object:activate() callback to report errors
...
There is now a second param to the callback that is an error string,
if any error happened
2021-06-10 14:53:08 +03:00
George Kiagiadakis
801ac7aa1a
wplua: add a wplua_checkclosure() helper function
2021-06-10 14:53:08 +03:00
George Kiagiadakis
b6a5750595
Revert "tests: enable G_SLICE=debug-blocks in all tests"
...
This breaks the valgrind test setup, as this G_SLICE overrides
G_SLICE=always-malloc from valgrind_env
This reverts commit a0d0069f18 .
2021-06-10 14:52:30 +03:00
George Kiagiadakis
606a9765d6
meson: add '--keep-debuginfo=yes' to the valgrind command line
...
ensures that we get debug symbols from modules printed correctly
2021-06-09 15:43:08 +03:00
George Kiagiadakis
7355215cf1
pipewire-object: change params-changed signal to take a string param name
...
To be consistent with the rest of the API where strings are used
to identify param types
2021-06-09 13:29:34 +03:00
George Kiagiadakis
a0d0069f18
tests: enable G_SLICE=debug-blocks in all tests
...
This can catch allocation mistakes in the g_slice allocator
2021-06-09 12:21:56 +03:00
George Kiagiadakis
82c054f1bd
meson: use environment() objects to define env for tests
...
it's just a nicer syntax
2021-06-09 12:03:14 +03:00
George Kiagiadakis
b39514a455
meson: add a test setup to run tests under valgrind
2021-06-09 11:55:07 +03:00
George Kiagiadakis
86fde56ddd
daemon/wpexec: standardize exit codes based on sysexits.h
2021-06-08 20:39:36 +03:00
George Kiagiadakis
5ef8faa730
daemon: replace the exit_message with direct message printouts
...
and use fprintf() for fatal errors, to make sure they are shown
2021-06-08 20:39:36 +03:00
George Kiagiadakis
aa618e99cb
wpexec: force the log level to be at least 1 and use fprintf() for local errors
...
pipewire's client.conf sets the default log level to 0, which is not
good for wpexec, as lua runtime errors are reported as warnings currently.
Also, let's use fprintf() for local cli errors to make sure they get printed
even if the log level is 0
2021-06-08 20:39:36 +03:00
George Kiagiadakis
31f56c7be5
daemon: exit with 0 both in case of a signal and in case of disconnection
...
systemd stops wireplumber with SIGTERM and this should exit gracefully.
if wireplumber is started by other means, it may just stop when pipewire
stops... that's also fine
2021-06-08 20:39:36 +03:00
Julian Bouzas
0f01c8b6da
tests: si-standard-link: remove unneeded core syncs
2021-06-08 13:23:44 -04:00
Julian Bouzas
85a7f01cb6
tests: common: make sure no events are pending before destroying core
2021-06-08 13:23:39 -04:00
George Kiagiadakis
f9767d19a6
lib: add struct paddings to be able to maintain ABI compatibility
...
Aim for 8 pointers on each struct, wich exceptions:
- 12 pointers for already crowded/important ones
- 4 pointers for empty ones that are used for proxies; we are
unlikely to add any virtual methods on these classes ever
2021-06-08 17:38:14 +03:00
George Kiagiadakis
72297e0909
docs: set breathe_default_members to get struct members to show up in the docs
...
Otherwise structs do not have any members shown by default.
This was accidentally removed in an older commit.
2021-06-08 17:14:54 +03:00
George Kiagiadakis
06c0e44609
docs: remove :project: annotations for breathe
...
there is a breathe_default_project in conf.py.in that sets this
2021-06-08 17:12:26 +03:00
Julian Bouzas
83e50396ee
pw-object-mixin: ignore set param on already destroyed objects
2021-06-08 09:08:13 -04:00
Julian Bouzas
21e73141c6
proxy: destroy pw_proxy if bind_error is called
2021-06-08 09:08:13 -04:00
George Kiagiadakis
0a987ea367
restore-stream: implement storing/restoring of target.node metadata
...
Closes #33
2021-06-08 13:40:13 +03:00
George Kiagiadakis
892129bd08
lua: implement metadata:set()
2021-06-08 13:40:13 +03:00
George Kiagiadakis
77454243bc
lua: fix refcounting of metadata iterator
...
wplua_push* takes a full ref
2021-06-08 13:40:13 +03:00
Julian Bouzas
7d28027f9b
wplua: fix memleak when converting GVariant to Lua
2021-06-07 11:33:21 -04:00
Julian Bouzas
8ba6439dd4
m-default-nodes-api: free default nodes when disabling plugin
2021-06-07 11:33:21 -04:00
Julian Bouzas
464f1de641
m-default-nodes: free default nodes when disabling plugin
2021-06-07 11:33:21 -04:00
Julian Bouzas
fc8cc09654
global-proxy: fix leak when getting global properties
2021-06-07 11:33:21 -04:00
Julian Bouzas
a12c41aca1
spa-pod: check if pod is valid before _parser_can_collect
...
Spotted with clang-tidy, avoids possible segfault if pod is NULL.
2021-06-07 11:33:21 -04:00
George Kiagiadakis
80fad18e3d
lua: remove hack around WpObjectInterest since we can _ref() it now
2021-06-07 18:01:49 +03:00
George Kiagiadakis
ac5c2ebbba
object-interest: remove unused _copy() method
...
object-interest is now ref-counted, so we can use _ref()
2021-06-07 17:56:32 +03:00
George Kiagiadakis
12f9e621e1
default-routes: use a constraint to check if device.name is present
2021-06-07 17:47:42 +03:00
George Kiagiadakis
2af0641a8b
default-routes: fix storing dev_info
2021-06-07 17:47:42 +03:00
George Kiagiadakis
2e56aeb44a
scripts: initial restore-stream implementation
...
Related to #33
2021-06-07 17:47:42 +03:00