Wim Taymans
0c04481ba7
metadata: improve default sink/source
...
Only check defaults when subject is PW_ID_CORE
Handle NULL keys: remove the defaults
2020-08-18 17:56:05 +02:00
Wim Taymans
28bb212630
policy-node: improve move
...
Don't try to do work when not needed
2020-08-17 17:50:42 +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
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
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
0d6bbaa7e1
policy-node: only configure devices when active
...
Wait until a node is active before we attempt to configure it or
else we don't yet have a format to configure it with.
2020-07-29 12:20:24 +02:00
Wim Taymans
a2de3b0873
policy-node: add default video source metadata
2020-07-28 11:17:36 +02:00
Wim Taymans
9e8851e0ae
policy-node: do downmix in monitor streams
...
Monitor streams usually have 1 channel so ask for all monitored
channels to be downmixed.
Don't try to configure video or unknown streams
2020-07-28 10:50:00 +02:00
Wim Taymans
a96fcf5c19
policy-node: rework node configuration
...
Add a configure stage to the node where the PortConfig is
determined.
Wait until we link a stream and then configure the node with the
portconfig of the peer.
Configure devices with the their best portconfig by enumerating
the formats.
2020-07-28 10:21:01 +02:00
Wim Taymans
4a8afe389c
policy-node: boost priority on default device
...
When we find a default device, boost the priority so that it
remains the target device even when a device with higher priority
is scanned later.
Fixes issue where default device was not selected because a higher
priority device was encountered after it.
2020-07-27 10:16:17 +02:00
Wim Taymans
266e1301d2
use id to store default sink/source
...
This is easier to handle in general and we should not use the name
as a unique id. If the session manager wants to save things, it can
use whatever fields it wants from the object to create a unique
persistent name.
2020-07-23 11:59:13 +02:00
Wim Taymans
201d762b2a
policy-node: refactor configure_node
2020-07-22 16:53:02 +02:00
Wim Taymans
8c4b594b50
policy-node: don't move to the current target
2020-07-20 14:46:44 +02:00
Wim Taymans
7915bf5778
policy-node: implement move node
...
Move nodes to a new target when the metadata changes.
2020-07-20 14:40:50 +02:00
Wim Taymans
02be602f97
policy-node: route to the default sink/source when found
2020-07-15 15:53:54 +02:00
Wim Taymans
61e2d5cb54
policy-node: track default sink/source and move streams
...
Keep track of the default source and sink and move all streams linked
to the old default to the new default when it changes.
2020-07-15 14:26:16 +02:00
Wim Taymans
b1293d9f6e
policy-node: only track stream peers
...
Only track the peer of streams. We only care about where we linked
this stream to. There is only one target per stream but the device
we link to can have many peer streams.
2020-07-15 14:22:56 +02:00
Wim Taymans
69cfc8e08c
policy-node: use the DONT_RECONNECT flag with a target
...
When a target is given and it doesn't exist, look at the
DONT_RECONNECT flag and error when we are not allowed to connect
to something else.
2020-07-09 13:03:02 +02:00
Wim Taymans
471c1a071c
policy: improve debug
2020-07-03 16:25:28 +02:00
Wim Taymans
82a83afd6b
policy: activate Unknown stream media type
...
And try to link them using the media.type property
2020-07-02 15:39:11 +02:00
Wim Taymans
e4e03fa7dd
media-session: always activate DSP nodes
...
They don't need to be activated with a profile.
2020-06-03 12:03:20 +02:00
Wim Taymans
aafd1e7298
improve debug
...
Improve log so that debug level 3 gives a reasonably readable overview
of what is going on.
2020-04-22 12:47:18 +02:00
Wim Taymans
c20100eabb
media-session: Add method to destroy a global
...
Destroy the stream when it is disconnected and it was marked as
DONT_RECONNECT.
2020-04-02 15:27:23 +02:00
Wim Taymans
ce275e5917
small cleanups
2020-03-03 10:25:03 +01:00
Wim Taymans
d3634aca7e
media-session: rework device reservation
...
Monitor the device reservation objects and mark the device available.
Don't select nodes from devices that are not available.
Acquire the device reservation when a device starts.
Release the device reservation when we suspend the device again.
2020-02-19 18:15:57 +01:00
Wim Taymans
88c6db8a82
policy-node: give more priority to newer video output nodes
...
A slight workaround for old firefox that doesn't specify the target
node, nor the media role when doing screen sharing.
2020-02-06 17:42:52 +01:00
Wim Taymans
b4c76ba78a
policy-node: only set PortConfig when we find a format
2020-01-28 15:38:35 +01:00
Wim Taymans
f792c3f536
fix some segfaults
2020-01-16 16:47:01 +01:00
Wim Taymans
6af00219e1
media-session: avoid some segfaults
2020-01-16 16:19:09 +01:00
Wim Taymans
b99074879f
policy-node: use the daemon samplerate
...
Use the samplerate of the daemon to configure the nodes.
2020-01-09 15:52:53 +01:00
Wim Taymans
2bca786fff
policy-node: use priority of the nodes
2020-01-08 17:29:11 +01:00
Wim Taymans
a3ddc6b744
media-session: add module to suspend nodes
2020-01-08 13:24:06 +01:00
Wim Taymans
ffbb74c4af
policy-node: implement video nodes
...
Always activate video nodes right away
Implement exclusive access again
2020-01-08 10:48:48 +01:00
Wim Taymans
b312e77385
Make simple node policy
...
Make it possible to run the session manager without endpoint
modules. Add a simple node policy that links nodes.
Move the session-manager implementation and startup of the
endpoint monitors to a separate module.
Handle async set_param on the device
2020-01-07 17:19:09 +01:00