Commit graph

5381 commits

Author SHA1 Message Date
Wim Taymans
1eb9d73814 bluez5: skip routes without a profile 2021-01-22 17:35:27 +01:00
Wim Taymans
2b98b7dc7a pw-dump: print None pod as null 2021-01-22 17:23:33 +01:00
Wim Taymans
8f5231bd45 impl-core: handle getrandom errors
Handle getrandom errors and fall back to rand() if all fails.

See #583
2021-01-22 16:38:34 +01:00
Frédéric Danis
f464d8c596 bluez5: Fix NULL dereference in backend-native
Fixes: #602
2021-01-22 15:28:21 +00:00
jasker5183
2521e6db1b Add msbc expectations 2021-01-22 15:16:37 +00:00
Wim Taymans
9a6888486f impl-core: use getrandom for cookie
Fixes #583
2021-01-22 15:47:12 +01:00
jasker5183
0dad70eb48 Add buffer.md to fix link in tutorial4.md 2021-01-22 14:07:59 +01:00
Oschowa
f767521baf spa: fix test-buffer
there is a new meta type since b39a2258
2021-01-22 13:51:08 +01:00
Wim Taymans
c866d5c1f4 Increase memlock limits in systemd service files 2021-01-22 13:18:48 +01:00
Wim Taymans
652a4ae26d pulse-server: use stream flags to tune latency
Use the early_requests and adjust_latency flags to choose the right
latency values, just like what pulseaudio does.
2021-01-22 11:39:47 +01:00
Wim Taymans
61dab51425 stream: use busy metadata
When we get a buffer from the server, mark it busy, when we queue it
again, mark it unbusy.
Refuse to dequeue a buffer when it is busy.
2021-01-21 17:46:47 +01:00
Wim Taymans
b39a2258c4 meta: add busy metadata
Metadata on buffers to mark when a buffer is in use. Writers
should only use buffers with a count of 0.
2021-01-21 17:46:47 +01:00
Wim Taymans
07b52299db pw-top: make a line shorter so that it fits better 2021-01-21 17:46:47 +01:00
Wim Taymans
73896bfa83 alsa: rework batch handling a bit
By default, use a 512 period for batch and use 512 headroom
Add a property to disable special batch handling.
2021-01-21 17:14:51 +01:00
Wim Taymans
af092a9a7e v4l2: respect allowed data types
Check if we can do DmaBuf as the data type before we attempt this.
Otherwise we don't get any data in clients that can't deal with
DmaBuf.
2021-01-21 16:04:37 +01:00
Wim Taymans
4fb967211e pw-top: refresh immediately 2021-01-21 15:20:07 +01:00
Wim Taymans
f96c7ede11 stream: handle drain from process
When process calls drain, also do one more loop to complete
the drain.
2021-01-21 13:41:06 +01:00
Wim Taymans
486d797735 pulse-server: use rate match to feed samples
Fixes #595
2021-01-21 13:39:54 +01:00
jasker5183
11f95fe11e Remove obsolete intructions 2021-01-21 12:04:37 +01:00
Wim Taymans
d9af97899c pulse-server: don't destroy clients playing a sample
When a sample is playing a cached sample and it disconnects we should
wait until all the pending samples are finished otherwise we stop
their playback and get a chopped or broken sample.

See #595
2021-01-21 11:53:06 +01:00
Wim Taymans
dcc5779cd6 pulse-server: put valid volume in sample info 2021-01-21 09:42:04 +01:00
Wim Taymans
44cad2d533 pulse-server: implement suspend 2021-01-20 20:33:16 +01:00
Wim Taymans
aee694fb82 0.3.20 2021-01-20 15:54:15 +01:00
Wim Taymans
2c4c78c51e media-session: add alsa.jack-device property to alsa-monitor 2021-01-20 13:48:06 +01:00
jasker5183
c3d4eea6ca Add new issue template 2021-01-20 12:43:09 +01:00
George Kiagiadakis
6a2778c2e7 spa: add type info for device event objects 2021-01-20 11:15:17 +00:00
Wim Taymans
4084db8641 module-access: Relax access check errors
Assume -EACCES is a normal thing when checking /proc/<pid>/root and
continue with just an info message. Log a warning and assume
flatpak for all other errors.

Fixes #432
2021-01-20 12:12:56 +01:00
Wim Taymans
675a12ef33 alsa: clamp elapsed time to delay
If the elapsed time is larger than the delay, we are dealing with
an older timestamp.

Fixes #597
2021-01-20 11:54:19 +01:00
Wim Taymans
384b8a4593 pulse-server: Only allow one memblock in the queue
Allow only one memblock in the output queue. Otherwise, if the
client is for some reason not reading from the socket, we would queue
an unlimited amount of messages until we get killed by OOM.

Change some warn to debug in the process function for things we
handle from the non-rt thread.

Fixes #488
2021-01-20 10:41:34 +01:00
Wim Taymans
8f80a2bc15 media-session: handle key == NULL
The key can be null when the metadata subject is removed.
2021-01-19 17:01:24 +01:00
Wim Taymans
96a2a2b4e2 pulse-server: Use the spa json implementation 2021-01-19 16:57:33 +01:00
Wim Taymans
579e8a4ea6 json: allocate one extra byte for the \0 2021-01-19 16:56:55 +01:00
Wim Taymans
f891324e25 pw-dump: mark objects without events as changed
Usually the event function marks the object as changed so when
there is no event function, mark the change immediately so that
we can dump it.
2021-01-19 16:36:55 +01:00
Wim Taymans
0e5ad1c0a4 module-rtkit: log the dbus error as a warning 2021-01-19 15:02:37 +01:00
Wim Taymans
abfc67a3ca Revert "remove mlock and use MAP_LOCKED"
This reverts commit ab91e94b59.

When no memory can be locked, the mmap fails with -EAGAIN.

Fixes #592
2021-01-19 14:47:52 +01:00
Wim Taymans
8c84c96fe1 daemon: add support for mlockall 2021-01-19 12:17:29 +01:00
Wim Taymans
ab91e94b59 remove mlock and use MAP_LOCKED
The warnings are confusing and a properly tuned system would have
the limits set correctly.
2021-01-19 11:59:21 +01:00
Wim Taymans
89641785c3 pulse-server: keep global free message pool 2021-01-19 11:06:00 +01:00
Wim Taymans
778bc45558 mem: add LOCKED flag to mlock the mapped memory 2021-01-19 10:52:29 +01:00
Wim Taymans
7e5441fbb3 pulse-server: implement stats 2021-01-19 10:52:29 +01:00
Wim Taymans
d82066e49f acp: sync with pulseaudio 2021-01-19 10:52:28 +01:00
Pauli Virtanen
d46c58e958 pulse-server: behave like PA when moving streams to default
Pulseaudio unsets the preferred sink/source when stream is moved to a
default target. Emulate this behavior by setting + unsetting
target.node, which informs policy-node to move it accordingly.
2021-01-18 22:40:27 +02:00
Pauli Virtanen
d1a0121b7c policy-node: handle moving streams when target.node is removed
When target.node metadata is unset, unset it also from the session node.
Schedule rescan in case this affects links.
2021-01-18 22:22:43 +02:00
Wim Taymans
272c0a4d83 policy-node: silence some normal warning
When a target-node is destroyed from a dont-reconnect node,
kill the node.
2021-01-18 20:56:40 +01:00
Pauli Virtanen
b10123eceb policy-node: make streams follow default sink/src changes
The motivation is to have both existing and new streams that have been
created without explicit target node, to be directed to the same devices
at all times. To achieve this:

Consider what find_node returns as the "default node".

Consider streams that auto+reconnect and don't have an explicit target,
as following default.  In rescan, if the default node has changed,
relink such streams to the new default.

Remove the old code that explicitly moved streams when the default.*
metadata changed, as it implements a similar thing but in a less robust
way (may fail to do what's intended, because the default device
metadata is commonly unset, or the metadata callback comes before
session_create has seen the new nodes).

Enable this feature based on "policy-node.streams-follow-default"
property. Allow setting the property also by loading the
streams-follow-default module. Enable it by default only for the
with-pulseaudio module group.
2021-01-18 20:49:58 +01:00
jasker5183
419d0ad7b6 Add directory for issue templates 2021-01-18 16:28:06 +00:00
Wim Taymans
02931df835 pulse-server: start with underrun_for = -1
PulseAudio starts with underrun_for equal to -1, sets it to 0 when
something was played and increments it from then on with the number
of bytes played.
2021-01-18 17:16:37 +01:00
Wim Taymans
55915f420e pulse-server: on underrun, pretend we read from the ringbuffer
Also update the ringbuffer read pointer on underrun.
2021-01-18 16:24:46 +01:00
Wim Taymans
6b2ec6d619 pulse-server: require at least 32 samples per buffer 2021-01-18 16:24:00 +01:00
Wim Taymans
235d25316c pulse-server: make sure we never try to ask more than tlength 2021-01-18 16:23:24 +01:00