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
Wim Taymans
2a630dbecd
jack: move some debug to fastpath
2020-09-29 16:57:50 +02:00
Wim Taymans
ed1ee3f164
v4l2: detect driver reusing buffers
...
Some drivers seem to only use 2 buffers when asked for 16 buffers. We
can see this because the buffer is already queued. In this case, just
use the 2 buffers.
See #294
2020-09-29 12:33:14 +02:00
Wim Taymans
2df10d1a40
channelmix: reset the volume if the channels changed.
2020-09-29 12:02:37 +02:00
Wim Taymans
f70d0b19af
channelmix: add option to NORMALIZE volumes
...
Normalize the complete matrix with the same coefficient
2020-09-29 12:02:34 +02:00
Wim Taymans
700a0aa35c
Fix FLC+FRC to FL+FR
2020-09-29 12:02:30 +02:00
Wim Taymans
df3394a694
add some more debug
2020-09-29 12:02:25 +02:00
Wim Taymans
62ef0145c3
pulse: limit get_writable_size()
...
Try to limit the amount of data we can write. Fixes chrome playback.
2020-09-29 09:57:16 +02:00
Wim Taymans
81ca70af9b
alsa-monitor: avoid crash in release
...
Only try to release the device when we have a proxy.
Fixes #310
2020-09-28 18:23:23 +02:00
Wim Taymans
d7714f734d
0.3.13
2020-09-28 16:08:10 +02:00
Wim Taymans
5dedf483bb
pulse: fix load_module
2020-09-28 16:05:10 +02:00
Wim Taymans
588a946311
pulse: don't use queued_bytes for queue fill level
...
The queued bytes are already included in the read/write index.
2020-09-28 13:09:47 +02:00
Wim Taymans
08438903e5
acp: reset soft volume
...
When we have accurate enough hardware volume, set the software volume to
1.0. Also fixes the issue of going to 0 volume and then staying silent
until we raise the volume above 1.0.
2020-09-28 12:40:16 +02:00
Wim Taymans
479bf3c803
fmtconvert: fix debug line
2020-09-28 11:47:16 +02:00
Wim Taymans
d13181fb37
acp: prefer some other profile than Off
...
The Off profile is always available but we should only use it as the
ultimate fallback when all other profiles are NO.
Fixes #309
2020-09-28 11:39:09 +02:00
Wim Taymans
a97287351c
acp: use flag for the Off profile
2020-09-28 11:32:36 +02:00
Wim Taymans
9f1d84e37c
v4l2: in alloc buffer, don't mmap, just pass the fd
...
If we can't use EXPBUF, just put the fd and mapoffset in the buffer
memory. This way we can pass the fd to the client and let it mmap .
2020-09-27 17:07:29 +02:00
Wim Taymans
59990ea049
v4l2: fall back to mmap when EXPBUF fails
...
If EXPBUF returns and error, try to mmap instead.
Fixes #294
2020-09-27 16:30:51 +02:00
Wim Taymans
cce8f3fb08
v4l2: improve debug
2020-09-27 16:30:06 +02:00
Wim Taymans
79fbddb838
stream: handle out of buffers port
...
If the port was out of buffers and we can't recycle a buffer, return
-EPIPE.
2020-09-25 18:24:29 +02:00
Wim Taymans
013e94ee4e
audioadapter: propagate errors from the follower
2020-09-25 18:24:04 +02:00
Wim Taymans
c2fc8423eb
jack: move metadata to exports file
...
So that we don't have to depend on the header file.
Fixes #306
2020-09-25 17:39:26 +02:00