Commit graph

1392 commits

Author SHA1 Message Date
Julian Bouzas
dc6fa6cbfe m-lua-scripting: unref value pod after adding it to control 2021-06-30 14:06:48 -04:00
George Kiagiadakis
888d6e5033 lua: add Port.get_direction() + documentation for it 2021-06-30 19:51:21 +03:00
George Kiagiadakis
532340cc8f docs: mention the new matrix room in the community resources 2021-06-30 19:51:21 +03:00
George Kiagiadakis
068f7f3000 docs: complete lua Node api docs and fix some ref links 2021-06-30 19:51:21 +03:00
George Kiagiadakis
18fe17fa01 lua: fail if an optional Interest is not none, nil, Interest or table 2021-06-30 19:51:21 +03:00
George Kiagiadakis
795a37d029 lua: complete the WpNode bindings 2021-06-30 19:51:21 +03:00
George Kiagiadakis
7fedb5e9e1 wplua: expose functions to convert enums to strings for lua and vice versa 2021-06-30 19:51:21 +03:00
Julian Bouzas
ee190411f4 state: escape invalid key file characters 2021-06-30 08:48:57 -04:00
Julian Bouzas
8505078a80 tests: endpoint: fix coverity 'side effect in assertion' error 2021-06-30 08:44:35 -04:00
George Kiagiadakis
d576fde2d7 tests: set PIPEWIRE_RUNTIME_DIR and stop using XDG_RUNTIME_DIR
Using XDG_RUNTIME_DIR is problematic in test-reserve-device
because GTestDBus also exports XDG_RUNTIME_DIR and then unsets it,
which makes pipewire end up using $HOME for its socket.
Using PIPEWIRE_RUNTIME_DIR is safer, as this variable is only used
by pipewire.

Also use the build directory as a runtime dir (it always exists and
nothing is going to interfere with it) and unset XDG_RUNTIME_DIR from
the CI scripts, since nothing else is using it.

Closes #39
2021-06-30 11:53:21 +03:00
George Kiagiadakis
b741b2c8c8 release 0.4.1 2021-06-29 13:27:19 +03:00
George Kiagiadakis
b52e945cb6 ci: enable testing of wpipc 2021-06-28 20:37:34 +03:00
Julian Bouzas
85820f7aef tests: examples: print error if buffer is not valid in wpipc-client
If we lose connection with the server while a request was pending, the request
callback is still triggered but with NULL buffer.
2021-06-28 11:38:38 -04:00
Julian Bouzas
9fd76570c4 tests: wpipc: check if new connection to new receiver is valid after losing connection 2021-06-28 11:38:37 -04:00
Julian Bouzas
6b8ea83404 wpipc: sender: disconnect and clear all pending tasks if connection was lost
If we don't remove the socket from epoll when the connection is lost, we risk
having the lost callback triggered more than once by epoll, creating race
condition in the unit test because more than 1 event happened. The epoll thread
and socket will be re-created again when re-connecting.

Note that we cannot destroy the epoll thread before triggering the lost
connection callback because we are running the callback in the epoll thread,
which is why removing the socket from epoll is the only way to make sure the
lost connection callback is only triggered once.
2021-06-28 11:38:37 -04:00
Julian Bouzas
313f872570 wpipc: receiver: also emit sender disconnected when failed to read 2021-06-28 11:38:37 -04:00
Julian Bouzas
f4a4f8bcc7 wpipc: protocol: make sure buffer is initialized to 0 before building reply/request
Fixes valgrind errors
2021-06-28 11:38:37 -04:00
Julian Bouzas
8a5a8fc015 wpipc: change epoll thread func type name to be more consistent 2021-06-28 11:38:37 -04:00
Julian Bouzas
ac4d5bd22a tests: wpipc: use GCond instead of while loop to wait for events
Fixes hanging issues when running test with valgrind.
2021-06-28 11:38:37 -04:00
Julian Bouzas
d0b26fd70f tests: wpipc: fix typo in sender-receiver unit test 2021-06-28 11:38:37 -04:00
George Kiagiadakis
9dabe3d991 ci: add ubuntu 20.04 builds and test some more option combinations
- on fedora: with and without docs
- on ubuntu: with and without introspection
- on fedora: with lua 5.4 from the submodule
- on ubuntu: with lua 5.3 from the system
2021-06-28 17:54:38 +03:00
George Kiagiadakis
2bd0c1b687 docs: relax doxygen version requirement
1.8.x also works just fine
2021-06-28 17:36:47 +03:00
George Kiagiadakis
096337f7a5 meson: bump lua dependency to 5.4 and update the subproject 2021-06-27 07:57:06 +00:00
George Kiagiadakis
c41d042dd0 wplua: remove handling of LUA_ERRGCMM, which is removed in lua 5.4 2021-06-27 07:57:06 +00:00
Julian Bouzas
014ef05308 m-reserve-device: use a weak ref instead of raw pointer for transition
This always guarantees the transition is valid when g_weak_ref_get() does not
return NULL.
2021-06-25 11:04:30 -04:00
Julian Bouzas
f7483ebd3d tests: transition: make sure transition is still valid after advancing
Advancing a transition might free it, so we ref before advancing it, and unref
after checking its completion.
2021-06-25 11:04:15 -04:00
Julian Bouzas
70197f498c tests: fix coverity scan side effect in assertion issues 2021-06-25 08:50:08 -04:00
Julian Bouzas
5b4b360b1c wp: log warning if PIPEWIRE_DEBUG env variable could not be set 2021-06-25 08:50:08 -04:00
Julian Bouzas
a65f3bb44e m-default-nodes: properly parse args 2021-06-25 08:50:08 -04:00
Julian Bouzas
f0830e5a7d m-lua-scripting: check return values of lua_getstack and lua_getinfo 2021-06-25 08:50:08 -04:00
Julian Bouzas
51128f0521 m-mixer-api: only add 'mute' if correctly parsed 2021-06-25 08:50:08 -04:00
Julian Bouzas
412fae485a m-lua-scripting: make sure pod is successfully parsed
Otherwise show a warning
2021-06-25 08:50:08 -04:00
Julian Bouzas
671b8110d9 m-lua-scripting: make sure lua type is valid 2021-06-25 08:50:08 -04:00
Julian Bouzas
c423012238 m-lua-scripting: fix conversion from SPA_TYPE_Bytes to LUA_TNUMBER 2021-06-25 08:50:08 -04:00
Julian Bouzas
02fd0a554a m-si-standard-link: make link_all a parameter
Otherwise its value will always be false, making it useless
2021-06-25 08:50:08 -04:00
George Kiagiadakis
c6d104a66b access-portal: fix granting access to camera device nodes
The constraint for nodes wasn't supposed to have a client.id
Also make the nodes_om global, to avoid leaking it in potential ref loops
2021-06-25 11:47:13 +03:00
Julian Bouzas
892b0dada6 lib: Use #define instead of 'static const' for constants
Fixes build errors when using GCC older than v8.1
2021-06-24 09:24:16 -04:00
Arun Raghavan
e1c40a567c scripts: Add an intended-roles policy script
This routes streams of a given media.role to devices which specify that
role in device.intended-roles.
2021-06-20 18:45:28 -04:00
George Kiagiadakis
c24db9f353 tests: add pipewire env variables when running tests, tidy up common_env
Related to pipewire!767
2021-06-18 19:34:25 +03:00
George Kiagiadakis
b222411356 tests/metadata: also fix failing metadata unit test
latest pipewire exports settings metadata too, so we need to filter
2021-06-18 15:30:55 +03:00
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