1
Fork 0
Commit Graph

5880 Commits

Author SHA1 Message Date
Wim Taymans a4f3b78dff conf: enable jackdbus support by default
Become a JACK client as soon as jackdbus is started. This is probably
a good thing to do by default.
2023-09-14 13:24:51 +02:00
Wim Taymans 846e732458 pulse-server: remove pending_streams list
We can simply use the pending flag and merge the handling of the new
stream with the stream move logic.
2023-09-14 12:08:48 +02:00
Wim Taymans 13caae49b5 pulse-server: avoid emitting changes for unused params
Don't emit change events when latency or tag change, for example.
2023-09-14 11:03:39 +02:00
Wim Taymans 3c812f672b pulse-server: add an option to check module arguments
Add a list of valid keys to the module info. When set, check if the
module arguments only contain the allowed keys and give an error
otherwise.
2023-09-13 12:26:57 +02:00
Wim Taymans b094057b0b handle NULL latency param
Fixes #3504
2023-09-13 11:13:48 +02:00
Simon Ruderich 615f950c2f pw-top: add missing options to man page and improve --help output 2023-09-11 18:50:24 +00:00
Stefan Ursella cacdcc1b62 pw-mon: add filter param to hide props and/or params 2023-09-11 17:42:14 +00:00
Wim Taymans 00a82017a2 stream: fix datatyp on copied object
First copy the object and then modify it to avoid changing the user
provided param.
2023-09-08 12:19:05 +02:00
Wim Taymans 016d15e598 ratelimit: missed -> suppressed
To avoid confusing with missed samples.
2023-09-08 12:18:23 +02:00
Wim Taymans 1837654a4b impl-port: only log changes 2023-09-07 17:46:34 +02:00
Wim Taymans 6eb7eb7df2 modules: fix page ref 2023-09-07 16:30:46 +02:00
Wim Taymans 0da572474f modules: forward tag param 2023-09-07 15:54:28 +02:00
Wim Taymans ebeae802ad audioconvert: improve tag and latency handling
Don't just forward the tag and latency events to the follower but let
the audioconvert aggregate and emit the updated tag/latency event
that is then configured on the follower.

When using the DSP mode of the audioconvert, this results in an
accumulated latency/tag from all the DSP ports instead of just
the last DSP port param update.

Put properties with media. prefix in tags in pw-cat.
2023-09-07 15:27:21 +02:00
Wim Taymans c5f188784d impl-node: make sure we always clear params
Always first clear the params before we start enumerating new ones.
Otherwise we only clear them when we see the first result and there
might not be a result.
2023-09-07 14:18:04 +02:00
Wim Taymans d7f7fd258d pw-cat: set default properties after setup
So that we can still set the MEDIA_NAME from the artist/title.
2023-09-07 10:05:15 +02:00
Jonas Holmberg be943ca9db context: scan peers in both directions
Don't stop scanning peers after trying one direction. Try the other
direction too, just like with link groups.

See a821027fb8.
2023-09-06 09:29:33 +00:00
Michael Tretter 9b29bcd4e8 conf: set description for test nodes
`wpctl status` shows the description of device nodes. Therefore, the
videotestsrc and audiotestsrc are listed as "(null)" if the example
configuration of the sources is used.

Set the description in the example for how to configure the audiotestsrc
and the videotestsrc.
2023-09-04 15:46:05 +02:00
Dmitry Sharshakov 18b0fe1e05 module-filter-chain: don't use i for single filename
While this shouldn't be broken, it's illogical
2023-09-01 19:30:07 +00:00
columbarius 33f98489d6 pipewire-vulkan: Start vulkan nodes via pipewire proxy server 2023-08-31 10:08:06 +00:00
Wim Taymans 9f30e58ef2 pipe-tunnel: support pipe-source as a driver
Use a timer to periodically schedule the pipe-source when configured
as a driver. Adjust the timeout period based on buffer fill levels.

Fixes #3478
2023-08-31 11:41:00 +02:00
Wim Taymans f25da522a4 pulse-tunnel: fix index after overrun
First advance the index, then fix the avail value or else we don't end
up changing the index at all.
2023-08-31 11:39:54 +02:00
Wim Taymans 9f66c42d1f pipe-tunnel: rework the source
Let the source write into a ringbuffer when there is data available.

We then read from the ringbuffer when scheduled and use a dll to keep
the delay constant. We can later make this a driver and use the rate
correction to tweak the timeouts instead of resampling.

See #3478
2023-08-30 18:41:19 +02:00
Wim Taymans bc15d0c766 pulse-server: support use_system_clock_for_timing
Move the pipe-sink to the dummy driver when instructed to use the system
clock.
2023-08-30 18:36:01 +02:00
Wim Taymans 20fdafb7f1 pulse-server: rename a variable to avoid confusion 2023-08-30 18:32:34 +02:00
Wim Taymans 3d0b662c5e pulse-tunnel: Make sure we send available data
Round down the size and avail to the frame size to make sure we always
send aligned frames.

When we don't have the required size, set the buffer to 0 but still send
whatever we have in the ringbuffer or else it stays there until some
unknown time when it gets flushed out again with new data.
2023-08-30 18:27:19 +02:00
Wim Taymans 89fab13c77 pulse-server: allow monitors when selecting source by index
Fixes #3476
2023-08-30 09:59:37 +02:00
Wim Taymans 41dcac0ecd Port: Add tag param
The tag param has a list of arbitrary key/value pairs. Like the Latency
param, it travels up and downstream. Mixers will append the info
dictionaries or do some more fancy merging.

The purpose is to transport arbirary metadata, out-of-band, through the
graph and it's used for stream metadata and other stream properties.
2023-08-29 14:22:13 +02:00
Wim Taymans 4e1c64df19 context: take current target when not updated
When we don't have a pending target duration/rate update, take the
currently configured clock target duration/rate as the target rate.

This needs to be done when the driver refuses to update the duration and
rate for some reason and places its own values in clock target duration/rate.
Otherwise we would think the driver is using some other duration than
what it is really using.

Try:
  - set alsa to irq based playback that refuses to change the quantum
  - paplay with some file that sets the quantum to 1024
  - pw-metadata -n settings 0 clock.force-quantum 256
  - the target duration will be set to 256 but alsa doesn't change it
  - stop playback
  - start playback again, the quantum is still 1024 and not 256
2023-08-29 10:14:38 +02:00
Wim Taymans b62675b39d Revert "impl-node: improve suspend"
This reverts commit 3b052eaa99.

This causes problems because the session manager wants to suspend the
running nodes before changing the port-config.
2023-08-29 09:43:55 +02:00
Wim Taymans f134abdac0 impl-node: improve debug 2023-08-29 09:22:34 +02:00
Wim Taymans 289661b663 impl-node: suspend before clearing format
First suspend and then clean the format. Otherwise we might clear the
format while running and potentially crash.
2023-08-29 09:22:06 +02:00
Peter Hutterer 26ecde20b9 pw-mon: check stdout, not stderr for tty
Commit afc88a12e5 changed pw-mon to use printf so we now need to check
stdout to know whether we need to print with colors.
2023-08-25 13:32:41 +00:00
Wim Taymans a821027fb8 context: scan link groups in both directions
Don't just stop scanning the link groups after we tried one direction,
also try the other direction.

Otherwise:

source -> loopback1_in|loopback1_out -> loopback2_in|loopback2_out -> record

will first scan from loopback2_out downstream and finds loopback2_in in the same
group but without downstream links. Then when upstream scan is done,
loopback2_out is already scanned and will be skipped and so loopback1
stays IDLE.

We fix this by keeping track of the direction that we scanned a node in
and only stop when we scanned it in the same direction twice.
2023-08-25 12:56:17 +02:00
Wim Taymans d416ac9f18 Revert "audio-src: test stream timings"
This reverts commit 150c1cc05d.

This was just a test.
2023-08-25 11:58:53 +02:00
Wim Taymans 414026bd36 conf: add example empty stream.rules template 2023-08-25 11:54:01 +02:00
Wim Taymans 8dd294bf44 conf: support ! to negate the match
So that you can do "application.name" = "!pw-cat" to match anything
that is not pw-cat and "application.name" = "!~pw-cat$".

Fixes #3460
2023-08-25 11:39:28 +02:00
Wim Taymans 0bfc02581f conf: handle regcomp errors and warn
Instead of silently ignoring the problem.

See #3460
2023-08-25 11:08:18 +02:00
Wim Taymans 3b052eaa99 impl-node: improve suspend
Make sure we can only suspend when the node is (going to) IDLE. We don't
really want to allow applications to suspend a node that is running or
starting up.

This might fix a race when a node is suspended at the same time it is
started and cause silence. It also fixes the issue of total silence when
doing "pactl suspend <node> 1" on a running node.

See #3378
2023-08-24 09:50:28 +02:00
Wim Taymans 6ad0eb533d Revert "impl-node: improve suspend"
This reverts commit 3c47fa894b.

suspend_node is called from other places where the node might not be
IDLE.

Fixes #3378
2023-08-24 09:43:36 +02:00
Stefan Ursella 71653e04d2 pw-top: add 'batch-mode' and iterations known from top 2023-08-23 09:53:51 +00:00
Stefan Ursella 7f30621b86 pw-top: format 'show_help' and sort options 2023-08-23 09:53:51 +00:00
Wim Taymans dbf1ea0e78 pulse-server: add alsa source and sink module
See #3456
2023-08-23 11:15:59 +02:00
Wim Taymans 293e1f85e6 conf: 0 is no longer the default
Fill the actual defaults as the param values.
2023-08-22 22:03:28 +02:00
Wim Taymans c9c91024af client-rt: add some examples for alsa properties 2023-08-22 15:41:38 +02:00
Wim Taymans f9c21789dc stream: improve docs a little more 2023-08-22 13:21:16 +02:00
Wim Taymans 2c2cb9117d stream: add some \code markers around code blocks 2023-08-22 13:11:45 +02:00
George Kiagiadakis 150c1cc05d audio-src: test stream timings 2023-08-22 12:53:58 +02:00
Wim Taymans 3c47fa894b impl-node: improve suspend
Make sure we can only suspend when the node is (going to) IDLE. We don't
really want to suspend a node that is running or starting up.

Deactivate the node while we suspend so that graph recalc because of the
unprepared links will not try to prepare the links again.

This might fix a race when a node is suspended at the same time it is
started and cause silence. It also fixes the issue of total silence when
doing "pactl suspend <node> 1" on a running node.
2023-08-21 15:28:36 +02:00
Arun Raghavan 86bd0eb708 logger: Add a mechanism to force colourised logging
This is handy if we want to redirect to a file but have colours to make
manual parsing easier (for example with `less -R`).
2023-08-08 17:13:31 +00:00
Wim Taymans 820ca90705 pulse-server: set all change_mask flags when removing
So that the logic to emit events will select sink and source objects.

Fixes #3414
2023-08-08 13:01:30 +02:00