Wim Taymans
d6127a4745
handle Duplex media class
...
Audio/Duplex is both a source and a sink. Name the ports as input/output
and make sure we list them in the source and sink lists in pulse-server.
2020-12-02 11:44:19 +01:00
Wim Taymans
e995d3a832
media-session: store config data as json objects
...
So that we can use the json string escaping functions for keys
and use multiline config files.
2020-12-01 12:05:08 +01:00
Wim Taymans
19dc150643
media-session: don't emit metadata remove in shutdown
...
When in shutdown we destroy all objects but don't remove all
the metadata associated with them, like route settings.
2020-12-01 12:03:28 +01:00
Wim Taymans
19a67a2da5
media-session: add option to disable hardware volume
...
See #426
2020-12-01 10:45:24 +01:00
Wim Taymans
23bcc21240
media-session: remove metadata when default node is removed
2020-12-01 09:24:16 +01:00
Wim Taymans
f8e501169b
media-session: count property changes correctly
2020-11-30 15:05:53 +01:00
Wim Taymans
b8300c663b
improve some errors
...
Silence some -ENOENT warnings, they can happen when the object we
are introspecting is destroyed
2020-11-29 16:22:50 +01:00
Wim Taymans
62cdec8448
spa: move json parser to utils
...
Add unit test
Add escape function
2020-11-28 15:34:01 +01:00
Wim Taymans
261144c27f
media-session: add /etc/pipewire/media-session.d/ dir
...
Placing files in it will activate options in the session manager.
2020-11-25 16:13:20 +01:00
Wim Taymans
6ab25c6904
pulse-server: fix parsing of format-info
...
Fixes totem playback
2020-11-24 15:11:05 +01:00
Wim Taymans
b86acec625
media-session: ignore empty channelMap/channelVolume
2020-11-23 20:18:32 +01:00
Wim Taymans
c5ac48c5f4
media-session: clear metadata
2020-11-23 19:35:23 +01:00
Elliott Sales de Andrade
86fd6a0d3e
Fix some possible-NULL pointer usage.
2020-11-23 15:36:08 +00:00
Wim Taymans
2b95afeddc
media-session: add and parse channelmap in routes and stream
2020-11-23 15:34:24 +01:00
Wim Taymans
1f73280c52
media-session: fix parsing of booleans and null
...
Reorder the json file a bit
2020-11-23 10:10:59 +01:00
Wim Taymans
7ca8491be3
media-session: store values as json
...
Save settings as jason and use a small json compatible tokenizer to
load settings instead of our own less flexible format.
Save settings with a prefix and filter out entries without prefix
Listen for changes in restore.stream metadata and update properties.
2020-11-22 10:00:58 +01:00
Wim Taymans
b922f99293
restore-stream: expose stream restore info in metadata
2020-11-20 18:01:20 +01:00
Wim Taymans
5af2efdaa6
media-session: expose metadata method
...
Expose a method to create an export metadata with a certain name.
2020-11-20 17:58:08 +01:00
Wim Taymans
dae64bd2b5
policy-node: keep track how many times we link a node
...
Nodes that are marked as DONT_RECONNECT are only linked once.
Fixes a problem where a clients makes a DONT_RECONNECT stream but
without a specific sink.
See #395
2020-11-20 14:54:37 +01:00
Wim Taymans
7ac23c8b82
improve some docs about options
...
See #387
2020-11-17 21:00:17 +01:00
Frédéric Danis
6308c5d806
bluez5: backend-hsphfpd: Add mSBC support
...
mSBC can be enabled by passing "bluez5.msbc-support=true" parameter to
pipewire-media-session.
mSBC is automatically selected if remote device supports it.
2020-11-16 18:15:39 +01:00
Wim Taymans
6fa622d2d9
policy-node: only reconnect to given path_id
...
When the node is not found and we are not allowed to reconnect to
something else, error.
2020-11-16 13:28:35 +01:00
Wim Taymans
10207456f0
media-session: don't start pulse-bridge automatically
...
Don't start the pulse-bridge automatically because we don't
know what socket to listen on.
Also, listen by default on a safe socket, not used by pulseaudio.
2020-11-12 16:50:24 +01:00
Wim Taymans
1d001974d7
media-session: enable pulse-bridge by default
...
Now that we don't interfere with pulseaudio, enable it by default.
2020-11-12 11:11:53 +01:00
Greg V
cc0386e1c5
media-session: ifdef Linux-specific file option
2020-11-09 11:14:20 +00:00
Wim Taymans
1570e62635
remove hooks from objects
...
Remove the hooks we installed on objects in the destroy/free event
or before calling _destroy. This is not really needed but it is
a nice thing to do because it calls the hook removed callbacks.
2020-11-06 15:53:32 +01:00
Wim Taymans
9d598cde63
policy-node: always up or downmix to device format
...
Always remix the channels to match the ones on the device even if
that means upmixing.
This will make mono streams go to all inputs of the device instead
of just one.
Fixes #355
2020-11-04 09:47:20 +01:00
Wim Taymans
4f2b1c7684
media-session: avoid recursive rescan
...
A rescan can trigger a new rescan and with a blocking rountrip this
can recursively never end. Catch a rescan while rescanning and queue
it for when we end the current scan.
Fixes #364
2020-11-03 20:25:51 +01:00
Wim Taymans
6962c27af9
media-session: disable bluez5 and pulse-bridge by default
...
Some distros don't patch this up which interferes with the pulseaudio
server.
Fixes #360
2020-11-03 09:11:20 +01:00
Wim Taymans
c43026d93e
don't handle EINTR and EAGAIN as the same
...
EAGAIN means a non-blocking operation would block and we should not
try again right away but leave the loop and wait instead.
See #358
2020-11-02 16:43:56 +01:00
Wim Taymans
e094640c7b
handle EINTR and EAGAIN
...
Just do the call again instead of failing or logging an error.
Fixes #358
2020-11-02 14:51:07 +01:00
Wim Taymans
0ef41252bd
access: debug access control some more
2020-10-30 11:54:39 +01:00
Wim Taymans
f953efdefb
media-session: improve enabled/disabled options
...
Always use a default set of options and have enable/disable
add/remove options to/from it. Previously to enable just one option
you had to list all the other default enabled options as well.
2020-10-30 09:54:18 +01:00
Wim Taymans
952326323e
policy-node: also allow node name as NODE_TARGET
2020-10-24 15:50:09 +02:00
Wim Taymans
d55bc1eb86
keys: add PW_KEY_STREAM_CAPTURE_SINK
...
Add a property for capture stream to signal that they would like
to capture the output (monitor) of the default sink instead of the
default source.
Check the desired device we would like to capture from and handle
the capture from the sink by monitoring the monitor source.
2020-10-21 17:00:49 +02:00
Wim Taymans
a2c70781a3
media-session: use rtkit for session manager data thread
2020-10-21 16:36:37 +02:00
Wim Taymans
25e4f2088c
policy-node: also handle the single stream move
2020-10-21 15:39:37 +02:00
Wim Taymans
bfac6f04db
policy-node: avoid rescan when moving a node
...
When we are moving a node, the node becomes unlinked temporarily.
Make sure the rescan code doesn't try to link it to a node
meanwhile.
Fixes #344
2020-10-21 15:27:50 +02:00
Wim Taymans
77b91823f3
a2dp: mark a2dp-source as stream and autoconnect
2020-10-19 18:53:18 +02:00
Wim Taymans
3733a5e219
media-session: save last target_node
...
Keep a per node entry of the saved target node and use this when
there is no other target node.
When explicitly moving a stream, save the new target node.
2020-10-14 12:35:27 +02:00
Wim Taymans
12e6dd89e2
client: register client global after update properties
...
This way we only expose the client after we have all the properties.
Also add a new CLIENT_ACCESS property that contains the desired
client access mode.
2020-10-09 13:31:22 +02:00
Wim Taymans
f0102fd490
pulse: move pulse protocol to module
2020-10-08 18:06:11 +02:00
Wim Taymans
17843ae7cb
pulse-bridge: fix reply of record latency
...
Makes bluejeans in firefox work
2020-10-08 18:06:11 +02:00
Wim Taymans
fead5c18d6
pulse-bridge: fix state of source
2020-10-08 18:06:11 +02:00
Wim Taymans
3194d5ca81
pulse-bridge: add introspection of dummy sink/source
2020-10-08 18:06:11 +02:00
Wim Taymans
6f6337e732
pulse-bridge: support record streams
2020-10-08 18:06:11 +02:00
Wim Taymans
7c1fbf5bee
pulse-bridge: rework messages
...
Make recycled message blocks for receiving and sending data.
Implement async flushing out the output queue.
2020-10-08 18:06:11 +02:00
Wim Taymans
4ad085ef96
pulse-bridge: work more on timings
...
Fixes sync in firefox
2020-10-08 18:06:11 +02:00
Wim Taymans
ab4def7e5f
pulse: respect flags to set volume/mute
2020-10-08 18:06:11 +02:00
Wim Taymans
a4874abc46
pulse: restore volume and muted
2020-10-08 18:06:11 +02:00