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
Wim Taymans
a596cdbf2e
gst: return NULL for unknown format
2020-07-13 11:50:06 +02:00
Wim Taymans
031a8ea799
client-node: also unref the activation memblock
2020-07-10 16:11:16 +02:00
Wim Taymans
e58fcb95d0
client-node: remove the tag from the right pool
2020-07-10 16:10:45 +02:00
Wim Taymans
5cd495c93c
client-node: free old mapping only after importing the new
...
Keep the old mapping around until we manage to successfully import
the new mapping.
2020-07-10 12:57:55 +02:00
Wim Taymans
0430e7b8dc
client-node: clean up our memory mappings
...
Loop over our memory mappings and clean them up when we are destroyed.
2020-07-10 12:46:48 +02:00
Wim Taymans
ff8aaf9e62
node: set node io after registering
...
So that we have the right node_id in the position.clock field.
2020-07-10 12:45:44 +02:00
Wim Taymans
8a0a9c8094
mem: add some more debug
2020-07-10 12:44:50 +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
ee59bcd632
acp: emit volume/mute changes on change
2020-07-08 17:24:23 +02:00
Wim Taymans
bf9b58e1f5
pulse: emit server change events when default sink/source change
2020-07-08 17:10:27 +02:00
Wim Taymans
b896d65723
acp: emit param change when port changed
2020-07-08 16:16:43 +02:00
Wim Taymans
6d41e17ca3
pulse: improve name of monitors
2020-07-08 16:10:45 +02:00
Wim Taymans
4de3403c99
metadata: free item value as well
2020-07-07 20:25:01 +02:00
Julian Bouzas
2ae4322cca
a2dpsource: fill the buffer as much as possible
...
Fills the buffer until the buffer data size is maxsize / frame_size
2020-07-07 15:34:57 +00:00
Julian Bouzas
60eb8dae87
a2dpsource: add RateMatch IO
2020-07-07 15:34:57 +00:00
Frédéric Danis
e17688a43b
Fix missing headers check
...
Current Gillab CI fails with:
$ ./check_missing_headers.sh
spa/monitor/event.h not installed
2020-07-07 17:33:57 +02:00
Wim Taymans
ee54cb96aa
pulse: use metadata to store default source/sink
...
The metadata is implemented by the session manager and it can decide
what to do when the defaults change. It can also choose to save
(some of) the metadata to a database.
The metadata is also shared between applications so that changes can
be picked up immediately.
2020-07-07 17:09:46 +02:00
Wim Taymans
2991a814cd
pulse: wait for READY before calling callbacks
2020-07-07 13:42:56 +02:00
Wim Taymans
e030445e49
acp: add volume base and step
...
Add a READONLY property flag to makr properties READONLY
Set the base_volume and volume_step in the acp device
Send the base volume and step as REAONLY properties. Use these
in pulse layer.
2020-07-07 13:12:57 +02:00
Julian Bouzas
f75dfde89c
remote-node: process the mixer if io status have HAVE_DATA flag
...
Needed for audio sources created locally
2020-07-06 12:08:27 -04:00
Wim Taymans
cf8db93cd4
pod: add HARDWARE flag to spa_pod_prop
...
Add HARDWARE flag to mark a property that does some hardware control.
Mark the device volume/mute property as HARDWARE or not.
Use the HARDWARE property in pulse to set the right flags.
2020-07-06 17:46:32 +02:00
Wim Taymans
8e6b276d51
alsa-monitor: parse device events
...
Parse the device events and set the Props from the ObjectConfig
as the Props param on the node.
This propagates the software volume from the device to the
node.
2020-07-06 17:26:01 +02:00
Wim Taymans
b9d412e618
monitor: add device event
...
Add device events and signal soft volume with an object config
event.
2020-07-06 17:25:05 +02:00
Wim Taymans
d80d593271
acp: add support for soft volume
...
Add a set_soft_volume/mute event.
If we can't configure the hardware volume completely, notify
the remainder with the soft_volume/mute events.
2020-07-06 17:22:42 +02:00
Wim Taymans
4db6e0e2b3
client-device: fix event marshall
2020-07-06 17:13:50 +02:00
Wim Taymans
ea6dfe204c
acp: don't install library for now
2020-07-06 12:58:33 +02:00
Wim Taymans
0bbc25e3e2
media-session: add option to enable acp device
2020-07-06 12:51:38 +02:00
Wim Taymans
1612f5e4d2
alsa-acp: Add libacp based card device
...
libacp is a port and wrapper around the pulseaudio card profile code.
It uses a set of templates for construct a card profile and mixer port
settings. It also has support for UCM when available for the hardware.
2020-07-06 12:20:09 +02:00
Wim Taymans
5c6247daef
internal: improve assert
...
Pulse just logs to the debug log for a return_val_if_fail
2020-07-03 17:32:20 +02:00
Wim Taymans
c28ca320d1
Fix bluez node destroy
...
We create a ClientNode but monitor the resulting Node.
Destroy the object when removing a node.
2020-07-03 16:28:10 +02:00
Wim Taymans
8ad769b943
bluez: improve profile description
2020-07-03 16:25:46 +02:00
Wim Taymans
471c1a071c
policy: improve debug
2020-07-03 16:25:28 +02:00
Wim Taymans
a607174033
node: Pause when Suspend is not implemented
2020-07-03 16:24:55 +02:00
Wim Taymans
49332eb30f
bluez5: handle suspend
2020-07-03 16:23:17 +02:00
Wim Taymans
7778f8d70e
bluez5: remove devices correctly
...
Remember how many devices we emited for the current profile and
remove them all when we switch profile.
2020-07-03 16:12:19 +02:00
Wim Taymans
7b129c1020
sco: remove transport hooks on destroy
2020-07-03 16:10:46 +02:00