Commit graph

601 commits

Author SHA1 Message Date
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
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
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
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
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
390f6c9cb8 perm: add a new L permissions
When a client has the L permission on the node, it can make links
between the node even if the owner of the node can't see the other node.
2023-07-28 11:01:43 +02:00
Wim Taymans
0ab6452b7e pw-cat: exit when we are unconnected
We get unconnected when the session manager kills us when it can't
make a link.

See #2731
2023-07-26 16:03:40 +02:00
Barnabás Pőcze
fe45786a5d treewide: add some examples for the spa_auto* macros 2023-07-11 14:23:53 +02:00
Wim Taymans
d5d8ebeaac pw-cat: only override properties when not already set
This makes it possible to override any of the properties with -P such as
the graph rate.
2023-06-30 16:24:13 +02:00
Wim Taymans
2d253de359 module-profiler: add per client xrun count in profiler data
So that pw-top can show the client xruns instead of the driver xruns
2023-06-02 13:23:55 +02:00
Wim Taymans
3f46044c39 impl-node: update xrun_count of late nodes
When the graph didn't complete, update the xrun_count in each node
that didn't complete.

We can then remove the code to simulate that from pw-top.
2023-05-22 10:24:51 +02:00
Wim Taymans
2ed65a7e36 profiler: improve profiler stats
The driver and follower signal times are currently the same timestamp
so allow a 0 difference between the driver and follower signal time
to calculate the scheduling delay.
2023-05-06 10:54:57 +02:00
Wim Taymans
181cbc5c99 pw-config: fix include for isatty 2023-04-20 10:40:47 +02:00
Wim Taymans
e90e948166 man: add pw-config man page 2023-04-20 10:24:29 +02:00
Wim Taymans
2d388c6908 properties: add color support for dumping properties 2023-04-20 10:02:08 +02:00
Wim Taymans
d1aeb8144b tools: add pw-config
Add a tool to debug how config files are loaded and merged.
2023-04-19 18:06:22 +02:00
Wim Taymans
ccd118368e pw-metadata: add -l option to list available metadata 2023-04-14 15:06:55 +02:00
Wim Taymans
e1aedbab5b pw-cli: avoid property leak 2023-03-16 12:55:27 +01:00
Wim Taymans
98a214891d handle some uninitialized variables 2023-03-16 12:29:15 +01:00
Wim Taymans
1c18e8aa69 handle some error cases 2023-03-16 12:28:29 +01:00
Barnabás Pőcze
1ef43a5255 meson.build: install symbolic links instead of compiling multiple times
Currently, among others, the `pipewire-pulse` executable is an
exact copy of the `pipewire` executable. Use meson's
`install_symlink()` to avoid the need for compiling the same thing
multiple times. Also use `custom_target()` so that the aliases
are available in an uninstalled environment.

Do the same for `pw-cat`. The benefit is that all aliases
of `pw-cat` are now available in an uninstalled environment.

This commit increasese the minimum meson version to 0.61.1
as that is needed for `install_symlink()`.

The reason for using 0.61.1 instead of 0.61.0 is the following bug:
https://github.com/mesonbuild/meson/issues/9820
2023-03-10 19:50:29 +01:00
Carlos Rafael Giani
f03c606ad9 pw-cat: Keep track of excess playtime when playing encoded audio 2023-02-24 14:15:13 +01:00
Carlos Rafael Giani
dc161fc6af pw-cat: Rework encoded audio support to use libavformat to parse frames 2023-02-24 14:15:13 +01:00
Carlos Rafael Giani
580a3d9872 pw-cat: Enable libavutil logs
This is useful for debugging pw-cat encoded audio playback errors.
2023-02-24 14:15:13 +01:00
Barnabás Pőcze
934ab3036e treewide: use SPDX tags to specify copyright information
SPDX tags make the licensing information easy to understand and clear,
and they are machine parseable.

See https://spdx.dev for more information.
2023-02-16 10:54:48 +00:00
Wim Taymans
dd0d3ac264 pw-cat: remove useless code
The data stride for encoded formats should be 1 and also placed in the
stride in the buffer (not 0). So there is really no difference with the
regular codepath.
2023-02-14 16:44:52 +01:00
Wim Taymans
b9ddd54a98 pw-cat: don't read more than the requested frames 2023-02-14 16:44:52 +01:00
Carlos Rafael Giani
59ad6c26aa pw-cat: Add fallback for the older libavcodec channel layout API
Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
2023-01-24 08:44:14 +00:00
Carlos Rafael Giani
e261f2ac1c pw-cat: Check for pw_cat_ffmpeg flag instead of HAVE_ALSA_COMPRESS_OFFLOAD
FFmpeg integration in pw-cat does not strictly require Compress-Offload;
for example, there could be other nodes in the graph that can handle
compressed audio.

Signed-off-by: Carlos Rafael Giani <crg7475@mailbox.org>
2023-01-24 08:44:14 +00:00
Carlos Rafael Giani
6284cf39c0 meson: Rework FFmpeg / tinycompress detection and add pw-cat-ffmpeg option
* Decouple FFmpeg integration in pw-cat from the ffmpeg option; if
  one wants to use Compress-Offload but not the ffmpeg SPA plugin,
  it is then possible to just pass -Dpw-cat-ffmpeg=enabled to meson.
  Likewise, this also makes it possible to build the ffmpeg plugin
  without extending pw-cat.
* tinycompress does not need to be detected in the root meson.build,
  since it is only needed by the alsa plugin.
2023-01-24 08:44:14 +00:00
Carlos Rafael Giani
e9a2c6aa34 Rename "compressed-offload to "Compress-Offload" in the code 2023-01-24 08:44:14 +00:00
Sanchayan Maity
55a79fd16a pw-cat: Add support for compressed formats 2023-01-24 08:44:14 +00:00
Wim Taymans
3bfee14d7f pw-cli: add -m option to help 2023-01-24 09:14:33 +01:00
Wim Taymans
d83f2520b6 pw-cli: silence port changes outside of monitor mode 2023-01-20 17:10:52 +01:00
Wim Taymans
74673c0862 pw-cli: suppress some output
Only print changes to object when monitoring.
Only print results from commands when interactive.
2023-01-20 16:28:50 +01:00
Wim Taymans
f472fd736d fix includes
Only include debug we need. We usually only need the debug types.
2023-01-18 13:12:16 +01:00
Wim Taymans
1beddd78d2 tools: clarify the target param
The target param is an object.serial or node.name.
Use TARGET_OBJECT instead of NODE_TARGET.
2023-01-10 16:45:50 +01:00
Wim Taymans
e099f0598a pw-reserver: improve output a little 2023-01-09 11:49:10 +01:00
Wim Taymans
0ddf80d470 midifile: error won invalid track size
When the track data would exceed the file size, return an error.
2023-01-09 11:49:10 +01:00
Thomas Weißschuh
d4db7e1d9b pw-dump: sort dictionaries
Dictionaries are by default printed in their insertion order.
This is unergonimic when comparing properties created by different
clients, as they may insert them in different orders.
2023-01-06 11:15:17 +00:00
Dylan Aïssi
cbc75dc98d pw-mon: recognize -N and -C as valid options 2022-12-14 11:07:42 +01:00
Wim Taymans
87d2719148 utils: expose pw_split_ip 2022-12-12 16:45:30 +01:00
Wim Taymans
a6f8790ece pw-top: log core errors, silence other errors with info 2022-12-08 17:29:19 +01:00
Wim Taymans
c30d743198 pw-top: initialize info struct with 0
So that we don't accidentally print uninitialized values.
2022-11-03 13:08:48 +01:00
Wim Taymans
e3a4797063 pw-top: support MJPG and H264 formats 2022-11-02 17:14:40 +01:00
Wim Taymans
c5f7d3a728 param: improve pw_param
Add a sequence number to pw_param.
Add param_info to param_update to filter out the params of the latest
sequence number.

This can be used to track params from a certain sequence number. Update
node, port and device.
2022-10-30 14:57:04 +01:00
Wim Taymans
e6fd5888ee param: add a new user seq field in the param-info
Add a new seq field in the param-info struct. Users can use this
field to keep track of pending param updates.

Store the latest seq number of the param update in the seq field. Remove
all params that don't match the sequence number because they are too
old. This avoids duplicate old params in pw-dump output.

Rework the pulseaudio manager with this same method.
2022-10-27 20:10:33 +02:00
Wim Taymans
d2aa240767 introspect: handle NULL result from info updates 2022-10-27 20:06:54 +02:00