Commit graph

4212 commits

Author SHA1 Message Date
Frédéric Danis
06a6e11806 bluez5: Create backend for native HSP support 2020-07-17 18:34:33 +02:00
Wim Taymans
7711c98123 jack: use default sink/source to sort ports 2020-07-17 17:23:43 +02:00
Julian Bouzas
23788ee617 sco-sink: clean up and write data at a constant bitrate
Audio data received by HSP/HFP devices need to be sent at a constant
bitrate to achieve smooth playback
2020-07-17 15:13:03 +00:00
Julian Bouzas
551844c0ef sco-source: initialize read mtu and read chunks of its size
The mtu value returned by the kernel seems to be incorrect, we use
the hardcoded value of 48 for now (like bluezalsa)
2020-07-17 15:13:03 +00:00
Wim Taymans
15a4019e45 client: refuse update of pipewire.* keys from client
Only the server and modules can update the properties with
pipewire.* keys.
2020-07-17 16:56:37 +02:00
Wim Taymans
07cc07597c access: always put access in property
Improve debug
2020-07-17 16:47:14 +02:00
Wim Taymans
cd7763c814 access: use key to access property 2020-07-17 16:46:26 +02:00
Wim Taymans
119ef5e376 session-manager: move portal check back to pipewire
Enable the portal check in pipewire.
Only do permission store queries in the session-manager for portal
managed apps.
2020-07-17 14:14:26 +02:00
Wim Taymans
5731447357 add portal module again
This access module now only checks if the connection is comming
from the portal and tags the ACCESS property with portal in that
case. It will no longer do permission store checks, that's for
the session manager.
2020-07-17 14:12:10 +02:00
Wim Taymans
9b00462561 client: also copy ACCESS key to global 2020-07-17 14:09:56 +02:00
Wim Taymans
89b189d190 access: don't check access if already set
If we already have an access property, leave the client as is.
2020-07-17 13:23:50 +02:00
Wim Taymans
4d4904187b client: update busy status after check_access
So that we block clients without permissions
2020-07-17 13:22:02 +02:00
Wim Taymans
f2c1ab6069 access: make access property configurable
Just set the value of access.force into pipewire.access so that
the session manager can deal with it.
2020-07-17 09:59:49 +02:00
Wim Taymans
33d7b6ea43 Remove old portal module from build 2020-07-16 17:56:21 +02:00
Wim Taymans
a295901329 Move portal module to session manager 2020-07-16 17:54:18 +02:00
Wim Taymans
d720724d48 media-session: add method to iterate objects 2020-07-16 17:48:29 +02:00
Wim Taymans
0e21464da2 media-session: also make objects for other types 2020-07-16 17:48:00 +02:00
Wim Taymans
7d56b78bce remove some unused fields 2020-07-16 17:47:30 +02:00
Wim Taymans
3eb37320c9 pw-cli: improve permission debug 2020-07-16 17:46:47 +02:00
Wim Taymans
50574b9523 flatpak: don't give write access for flatpaks 2020-07-16 13:34:06 +02:00
Wim Taymans
5f9bb13237 client: use core permission to pause/resume a client
Make it so that the permission of the core determines if a client
can continue or not. When the core is readable, the client is
allowed to continue otherwise it is paused.
2020-07-16 13:25:39 +02:00
Wim Taymans
ac97175380 pulse: don't try to do set_param when not writable 2020-07-16 13:25:03 +02:00
Wim Taymans
cbc579825c media-session: add flatpak module
Add a module that gives full access to flatpak apps. Later we should
do something more restrictive.
2020-07-16 12:52:00 +02:00
Wim Taymans
9caccb6125 pw-cli: quit when we quit 2020-07-16 12:49:17 +02:00
Wim Taymans
5afdd507c3 access: document and improve arguments
Add option to force flatpak security
When a check is inconclusive, go to the next check instead.
2020-07-16 11:45:44 +02:00
Wim Taymans
7ddc32a113 meson: place full path in the config 2020-07-16 11:44:10 +02:00
Wim Taymans
f306cbde0b command: pass right arguments to execvp
The first argument is the command (exec) and the next is the
actual command we executed.
2020-07-16 11:42:55 +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
5f2c4c70ec media-session: expose metadata 2020-07-15 14:21:35 +02:00
Wim Taymans
2d5a404244 media-session: add method to remove links 2020-07-15 14:20:46 +02:00
Wim Taymans
035fb26d71 media-session: keep track of links
Also keep track of links when not tracked in the endpoint link.
2020-07-15 14:19:25 +02:00
Wim Taymans
5194c8a92f media-session: start metadata first 2020-07-15 14:17:00 +02:00
Wim Taymans
583e450efd example: add more debug 2020-07-15 14:14:23 +02:00
Wim Taymans
77274b3ab0 node: use intermediate pending state
Use an intermediate pending state that contains the state currently
in progress and use this to decide if we need to issue start/stop
commands.

Otherwise we might be in the running state, issue a Stop command,
issue a Start command (ignored because already running), then the
Stop completes and the node is stopped.
2020-07-15 14:11:01 +02:00
Wim Taymans
6dcb19bbdf pipewiresrc: use more accurate timeout 2020-07-14 17:25:13 +02:00
Wim Taymans
a6d221f18a thread_loop: add more accurate timed_wait
Add get_time() to calculate a timespec timeout value.
Add timed_wait_full() to wait for a timespec
2020-07-14 17:13:59 +02:00
Wim Taymans
36511a5d8e gst: measure keepalive-time in milliseconds
And round up to the next integer for now.
2020-07-14 14:29:45 +02:00
Wim Taymans
9b4b7d1a2c evl: add include for spa_strerror
See #244
2020-07-14 14:19:26 +02:00
Wim Taymans
0344e09905 gst: add some more debug 2020-07-14 14:15:55 +02:00
Wim Taymans
993aa89030 gst: add keepalive-time property
Add a property to periodically send the last buffer to keep the
stream alive. Useful for sparse streams that need to keep the
encoder busy every once and a while.
2020-07-14 13:54:21 +02:00
Wim Taymans
f28ca843a6 format: fix typo 2020-07-14 10:21:35 +02:00
Wim Taymans
70652d1a37 gst: share the core between connections
Make all sources in the same process with the same fd share the
connection to the server. This makes it possible to set the same
fd on multiple sources/sinks and have them all use the same
connection, like when capturing multiple monitors from screencast
with the portal.

Fixes #241
2020-07-13 18:38:19 +02:00
Julian Bouzas
ba96eecba0 sco-source: clean up and support different buffer sizes 2020-07-13 12:05:01 -04:00
Julian Bouzas
f743fff694 sco-source: add RateMatch IO 2020-07-13 12:04:56 -04:00
Wim Taymans
a459c1f226 acp: sync with master 2020-07-13 14:39:27 +02:00
Wim Taymans
be7ff66d0b examples: clean up proxy 2020-07-13 13:12:20 +02:00
Wim Taymans
c173b23ac4 gst: use object_path to hide providers
Don't use the core info to manage the hiden providers, that info
can't be put there anymore because the session manager manages
the devices now.
Look at the object path instead and hide those with well known
prefixes.
2020-07-13 12:31:16 +02:00
Wim Taymans
8e9bbaf3dc pipewiresrc: add option to resend last buffer on EOS
Add an option to resend the last buffer on EOS with an updated
timestamp. This can be used to make sure encoders fill up the
gap between last buffer and EOS, like with sparse streams from
screen capture.
2020-07-13 12:11:34 +02:00