Commit graph

53 commits

Author SHA1 Message Date
Vlad Pruteanu 1466d0ae78 bluez5: bap: Use a string instead of int array to set Broadcast code
Currently, the user sets the Broadcast Code via an array of integers
in the config file. However, the Bluetooth Core Specification indicates
that it should be set via a 16 byte string. This commit replaces the old
implementation with the one required by the spec.

Tested the commit with the example provided in the Core Spec:
Broadcast Code: Børne House
Result from btsnoop log:
< HCI Command: LE Create Broadcast Isochronous Group (0x08|0x0068) plen 31
...
Broadcast Code[16]: 000000006573756f4820656e72b8c342

The result matches the example given in the spec.
2024-06-14 06:05:14 +00:00
Wim Taymans b421331275 doc: clarify the dither.noise
Fixes #4057
2024-06-13 11:38:26 +02:00
Vlad Pruteanu 34b17a6269 bluez5: bap: Enable control of Broadcast Encryption
Add "encryption" parameter to bluez5.bcast_source.config entry in
the configuration file. This allows the user to control the use of
Broadcast encryption.
2024-06-11 07:17:17 +00:00
Wim Taymans 26c1993e8a snapcast-discover: add snapcast discover module
The module detects remote snapcast servers and creates a new sink
with protocol-simple for each server.

It sets up a new stream on the server for the sink with JSON-RPC.
2024-05-23 12:41:53 +02:00
Diego Viola 7410755c03 Fix typos
found them with codespell.

Signed-off-by: Diego Viola <diego.viola@gmail.com>
2024-05-22 09:19:34 +02:00
Pauli Virtanen 345131475c bluez5: cleanup bluez5.bcast_source.config parsing
Also fix doc.
2024-05-15 08:11:50 +00:00
Silviu Florian Barbulescu 44d96ed4b9 bluez: on metadata, parse remove the length field, and deduce the length from the value plus type 2024-05-15 08:11:50 +00:00
Silviu Florian Barbulescu be3e87f485 Add code to fix problem found at review 2024-05-15 08:11:50 +00:00
Sanchayan Maity 6c6f944e53 Fix doc build pipeline failing with parametric-equalizer module 2024-05-07 09:04:15 +00:00
Wim Taymans dd84557bfb doc: update some more 2024-05-07 11:03:22 +02:00
lunks 722ad358d0 Apply 1 suggestion(s) to 1 file(s) 2024-05-07 08:57:24 +00:00
Cedric Sodhi 34fd3fe2ad Restructured overview.dotx
Merged the information of the original with the didactic structure and overview by Théo Lebrun/bootlin.com.
2024-05-07 08:57:24 +00:00
Pauli Virtanen 1717b1bebc doc: document some more audioconvert properties 2024-05-06 18:16:07 +03:00
Wim Taymans 7f4a0ba8cb conf: handle array of arguments in context.exec
We handeled "arg1 arg2 ... " before and used to split between spaces to
get the arguments for execvp but that doesn't work so well when there
are arguments with spaces.

Instead use JSON parsing to get the array of arguments. This make it
possible to use [ arg1 arg2 .. ] and quote each arg separately. You
can still use the old method and even double escape:

"\"arg1\" \"arg2 with spaces\"" or
 [ "arg1" "arg2 with spaces" ]
2024-04-26 17:11:21 +02:00
Arun Raghavan be97d1f766 doc: Some clarifications in Overview
Correct `context.spa-libs` as being pointing to the right SPA libs
(rather than loading them), and some other minor fixups.
2024-04-25 17:26:22 -04:00
Arun Raghavan 1b6a94db36 doc: Add more details in the Overview section
Cover basic concepts that might be useful while going to subsequent
sections. We might want to split this off into a subpage if it gets any
longer.
2024-04-25 13:04:54 -04:00
Wim Taymans a4bfdd7f82 context: add support for multiple data loops
Add config options to create and start multiple data loops, each with
their own priority and thread affinity if requested.

Make it possible to assign loop.classes to the data-loops. Use the
node.loop.class to find a data-loop for the node of the same class. Try
to evenly spread the nodes over the available matching loops.

With this, it is possible to separate the processing of the nodes
depending on the classes, like audio/video and improve concurency on
the server.

No attempt is done yet to move nodes between loops or to move
independent nodes to separate data loops.

Fixes #3969
2024-04-19 14:57:53 +02:00
Wim Taymans b9fad5b89c doc: add -P option to docs 2024-04-15 15:39:13 +02:00
Wim Taymans f366167278 settings: remove link.min-buffers option again
The min should always be 1. We have other ways of bumping the number of
buffers to 2, like the ASYNC allocation flag which we can set if we are
also doing some async scheduling. We could make this an option later.

Otherwise, we would also allocate 2 buffers by default between the mixer
and the node, which is unnecessary.
2024-04-03 15:27:05 +02:00
Wim Taymans dbedd09d42 settings: add link.min-buffers option
Add link.min-buffers option to set the minimum amount of buffers to
create for links. Set this by default to 2 because we really need two
now in case the sink xruns and does async mixing.

Make this an option because in low-memory cases and when xruns are not
expected, we can set this to 1.
2024-04-03 15:02:30 +02:00
Wim Taymans cddea858d9 context: add context.modules.allow-empty property
false by default, when true, no warning will be logged when the
context.modules in the config is empty. This can be useful when the
application wants to load all the modules itself.
2024-03-28 17:08:33 +01:00
Pauli Virtanen 7f5e0f0425 spa: spa-json-dump: read also from stdin, and report syntax errors
Support reading from stdin and report syntax errors.

Also don't do extra spa_json_enter when inserting a dummy "{" when
parsing files with top-level keys.  In this case the tokenizer is
already "entered" after spa_json_init, and will give parse error when we
are not inserting the closing "}" for the dummy "{".
2024-03-25 21:42:26 +02:00
Wim Taymans 4db0811878 alsa: add option to skip the busy check
Makes the card exposed even if some of the pcms are busy.

Fixes #3914
2024-03-22 12:42:48 +01:00
Wim Taymans 0e380de809 conf: improve matching rules a bit more
Handle "null", null, !null, "!null", !"null" and "!\"null\""
matches, copy some docs from wireplumber about the rules and
add some more cases.
2024-03-18 17:53:44 +01:00
Wim Taymans 7e9e261fa6 conf: support property rules
Add pw_conf_section_update_props_rules() that will not only update the
properties of a section but wil also apply rules in section.rules and
match against the context properties.

Use this by default when using pw_context_conf_update_props().

Add a new method to get a string name of the VM type. Place the
cpu.vm.name in the context properties.

This makes it possible to deprecate the vm.overrides with something more
flexible based on rules. Update the conf files and docs to refect this.
2024-03-15 12:10:41 +01:00
Wim Taymans 69cc3832d4 tools: improve error reporting
Add better error reporting in the security context and pw-container.

Add manpage for pw-container.
2024-03-13 12:53:04 +01:00
Wim Taymans 84af13a10b settings: add default.clock.quantum-floor property
Remove some of the hardcoded values (the absolute smallest buffer size,
independent on the sample rate) to a config option. Set it to the
default value of 4, like what it was before.

Change the hardcoded absolute lowest limit to 1 because anything else
does not make sense.

Enforce the quantum-floor when calculating the final graph quantum.

Fixes #3908
2024-03-12 10:21:31 +01:00
Pauli Virtanen e2a546006a doc: minor documentation improvements
Document a few properties more, and fix some wrong things.

Mark types of properties.
2024-03-10 19:08:41 +02:00
Wim Taymans ccf899a709 profiler: add transport state in the profile block
Add transport state to the profiler clock info and show this in
pw-top as t and T states.

Update the docs some more.
2024-02-29 14:07:08 +01:00
Pauli Virtanen 31b387f269 bluez5: add per-device option for BAP unicast stream group ID
Add some option to set manually group IDs of unicast streams
of devices.

Intel controllers don't appear to support more than one group at a time,
but in principle this can be done.
2024-02-21 18:22:38 +02:00
Wim Taymans 18aeddbe80 doc: some updates 2024-02-20 13:29:36 +01:00
Dimitrios Katsaros 539fdc5477 alsa: Added handle for controlling htimestamp autodisable
You can now do this to permanently enable htimestamp:

pw-cli s 38 Props '{ params: [ api.alsa.htimestamp.max-errors: 0, api.alsa.htimestamp: true ]}'
2024-02-20 11:30:48 +01:00
Pauli Virtanen 2e29177964 doc: use-chmap is enabled by default 2024-02-19 21:31:40 +02:00
Pauli Virtanen aec9bc5217 doc: add sections to index, clarify discussion of properties
Add some sections to index + fix typos and section levels.

Clarify discussion of device properties.
2024-02-19 21:21:12 +02:00
Wim Taymans 52f65ccefc docs: add node.rules and device.rules 2024-02-19 10:57:18 +01:00
Pauli Virtanen 04adbebcb1 doc: move config man pages under config/ 2024-02-19 00:00:27 +02:00
Pauli Virtanen 0734381ead doc: add some more coverage
Fix some copypaste mistakes and other errors.

Add explanations for some more properties.  Explain "drop-in" config
files.  Explain filter-chain.conf.

Move configuration man pages under Configuration in TOC.
2024-02-19 00:00:27 +02:00
Pauli Virtanen fd58eec7f8 doc: add reference docs + index for config and env variables
Add reference documentation for configuration settings & node/device
properties.  We should have boring & exhaustive reference lists of all
the options, and an index where they can be looked up as needed.

The content is mostly stolen from the Wiki.

Add pipewire-client.conf.5, pipewire-jack.conf.5, and pipewire-device.7
that try to explain all available configuration settings for native/ALSA/JACK
clients, and parameters & properties devices.

Expand pipewire.conf.5 and pipewire-pulse.conf.5 with lists of supported
properties. Also explain environment variables.

Doxygen doesn't have an indexing mechanism suitable for configuration
settings, so add a simple one using an input filter and use it here.

Tweak styling a bit.
2024-02-18 15:08:35 +02:00
Pauli Virtanen e90b2cb338 doc: add 'Configuration' page
Add pointer for readers to Wiki and WirePlumber docs, where the
documentation actually is at, so the configuration docs can found
starting from docs.pipewire.org
2024-02-04 10:29:39 +00:00
Pauli Virtanen 978dbff32f doc: fix some doxygen warnings 2024-01-29 08:50:32 +00:00
Pauli Virtanen b1d88f5ed4 doc: put new pulse modules to right place 2024-01-29 08:50:32 +00:00
shoffmeister c25c7f7bd8 doc: Fix typo 'statis' -> 'static' 2024-01-29 08:47:37 +00:00
Pauli Virtanen bdf96979fc doc: include pipewire-pulse modules explanations also on man page 2023-12-09 16:37:03 +02:00
Pauli Virtanen 31b7ff58ad doc: add pw-v4l2.1 and spa-*.1
Add manpages for the remaining utilities without one.
2023-12-09 16:36:24 +02:00
Pauli Virtanen 80bf28edfd doc: add pw-reserve.1 2023-12-08 18:59:23 +02:00
Pauli Virtanen 9fdf221705 doc: internals/access: update documentation vs current state
Update docs to match implementation.
2023-11-29 18:51:35 +02:00
Pauli Virtanen 53601d44a6 doc: internal/protocol: explain registry generation and protocol footers 2023-11-25 18:39:25 +02:00
Wim Taymans c59820493f docs: add some more doc about the threads 2023-11-23 12:32:35 +01:00
Wim Taymans 900f653860 docs: add some more docs 2023-11-23 10:21:08 +01:00
Pauli Virtanen 0fbcc87314 doc: make all manpages with Doxygen
Use (fixed-up) Doxygen manpage output for all program & module manpages.

This also allows formatting the manual pages properly in the HTML docs.

The Markdown pages work properly only with Doxygen >= 1.9.7, older
versions put them to wrong place in the HTML docs.
2023-11-22 20:10:49 +02:00