Wim Taymans
177e897a88
pulse-server: pass data with a ringbuffer
...
Implement the process function from the RT thread and use a ringbuffer
to pass samples around.
2020-10-08 18:06:11 +02:00
Wim Taymans
138e61138f
pulse: resize message dynamically
2020-10-08 18:06:11 +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
Wim Taymans
c81021a742
channelmix: keep amount of volumes we parsed
2020-10-08 18:06:11 +02:00
Wim Taymans
630889493c
pulse-bridge: Update client properties
2020-10-08 18:06:11 +02:00
Wim Taymans
949f923b80
pulse-bridge: implement timing and corking
2020-10-08 18:06:11 +02:00
Wim Taymans
a536c38fbe
pulse: use send to avoid SIGPIPE signals
2020-10-08 18:06:11 +02:00
Wim Taymans
90b52b9ff4
pulse-bridge: add more commands
2020-10-08 18:06:11 +02:00
Wim Taymans
9dad175959
pulse-bridge: implement stream volume
...
Implement some more things.
2020-10-08 18:06:11 +02:00
Wim Taymans
7655aa7066
pulse-bridge: implement enough to play flatpak Spotify
2020-10-08 18:06:11 +02:00
Wim Taymans
d180b8d927
beginnings of pulse protocol
2020-10-08 18:06:11 +02:00
Wim Taymans
e7585bd7b8
acp: handle devices with no ports
...
Make sure we don't crash when there are no ports on a device.
See #321
2020-10-08 18:05:49 +02:00
Wim Taymans
5c048500cc
stream: normalize volumes when monitoring
2020-10-07 12:45:28 +02:00
Wim Taymans
9054cfcd8b
channelmix: remap channel volumes
...
When we receive volume updates with a different number of channels
than we are configured for, remap them to our number of channels.
This currently involves taking the average volume until we actually
have a channelmap associated with the volume updates.
See #320
2020-10-07 12:01:37 +02:00
Wim Taymans
932adc18f8
stream: clarify that timestamp is in nanoseconds
2020-10-07 12:00:53 +02:00
Wim Taymans
1d95b5bb5b
pulse: fix fragsize initialization
2020-10-07 12:00:31 +02:00
Wim Taymans
d027a02223
pulse: ask up to tlength bytes
...
pulseaudio does not ask more than this as well.
2020-10-05 17:13:42 +02:00
Wim Taymans
6f6dc8b63e
pulse: set stream READY after it is linked
...
Wait until we have linked the stream to a device or stream before
we emit the READY state. This is what pulseaudio expects.
Remove stream_index from disconnecting stream so that we don't
accidentally use it again. It is possible that we already created a
new stream with the same id before the old stream could complete the
disconnect.
2020-10-05 12:16:49 +02:00
Wim Taymans
bcaf7cd722
adapter: remove redundant set_active call
2020-10-05 12:16:46 +02:00
Wim Taymans
b05597cf6b
stream: make sure stream is in the right state
...
An adapter stream is usually created in the active state so deactive
it before export when requested.
2020-10-05 12:16:42 +02:00
Wim Taymans
7ee166f4c6
Makefile: trace children in valgrind
...
So that we get info for the session manager as well
2020-10-02 16:23:29 +02:00
Wim Taymans
6f2534f5ab
core: improve debug
2020-10-02 16:23:08 +02:00
Wim Taymans
9e3ae3a045
acp: improve debug
2020-10-01 13:27:08 +02:00
Wim Taymans
c0c439ff76
acp: avoid profile switch to the current profile
2020-10-01 13:23:20 +02:00
Wim Taymans
971236e77a
acp: don't fall back to the highest priority unavailable
...
Use the Off profile in case there are no yes/unknown profiles.
2020-10-01 13:23:20 +02:00
Wim Taymans
e394c5145a
acp: only emit profile change for current profile
...
When a port is plugged/unplugged, first update all the profile states
and then emit a profile change only for the current profile. This way
the device can look at all the updated profiles to select the best one.
2020-10-01 13:23:20 +02:00
Wim Taymans
38276d126c
acp: improve debug
2020-10-01 13:23:16 +02:00
Wim Taymans
0da406d304
media-session: make sure we don't read invalid data
2020-10-01 11:32:40 +02:00
Wim Taymans
62b882c13d
acp: improve debug
2020-10-01 11:32:28 +02:00
Wim Taymans
735eefa2fb
acp: pass right user_data to event
2020-10-01 11:31:52 +02:00
Wim Taymans
41db0f35b3
acp: sync with latests
2020-09-30 12:56:05 +02:00
Wim Taymans
bc35221210
context: destroy clients first
...
Destroy clients before trying to remove nodes. If the clients are
still connected they might try to react to the removed nodes.
2020-09-30 12:01:46 +02:00
Wim Taymans
664ecbefee
loop: move debug to _fp
2020-09-30 12:01:23 +02:00
Wim Taymans
68bff629b3
jack: optimize get_buffer
...
Keep track of global mix port.
Calculate the get_buffer function beforehand.
2020-09-30 11:59:41 +02:00
Wim Taymans
ac4d4582a4
pulse: set mask after completing the operation
...
This ensures we first finish all pending operations and then get
notifications of the new events. Brings pactl subscribe in line
with what it does on real PulseAudio.
2020-09-30 10:16:20 +02:00
Wim Taymans
19c9a55050
pulse: first sync globals, then try operations
...
First sync the globals and if no global created new pending operations,
run through the operations. This ensures no operation is run before
all globals have data.
2020-09-30 10:14:44 +02:00
Wim Taymans
60df925dfd
pulse: set monitor as device.class for monitor sources
2020-09-30 10:14:04 +02:00
Wim Taymans
c91afe2525
pulse: increase period size when !ADJUST_LATENCY
2020-09-29 17:58:59 +02:00
Alexander Volkov
17b6dd40e8
pulse: fix build with pulseaudio < 13.0
2020-09-29 15:47:24 +00:00
Wim Taymans
30254977c6
pulse: improve support for !ADJUST_LATENCY streams
...
When a stream does not specify ADJUST_LATENCY, use some slightly
different metrics to implement the readable_size. We want the app
to fill as much space as possible. Makes mplayer work and paplay
use the right amount of buffering.
2020-09-29 17:42:11 +02:00
Wim Taymans
9639f32db5
v4l2: zero some structures before ioctl
2020-09-29 17:06:53 +02:00
Wim Taymans
ced338ad7d
v4l2: mmap the buffer again
...
Some drivers need a mmaped buffer...
2020-09-29 17:06:24 +02:00