Commit graph

2661 commits

Author SHA1 Message Date
Wim Taymans
24c68b0067 media-session: add config files
Remove -e and -d options
Manage modules in media-session.conf
Add alsa-monitor.conf that can match node/device properties with
a regex and update properties on it. All previous configuration and
more cane be done with this.
2020-12-30 13:15:08 +01:00
Wim Taymans
cb8e627b1e media-session: use new properties method to load state 2020-12-29 13:30:04 +01:00
Wim Taymans
923e82df27 properties: Expose _update_string() method
Refactor an internal method and expose as _update_string() to
update an existing properties structure with a string representation.
2020-12-29 13:15:54 +01:00
Georges Basile Stavracas Neto
56e2d6a3da filter, stream: Fix error check for DMA-BUF buffers
When a buffer is of type SPA_DATA_DmaBuf, the 'data' field
will be NULL - we instead have to check if the file descriptor
is valid. The current code, however, always checks if the
data is NULL, which gives a false positive for DMA-BUF buffers,
signaling an error when there is none.

Fix that by also checking if the buffer type is MemPtr together
with the NULL check of the 'data' field.
2020-12-28 15:58:38 -03:00
Ihor Kalnytskyi
8942f6b402 launch: avoid autostarting pipewire-pulse systemd units for root
Long story short, this is something pulseaudio has since 2017 [1]. If
pipewire-pulse is aiming to be a drop-in replacement, the same behaviour
is probably expected.

I noticed that without this line I hit some issues with systemd socket
activation. In fact, it does not work properly at all. It probably has
something to do with the fact that pipewire-pulse is started for GDM
session and is somehow propagated down to my own user session.

[1] 24928d6b6f
2020-12-28 13:35:41 +01:00
Gabriel Ebner
ad9d485d1b gst: set node.name and node.description based on client-name property 2020-12-26 10:11:42 +01:00
Wim Taymans
921aba9edf media-session: fix help
Use enabled and disabled options from the implementation so that we
can parse them in help.
2020-12-25 19:47:34 +01:00
Wim Taymans
f28fb692a4 pw-top: handle io 2020-12-25 16:35:38 +01:00
Wim Taymans
ae8f8b25f6 pw-top: add new tool
Uses ncurses to display all drivers and nodes with their latency,
error count and DSP usage.
2020-12-25 16:33:54 +01:00
Gabriel Ebner
7bdcfb6383 pw-cat: report delay 2020-12-23 19:13:29 +00:00
Wim Taymans
d7a2b569e4 alsa-monitor: make no-auto-port/profile instead
auto-port and auto-profile are enabled by default so make a no-auto
version to disable.
2020-12-22 13:12:12 +01:00
Wim Taymans
a8937413e6 acp: add options to disable profile and port switching
See #498
2020-12-22 13:08:14 +01:00
Pauli Virtanen
09265e116e media-session: accept multiple -p, -e, and -d command-line arguments
Combine arguments together if given multiple times, instead of using the
last one. Useful, since pipewire.conf appears to not do quotes.

Fixes !348
2020-12-22 12:47:34 +01:00
Wim Taymans
461e3db741 tests: fix some leaks
See #497
2020-12-21 20:07:02 +01:00
Wim Taymans
5804dd3f9b properties: fix leak with NULL or empty key
See #497
2020-12-21 19:48:55 +01:00
Wim Taymans
62954e14c3 node: improve profiler
Make a new complete event and use it instead of the start event
Use the start event at the start of the cycle
Make the profiler also log incomplete graph cycles
2020-12-20 20:37:21 +01:00
Wim Taymans
f630dd1a3b node: improve debug
Add duration/rate/position in warning
2020-12-20 20:37:21 +01:00
Wim Taymans
2d89ad8533 profiler: add xrun_count and latency to profiler 2020-12-20 12:32:54 +01:00
Wim Taymans
0370d7580f impl-node: save the original requested latency 2020-12-20 12:32:54 +01:00
Wim Taymans
c13183f182 impl-link: mark feedback links with property 2020-12-20 12:32:54 +01:00
Wim Taymans
34c33ccdbf policy-node: clear target node for dont-reconnect streams
When a stream is marked don't reconnect, clear the target-node so that
it does not accidentally gets linked to a save target. This makes it
kill the monitor stream from pavucontrol after a client disconnects.
2020-12-20 12:32:54 +01:00
Wim Taymans
7ef15f3721 pw-dump: convert unknown ids to id-<hexnum> 2020-12-18 17:54:40 +01:00
Wim Taymans
abe12cf790 pw-dump: improve choice values
Place range and step values on a single line
2020-12-18 17:49:46 +01:00
Wim Taymans
f7a7feea4e pipewire-pulse: use defines for our keys 2020-12-18 17:19:24 +01:00
Wim Taymans
bcceff4ab0 module-access: update with checks for fuse like upstream xdp 2020-12-18 15:48:13 +01:00
Wim Taymans
5ea1fd3e7d impl-link: fix dependencies for feedback links
A feedback link is scheduled as a dependency from input to output
node. Make sure we also notify the client of this dependency.

Fixes #404
2020-12-18 13:10:08 +01:00
Wim Taymans
2bd5dac306 media-session: create seq-bridge after we have permissions
See #423
2020-12-18 12:04:49 +01:00
Wim Taymans
d2a5f5c1ae pulse-server: also cleanup sample when error
Remove the separate error event and merge with the done event with
error code. This then also marks the sample as done when in error
so that it gets cleaned up properly.

Fixes #486
2020-12-18 09:50:12 +01:00
Wim Taymans
1a690a0cbb pulse-server: limit writes to ringbuffer
We can't write more to the ringbuffer than its maxsize. Some clients
send more than the negotiated maxsize and cause a crash if we don't
clamp.

See #440
2020-12-17 19:39:12 +01:00
Wim Taymans
e0580fedc1 pulse-server: handle seek flags and offset
Fixes #485
2020-12-17 16:49:17 +01:00
Wim Taymans
b812dbcbf6 impl: always copy the id in param_info
Or else we will not have the right id when the flags are 0
2020-12-17 16:11:30 +01:00
Wim Taymans
f8c96167f9 impl: Only return -ENOENT when param does not exist
We checked above if the param exited and returned -ENOENT if not.
When we can't find any parameter, simply return 0.
2020-12-17 15:56:22 +01:00
Wim Taymans
724d2581f0 pw-dump: add final \n at the end 2020-12-17 15:10:43 +01:00
Wim Taymans
0e9ba69d3a pw-dump: simplify the state handling
Fixes first \n
2020-12-15 18:12:21 +01:00
Wim Taymans
5e99ff52e7 pw-dump: handle NULL in link format 2020-12-15 10:17:47 +01:00
Wim Taymans
cc31412ef3 pw-dump: handle 0 size string 2020-12-14 17:15:49 +01:00
Wim Taymans
69ea147a29 pw-dump: add optional object id 2020-12-14 16:57:09 +01:00
Wim Taymans
5e33352d5d pw-dump: escape keys and strings
Use the json escape function to escape keys and strings.
Make most put functions accept an optional key
Use flags helper for permissions as well
2020-12-14 16:46:23 +01:00
Wim Taymans
8f85e74b5d pw-dump: add colors on tty 2020-12-14 16:19:56 +01:00
Wim Taymans
3ac2bc0ad2 pod: descend in array type if possible 2020-12-14 16:18:57 +01:00
Wim Taymans
dd28937ccb pw-dump: refactor change_mask code 2020-12-14 15:42:54 +01:00
Wim Taymans
88fe2c4fb4 tools: add pw-dump tool
Dumps the complete object tree as json so that it can be processed
with tools like jq
2020-12-14 15:22:16 +01:00
Wim Taymans
00295b64b5 pulse-server: don't write too small buffers
Fixes #399
2020-12-11 18:09:21 +01:00
Wim Taymans
bcf6c0986e pulse-server: read in chunks of minreq from the ringbuffer
Don't read too large chunks from the ringbuffer but in minreq
increments. This is more what pulseaudio does.

Fixes #463
2020-12-11 12:45:01 +01:00
Wim Taymans
d3db703f77 pulse-server: improve some debug 2020-12-11 12:39:46 +01:00
Wim Taymans
4ef0ef464e pulse-server: warn for unsupported seek flags 2020-12-11 10:39:15 +01:00
Wim Taymans
bec950440b alsa-monitor: add wildcard to disable hardware-mixers 2020-12-11 10:10:05 +01:00
Wim Taymans
760a63d340 metadata: clear item before remove
Otherwise the item is overwritten with the next entry and we should
not clear it.
2020-12-09 21:18:58 +01:00
Wim Taymans
606d48a3e8 adapter: remove unused defines 2020-12-09 20:32:05 +01:00
Wim Taymans
4e7be858e4 node: Add ParamBegin/End
Use these commands to mark the begin and end of a series of Param
enumerations and configuration, like when doing format negotiation. The
idea is that the device can remain open while we do this.
Use this in adapter when negotiating a format.
2020-12-09 17:10:52 +01:00