Commit graph

4366 commits

Author SHA1 Message Date
Wim Taymans
2362953931 audioadapter: update flags 2020-08-10 16:48:03 +02:00
Wim Taymans
fb76f484a9 remote-node: also send spa_flags 2020-08-10 16:45:44 +02:00
Wim Taymans
915fba1eee node: handle state change errors
Keep the last error around when it's actually an error
When we get the sync reply from the state change, check if we have
an error. Keep the node in SUSPENDED on error.
2020-08-10 15:23:09 +02:00
Wim Taymans
2c2bb381b3 link: refactor a little 2020-08-10 15:23:09 +02:00
Wim Taymans
374210c890 acp: add per device port list
Add the list of possible ports for a device.
Pass the allowed devices in the routes.
Store the active port in the device.

Fixes enumeration of ports on devices with UCM.
2020-08-10 14:25:03 +02:00
Wim Taymans
5d90fe26f3 stream: use PIPEWIRE_NODE env as target_id fallback 2020-08-07 16:19:06 +02:00
Wim Taymans
b89e07f8c0 stream: use PIPEWIRE_LATENCY env as fallback 2020-08-07 15:15:40 +02:00
Wim Taymans
5fda46fdb9 remote-node: activate node after init
Activate the node after we successfully created a proxy and
initialized it.
2020-08-07 11:52:35 +02:00
Wim Taymans
e5f85d6a4c remote-node: clean node on error 2020-08-07 11:52:14 +02:00
Wim Taymans
a0777d7806 policy-node: only set peer when we actually linked something 2020-08-07 10:50:30 +02:00
Wim Taymans
cb3f1b51aa adapter: only become started on success 2020-08-07 10:49:52 +02:00
Wim Taymans
f4e8ebab51 improve debug and error messages 2020-08-07 10:47:18 +02:00
Wim Taymans
44e74c599f node: add group_id property
Nodes with the same group id are scheduled by the same driver, even
if they are not in any way linked to eachother.
2020-08-06 18:00:46 +02:00
Wim Taymans
8b2617227a client-node: improve debug 2020-08-06 17:59:58 +02:00
Wim Taymans
46b8b67ee6 policy-node: small cleanup
to keep the orinal node around if we want to do something with it
later
2020-08-06 17:58:42 +02:00
Wim Taymans
7cdef8aa32 media-session: improve debug 2020-08-06 17:11:35 +02:00
Wim Taymans
b9862868c1 gst: convert properties to strings when we can 2020-08-06 15:10:44 +02:00
Wim Taymans
e71936f870 Improve naming
master -> driving
priority_master -> priority_driver
segment_master -> segment_owner
2020-08-06 13:49:33 +02:00
Wim Taymans
98b7dc7c0c gst: don't do set_caps from the pipewire callback
Don't do any GStreamer data transport from the PipeWire callback
because it might block in preroll and block our communication with
PipeWire. Instead, take the caps and wake up the caller to continue
with negotiation.
2020-08-06 13:03:40 +02:00
Wim Taymans
34334b6ea3 gst: increase buffers in sink 2020-08-06 12:58:13 +02:00
Wim Taymans
0347a753c9 gst: pool add support for DONT_WAIT flag 2020-08-06 12:52:16 +02:00
Wim Taymans
4b56574ce0 policy-node: don't fail on incomplete format
Use some defaults when parsing the audio format.
2020-08-06 12:51:20 +02:00
Wim Taymans
8a9bb9dabb Use fcnt F_DUPFD_CLOEXEC to dup an fd
Closes #38
2020-08-06 11:08:20 +02:00
Wim Taymans
f961c726de param: add type info for volumeStep and Base 2020-08-05 20:25:55 +02:00
Wim Taymans
209a729e2e port: only warn if we're not cleaning up 2020-08-05 17:56:21 +02:00
Wim Taymans
cb14b41537 pw-cat: enable rtkit 2020-08-05 17:46:51 +02:00
Wim Taymans
2cf5bf7ac1 context: make it possible to control loaded modules
use the PIPEWIRE_PROFILE_MODULES env variable to load the modules
when nothing else is given.
2020-08-05 17:37:40 +02:00
Wim Taymans
8e3ae33550 pulse: enable rtkit on the client 2020-08-05 17:37:17 +02:00
Wim Taymans
eeeca7ecd2 stream: set the right NODE_NAME 2020-08-05 13:43:56 +02:00
Wim Taymans
469dff0153 use global_update_keys
First set the properties in the object itself and then copy them
over to the global. This ensure that the global properties are
also in the object and makes code a bit cleaner.

It also make it possible to use the global id to make the property
values unique, if we want to later .
2020-08-05 12:55:33 +02:00
Wim Taymans
f79c347667 global: add method to update global keys 2020-08-05 12:29:19 +02:00
Wim Taymans
3abd46b619 jack: Use out node name from the server
Get the node name from the global info when we see it.
Check if the name changed and set the right result flag for the app.
2020-08-05 12:26:59 +02:00
Wim Taymans
cebd67e88b properties: use the _for_each iterator 2020-08-05 12:26:26 +02:00
Wim Taymans
9290137931 pulse: handle NULL pw_stream
The pipewire stream might have been destroyed when the pulse stream
is freed.
2020-08-04 18:20:20 +02:00
Wim Taymans
377b3f9d42 pulse: always load the registry
Always get the registry, even if we're not using the introspect API
we still need it to keep track of the linked devices.
2020-08-04 18:16:02 +02:00
Wim Taymans
653465a1b1 pulse: handle device_name of NULL as error 2020-08-04 18:15:19 +02:00
Wim Taymans
979fec288e stream: let the operation emit the TERMINATED state
When we disconnect, let the operation emit the TERMINATED state
because some apps expect this state to be emited asynchronously.

Makes GStreamer pulsesink work.

Fixes #210
2020-08-04 18:13:37 +02:00
Wim Taymans
94c23b7ed1 pulse: handle memory user_data of NULL 2020-08-04 18:11:58 +02:00
Wim Taymans
35376fc415 pulse: improve debug 2020-08-04 18:07:20 +02:00
Wim Taymans
9edb0c1206 pulse: actually remember the default source 2020-08-04 17:21:15 +02:00
Wim Taymans
db12f47505 0.3.9 2020-08-04 14:30:27 +02:00
Wim Taymans
ab999f00ae link: don't connect to port destroy signal
Now that _port_destroy will first destroy all the links, there is no
need to listen for the destroy signal anymore in the link.
2020-08-04 14:13:44 +02:00
Wim Taymans
5bf6acad06 alsa: use PIPEWIRE_REMOTE env variable 2020-08-04 14:13:07 +02:00
Wim Taymans
64067bafe3 media-session: remove listener 2020-08-04 13:46:22 +02:00
Wim Taymans
77bd687bac acp: fix size of array 2020-08-04 12:05:56 +02:00
Wim Taymans
007c50df56 stream: clear user data on flush
Or else we might add the memory to the free list again when
we free the buffers. Fixes audacity using the pulseaudio backend
in portaudio.
2020-08-03 21:53:51 +02:00
Wim Taymans
66816580bc alsa: improve configuration of NICK 2020-08-03 18:16:53 +02:00
Wim Taymans
9943733b8c acp: pass all properties when creating a card
They might contain other info like prefered card name etc.
2020-08-03 18:15:04 +02:00
Wim Taymans
d76b509995 jack: prefer nick for node name
The nick is shorter and nicer for jack applications. We have the
full description in the port alias 2.
2020-08-03 18:13:31 +02:00
Wim Taymans
d57da19f26 client-device: first set implementation, then register
Setting the implementation updates the properties so that we
have more info when creating the global.
2020-08-03 18:11:12 +02:00