Commit graph

3164 commits

Author SHA1 Message Date
Wim Taymans
d8c86d977a remote: destroy mempool after proxies
Some proxies might want to free the memory from the pool.
2019-11-21 13:04:58 +01:00
Arun Raghavan
8f1b840979 ci: Automate container building in Gitlab
This removes the need to manually build and push out the Docker images
for the build. This step is now in GitLab CI itself.
2019-11-21 17:24:21 +05:30
Wim Taymans
3f89911f1d device: expose DEVICE_API in global properties 2019-11-21 09:34:34 +01:00
Wim Taymans
feb8dd3a34 Add include of keys.h 2019-11-21 09:34:08 +01:00
Wim Taymans
aa4dc73b21 node: move keys to separate file 2019-11-21 09:33:50 +01:00
Wim Taymans
40e837555d jack: improve port sort order
Sort by object path before attepting by id.
2019-11-21 09:33:16 +01:00
Wim Taymans
81bf9cd488 improve some debug 2019-11-21 09:32:48 +01:00
Wim Taymans
18974f90f6 pod: rename context to flags in spa_pod_prop
Flags are more useful when we can use them to describe how to
filter properties later.
2019-11-21 09:32:08 +01:00
Wim Taymans
e620412034 param: add more fields to Profile param
Add description and priority to profile
2019-11-21 09:31:53 +01:00
Wim Taymans
e18a24493a client: don't register in client_new()
Don't register in client_new() to make it possible to do other things
on the client before registering. Register the client in protocol-native
after we set up the events etc.
2019-11-19 15:59:45 +01:00
George Kiagiadakis
5f65f1cbbe client: register the global early, in pw_client_new()
otherwise, if the access module blocks the client, the on_start
callback in the protocol is not called and there is no global,
which means the session manager cannot do anything to grant
permissions on this client and the client is blocked forever
2019-11-19 14:50:04 +00:00
Arun Raghavan
5abab5d4da doc: Add some documentation on generating CI docker images 2019-11-19 14:45:53 +00:00
Julian Bouzas
ef94b5c345 tools: add new pipewire-dot tool to generate a global objects dot graph 2019-11-19 15:41:50 +01:00
Wim Taymans
f92775719a log: make timestamps configurable 2019-11-19 15:38:09 +01:00
George Kiagiadakis
53f93c2bde logger: print timestamps on logged messages
Timestamps have usec precision and the seconds are limited
to 9 digits. Usually what matters in these messages is to spot
delays between printouts and not really what is the absolute
time of the system.
2019-11-19 14:23:49 +00:00
Wim Taymans
ac24743b2e the epoll shim should only be used by the system library.
All other places should use the system library to get the right
fds.
2019-11-19 15:16:18 +01:00
Gleb Popov
2720df0175 Do not call memfd_create on FreeBSD. 2019-11-19 13:41:40 +01:00
Gleb Popov
47f7caac06 Don't include byteswap.h on FreeBSD. 2019-11-19 13:41:40 +01:00
Gleb Popov
999fa525f5 Implement _gettid() for FreeBSD and do not call pthread_setschedparam() with SCHED_RESET_ON_FORK argument. 2019-11-19 13:41:40 +01:00
Gleb Popov
6ea24a7db5 Don't call getsockopt with SO_PEERCRED and SO_PEERSEC parameters on FreeBSD. 2019-11-19 13:41:40 +01:00
Gleb Popov
33df224254 Use pthread_set_name_np() instead of pthread_setname_np() on FreeBSD. 2019-11-19 13:41:40 +01:00
Gleb Popov
feb9a4b9e1 Don't call prctl() on FreeBSD. 2019-11-19 13:41:40 +01:00
Gleb Popov
0a21c61ed0 Don't define memfd_create() and USE_MEMFD on FreeBSD. 2019-11-19 13:41:40 +01:00
Gleb Popov
9ab4e39704 Add a stub implementation for sched_getcpu, as this function isn't present on
FreeBSD.
2019-11-19 13:41:40 +01:00
Gleb Popov
da7eefd60e Implement get_count() from cpu.c for FreeBSD. 2019-11-19 13:41:40 +01:00
Gleb Popov
ef3ebbed46 Define empty struct ucred on FreeBSD. 2019-11-19 13:41:40 +01:00
Gleb Popov
aec64336fe Do not try to include endian.h on FreeBSD. 2019-11-19 13:41:40 +01:00
Gleb Popov
fd937fa378 On FreeBSD, add dependency on epoll-shim library.
FreeBSD doesn't provide timerfd and eventfd functions. These are implemented in
3rd party library called epoll-shim. Link targets requiring these functions to
this library.
2019-11-19 13:41:40 +01:00
Wim Taymans
68e94a2e7e system: use spa_system functions for fds 2019-11-19 13:41:40 +01:00
Wim Taymans
b14bb1f496 media-session: don't include use-case.h
We only use the use-case manager in alsa-endpoint
2019-11-19 11:29:50 +01:00
Arun Raghavan
f61498b863 session-manager: Fix use-case.h include ordering
Seems like the ALSA requires the general headers to be included before
use-case.h.
2019-11-19 07:45:43 +05:30
Wim Taymans
3c51f559ef elsa-endpoint: include asoundlib first 2019-11-18 10:40:50 +01:00
Philipp Zabel
8c53e5305d meson: remove spa option
PipeWire does not work without at least the basic SPA plugins.
Remove the option to disable SPA.

Fixes #198

Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com>
2019-11-12 08:14:13 +00:00
Wim Taymans
c63f0ed562 doc: add session-manager <-> pulseaudio mapping 2019-11-08 15:53:14 +01:00
Arun Raghavan
cbf495fa35 Add a code of coduct
This is the Contributor Covenant v1.4.1.
2019-11-08 13:57:36 +05:30
Arun Raghavan
4f70a19a82 gitignore: Add generated Makefile 2019-11-08 13:00:00 +05:30
Wim Taymans
f918fa874f Update README.md 2019-11-07 15:46:04 +00:00
Wim Taymans
9f765897db add missing files 2019-11-07 16:39:13 +01:00
Wim Taymans
4ad7ce3aa2 session-manager: split policy and monitor
Separate the session manager in a monitor and policy part.

The monitor manages the devices and endpoints.

The policy watches the nodes/ports/clients and applies the policy
of linking them.

Because both now have a separate connection, we can remove some
hacks in the protocol. When a remote was both the implementer and
user of an object we could get in a deadlock when the user was
blocked waiting and the implementator was blocked sending a reply.
We used to un-busy a client when it was expecting a reply from a
ping or sync for this reason.

Add and use some more keys for the endpoints and streams.
2019-11-07 16:03:00 +01:00
Wim Taymans
8bbfe876a7 Revert "WIP use endpoint in pulse"
This reverts commit 7a4a8d78b9.
2019-11-07 11:45:16 +01:00
Wim Taymans
74b4790afe core: handle error when creating memorypool
Start data loop later.
2019-11-07 11:43:09 +01:00
Wim Taymans
638ee33f44 remote: only load protocol when not already loaded 2019-11-07 11:41:14 +01:00
Wim Taymans
7a4a8d78b9 WIP use endpoint in pulse 2019-11-06 11:34:14 +01:00
Wim Taymans
9df6efcd8d properties: copy_keys -> update_keys
Change copy_keys to update_keys and make it more powerful by taking
a spa_dict as the source.
Copy some more properties in the session.
2019-11-05 16:35:15 +01:00
Wim Taymans
60cd74fdb0 alsa: set MEDIA_CLASS in nodes 2019-11-05 16:34:12 +01:00
Wim Taymans
1f5aa26452 type: move implementations to a separate section 2019-11-05 16:31:40 +01:00
Wim Taymans
cd1ec41253 jack: use metadata when available 2019-11-05 10:03:35 +01:00
Arun Raghavan
4cf66c00c0 readme: Format in Markdown and add some more information 2019-11-04 16:33:51 +00:00
Wim Taymans
8409e8be49 endpoint: make endpoints of alsa devices
Make one endpoint for each device
Make a stream for each node
2019-11-04 17:30:33 +01:00
Wim Taymans
6397db9d68 protocol: init spa_dict properly
Or else the flags might be wrong.
2019-11-04 17:30:33 +01:00