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
Wim Taymans
76aff7640f
pulse-server: improve variable name
2021-01-18 16:22:30 +01:00
Wim Taymans
88727afbd2
resample: take already queued sample into account
...
When asking for samples, take into account the amount of samples
we already have converted.
2021-01-18 15:09:54 +01:00
Wim Taymans
51d44e9154
test: improve resampler test
...
Test with different amount of input samples.
2021-01-18 15:08:23 +01:00
Wim Taymans
72a77863e0
impl-node: log quantum in XRun error
2021-01-18 11:24:53 +01:00
Wim Taymans
d9a63dc69f
alsa: disable pause-on-idle by default
...
snd_pcm_drop() causes pops and cracks. It is better to just let the
sink consume silence until it gets suspended.
2021-01-18 11:13:48 +01:00
Wim Taymans
19be555fa6
audioadapter: run the converter after follower drained
...
When the follower drained, rerun the converter again to let it drain
as well.
2021-01-18 10:29:50 +01:00
Wim Taymans
fd520c4b39
alsa-plugin: set buffer size correctly
...
Our output buffer size is always what is needed to produce one
period of samples. We use nframes from the hardware and the rest
we fill with silence.
2021-01-18 10:03:19 +01:00
Wim Taymans
be9c2f9757
pulse-server: account for underrun
...
Not quite sure, it needs more investigation but It seems the time
needs to increase when underrunning.
See #510
2021-01-17 21:07:31 +01:00
Wim Taymans
d2aee61880
alsa: don't write more than wat is requested
2021-01-17 17:20:59 +01:00
Wim Taymans
23fd40df94
daemon: support containers as arguments
...
so that
ags = "foo=bar baz=5"
can be written as:
args = { foo = bar baz = 5 }
2021-01-17 14:56:23 +01:00
Wim Taymans
ff416cdc9e
daemon: add some comments to the config file
2021-01-17 11:42:42 +01:00
Wim Taymans
9b9b85ddbf
alsa: put card name in udev monitor event
...
So that we can use it to construct a good name for the card.
Fixes #524
2021-01-17 11:35:27 +01:00
Wim Taymans
bf25fc1388
pulse-server: always use rate_match value when available
...
The minreq is just a fallback for when we don't know the exact
amount of required samples to consume from the ringbuffer.
2021-01-16 17:16:02 +01:00
Wim Taymans
02295c5e2b
alsa: call prepare again but ignore EBUSY
...
Not calling _prepare can cause problems on my card. So call it
again but ignore -EBUSY.
2021-01-15 18:42:35 +01:00
Wim Taymans
b4e3d546e0
alsa: fill frames with silence when underrun
...
Keep track of how many samples we need to produce. If we don't have
enough samples in the ringbuffer, fill the rest with silence.
See #564
2021-01-15 18:34:38 +01:00
Wim Taymans
6b0abd2057
channelmix: Improve unknown channel layout handling
...
Clamp position to valid range. so that AUX becomes UNKNOWN.
If we have one mono source channel and unknown destination, copy it
to all destination channels.
If we have one mono destination channel and unknown source layout,
average all channels.
Otherwise, pair source and dest channels.
See #538
2021-01-15 17:51:07 +01:00
Wim Taymans
376436fc2c
alsa: remove snd_pcm_prepare() call, it is not needed
...
set_hw_params already called _prepare for us and calling it twice
might cause trouble in some drivers.
See #580
2021-01-15 16:12:42 +01:00
Wim Taymans
482f96a644
alsa: add option to disable mmap access mode
2021-01-15 15:44:22 +01:00
Wim Taymans
2ff4615e53
alsa: prefer planar formats
...
They are easier to convert
2021-01-15 15:18:39 +01:00
Wim Taymans
5817b66a20
alsa-plugin: only parse props when updated
...
Check if the properties got update before we try to parse them.
If they are not updated, they might be empty and we would lose
our previously parse values.
Fixes default volume in alsa-mixer.
2021-01-15 10:29:32 +01:00
Wim Taymans
d7ff7d098b
audioadapter: don't emit xrun when drained
2021-01-15 09:46:17 +01:00
Wim Taymans
5a7f4a619a
pw-dump: also dump properties
2021-01-15 09:45:56 +01:00
Wim Taymans
ae263eeffc
pw-dump: only dump changed metadata entries
2021-01-14 21:14:16 +01:00
Wim Taymans
688b3c5ed4
pw-dump: only output [] when something changed
2021-01-14 20:17:22 +01:00
Wim Taymans
a97d4c44b4
pw-metadata: remove is when key == NULL
2021-01-14 20:11:43 +01:00
Wim Taymans
13cef576c9
pw-dump: dump metadata contents
...
Fix some leaks
2021-01-14 20:11:15 +01:00
Wim Taymans
792c01aede
pw-dump: trigger change in metadata
...
so that it is displayed
2021-01-14 19:22:40 +01:00
Wim Taymans
b118a84a60
module-metadata: set factory id in properties
2021-01-14 19:22:18 +01:00
Wim Taymans
a8faad9f17
fmt: support f32p -> s24s conversion
...
As used by MAudio Fasttrack Pro
See rhbz#916017
2021-01-14 17:58:54 +01:00
Wim Taymans
be107317f5
Silence some dbus errors
...
Log info when a service is not running and disable it.
2021-01-14 17:11:42 +01:00
Wim Taymans
7347b5ef05
alsa: add api.alsa.headroom setting
...
Can be used to tweak the extra distance kept between the hardware
and software pointers when reading and writing.
See #289
2021-01-14 17:10:05 +01:00
Wim Taymans
abe73c9146
meson: use global b_pie to build PIE executables
2021-01-14 16:29:32 +01:00