Commit graph

9446 commits

Author SHA1 Message Date
Frédéric Danis 39ef812ed5 bluez5: Complete BAP audio location mapping 2022-09-15 11:17:20 +00:00
Frédéric Danis f428b13d06 bluez5: Set BAP QoS depending on selected configuration
This move the QoS setup to be codec specific and fills it depending on the
selected codec configuration.
2022-09-15 11:17:20 +00:00
Frédéric Danis 284da66deb bluez5: Add BAP_SINK/SOURCE from PACS UUID to adapter profiles
BAP sink/source are characteristics of the PACS profile, but we're more
interested by those characteristics then the more generic profile.
2022-09-15 11:17:20 +00:00
Frédéric Danis 496dda1bcc bluez5: Check if BlueZ daemon support LE Audio
Legacy BlueZ 5 API doesn't support to register BAP codecs, which prevents
to register A2DP enhanced codecs.
2022-09-15 11:17:20 +00:00
Frédéric Danis b7ad1d1869 bluez5: Add SelectProperties DBus method support 2022-09-15 11:17:20 +00:00
Frédéric Danis 96acc5a79a bluez5: Add LE Audio BAP support to bluez5-device 2022-09-15 11:17:20 +00:00
Frédéric Danis 201fd7755d bluez5: Add LC3 codec support to LE Audio BAP
By default this codec is disabled as the BlueZ support for LE Audio is
still experimental.
2022-09-15 11:17:20 +00:00
Frédéric Danis fd0bcb1699 bluez5: Add LE Audio BAP support to media-codecs 2022-09-15 11:17:20 +00:00
Frédéric Danis 00d51c3d31 bluez5: Rename codec API from *a2dp* to *media*
The BlueZ Media1 interface will not only be used for A2DP but also for
LE Audio and code related can be shared.
2022-09-15 11:17:20 +00:00
Wim Taymans 64a3edf89e 0.3.58 2022-09-14 17:02:17 +02:00
Wim Taymans 565bb2c493 resample: fix peaks sse code
Fix the shuffle arguments.
Use another way of making 0x80000000 and use andnot to remove the
sign bit.
2022-09-14 16:58:41 +02:00
Wim Taymans 3ad1a5d4dc alsa: rework eventfd handling
Make one function that updates the eventfd based on the state of
the plugin.

Do this check before getting the desciptors. The functional difference
is that the eventfd could become blocking now as well when getting the
descriptors. This fixes a problem where the poll would wake up without
any work to do.

See #1697
2022-09-13 17:20:02 +02:00
Wim Taymans 4b16eee27a module-raop-sink: add more docs 2022-09-13 12:10:48 +02:00
Dmitry Sharshakov 3b89e6f369 alsa-seq: add an option to disable longname in MIDI ports
Untested yet

Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
2022-09-13 07:46:40 +00:00
Dmitry Sharshakov ea646c2d98 alsa-seq: set card long name or number in port names
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
2022-09-13 07:46:40 +00:00
Wim Taymans 5e890925a0 module-echo-cancel: don't load newer modules
Add some version comments for the new AEC methods
2022-09-13 09:44:36 +02:00
Jonas Holmberg 70471989e5 module-echo-cancel: Add activate/deactivate methods
Add methods activate() that is called before first call to run() when
stream starts and deactivate() that is called after last call to run()
when stream stops. This makes it possible for aec-plugins to reset their
state between streams.
2022-09-12 18:24:07 +00:00
Wim Taymans 0862e8c2ef alsa: add more debug
Debug the hw and sw params to the debug log
2022-09-12 13:29:39 +02:00
Wim Taymans 634d7107a4 v4l2: use the device name to open in BeginParams 2022-09-12 09:51:55 +02:00
Wim Taymans c00e0e3467 filter-chain: handle port names with :
When a port name contains a ':' we will try to split it and use the part
before the colon as the node name, which will then fail.

If we can't find a node name after splitting, try again by assuming the
colon is part of the port name.

Fixes control port names such as "Ratio (1:n)" in #2685
2022-09-12 09:51:28 +02:00
Wim Taymans fcff48f1f1 filter-chain: warn when control contains unknown port name
When the config control entry contains an unknown port name, log
a warning instead of silently ignoring it,

See #2685
2022-09-12 09:51:28 +02:00
Wim Taymans 56b03cb3a8 pulse-server: update requested for relative seek only
PulseAudio only updates the requested amount of bytes for relative
seeks, do the same.

See #2680
2022-09-10 16:06:45 +02:00
Wim Taymans 0d08f41c28 alsa: calculate elapsed time only when running 2022-09-09 18:13:02 +02:00
Wim Taymans ca228003c4 alsa: only calculate elapsed time when known 2022-09-09 18:11:23 +02:00
Wim Taymans 5fb361724c alsa: rework timings
Collect all timing info in the process function. When doing delay
reporting, get a consistent snapshot of all the pipewire side state to
calculate the result.

This should result in more correct timing results.
2022-09-09 17:59:07 +02:00
Wim Taymans da9a5cfa5d alsa: subtract elapsed time from server delay only
Only subtract the elapsed time from the server delay. Our reported
delay should always at least still include the data that we have
buffered or else read and write operations might think they can read
or write more than they actually can.
2022-09-09 16:36:33 +02:00
Wim Taymans f58021ed45 alsa: improve elapsed time correction
There is no need to patch the pw_time values with the io->rate just so
we can use it to convert the elapsed time to samples. Use the io->rate
directly instead.
2022-09-09 16:34:18 +02:00
Wim Taymans 41e937e3fd alsa: add some more debug 2022-09-09 16:33:01 +02:00
Wim Taymans 633f9c2d5e module-rt: only call set_rlimit once
We can call this once after we know that we can use RTKit to get
the limits or not.
2022-09-09 15:27:26 +02:00
Wim Taymans 009e61f585 alsa: improve debug 2022-09-09 12:22:08 +02:00
Barnabás Pőcze e9b5cc405e pipewire: rtsp-client: read message content properly
Make the receiving state machine more pronounced by explicitly storing
the state in the client. Furthermore, always consume the message content
if there is one and not only if the content type is "application/octet-stream",
but do not try to do it at once - like previously, instead only as the
socket becomes readable. The body is currently dropped, but it could
easily be collected in e.g. a `pw_array` should the need ever arise.

See #2673
2022-09-09 01:47:51 +02:00
Barnabás Pőcze 9b63c5011d pipewire: rtsp-client: check if the status code code is a number 2022-09-09 01:47:51 +02:00
Barnabás Pőcze 56df6fed13 pipewire: rtsp-client: reset receive state when connected
Previously, the state used to receive messages from the remote
end was not reset when the client connected, which could
lead to issues if the same client is reused for multiple
connections.
2022-09-09 01:47:51 +02:00
Barnabás Pőcze 2d7eb8678b pipewire: rtsp-client: allow sending arbitrary binary data
Previously, the content had to be a null-terminated byte
sequence because the sending function used `strlen()` to
determine its length. However, `rtsp_do_auth_setup()` needs
to send a non-textual byte sequence, and it only worked so
far because it did not happen to have any zero bytes in it.
Add a "content_length" parameter and change the type of
"content" to facilitate sending arbitrary byte sequences.
2022-09-09 01:47:51 +02:00
Barnabás Pőcze e5ca5d0480 pipewire: rtsp-client: use tabs for indentation 2022-09-09 01:47:51 +02:00
Barnabás Pőcze 56c4aca5d9 pipewire: rtsp-client: remove unused "session" member 2022-09-09 01:47:51 +02:00
Barnabás Pőcze 36589039f4 pipewire: rtsp-client: make request CSeq uint32_t 2022-09-09 01:47:51 +02:00
Barnabás Pőcze 4bb8efd100 pipewire: module-raop-sink: simplify rtsp_do_auth_setup()
Rename "output" to "content" and mark it static and const,
and remove the "ret" variable.
2022-09-09 01:47:51 +02:00
Maxim Mikityanskiy 853a1c0ba8 module-rt: Fix setting realtime priority with rtkit
The commit cited below mistakenly removed the set_rlimit call from under
`if (impl->use_rtkit)`, saying it doesn't have an rtkit implementation.
However, this function does call rtkit, so it has to be called in the
rtkit flow, otherwise pipewire fails to set the realtime priority,
printing the following error message:

mod.rt: RTKit error: org.freedesktop.DBus.Error.AccessDenied
mod.rt: could not make thread #### realtime using RTKit: Permission denied

Fixes: 5ae1c03d77 ("module-rt: small fixes")
2022-09-08 20:03:56 +03:00
Jonas Holmberg 70c314f254 pw-top: Print microseconds as "us"
Avoid unicode characters in the columns since it breaks formatting on
non-unicode hosts.
2022-09-08 16:31:48 +02:00
Wim Taymans a7c28d64ae resample-peaks: small improvement
Makes it easier for the compiler to make a constant.
2022-09-08 15:40:01 +02:00
Wim Taymans 46c8c9ec03 audioconvert: set monitor port buffer size correctly
Also use quantum_limit samples on the monitor ports.

Fixes #2677
2022-09-08 12:25:28 +02:00
Wim Taymans 900621ba9e impl-node: only activate input links after adding node
Only activate the input links to a node after the node has been added to
the graph.

This ensure that we don't accidentaly schedule the node before the Start
command has completed and the node is actually ready to process data.
2022-09-08 11:18:08 +02:00
Wim Taymans ff84acdf3d impl-node: avoid scheduling the node before added
The Start command might be async and we should not schedule the node
until the reply has arrived and we have actually added the node to
the graph.

Otherwise it is possible that the node is scheduled before it could
complete the start command. This could be a problem for adapter because
it does negotiation and so on in the Start call.

See #2677
2022-09-08 10:31:46 +02:00
Barnabás Pőcze 27211856eb pulse-server: Handle overlong writes from clients
When a client writes more then requested, let the requested field go
negative so that it is taken into account the next time we ask for more
data.

Also the requested field follows the difference in the write pointer
caused by seeks.

See #2626
Fixes #2674
2022-09-08 09:14:19 +02:00
Wim Taymans d5bc6aa2cb Revert "pulse-server: Handle clients that send more than requested"
This reverts commit a79b5c86ea.
2022-09-08 09:06:02 +02:00
Wim Taymans 903f831b2d alsa: scale min value back to nominal rate 2022-09-07 23:39:51 +02:00
Wim Taymans 7057cca05e alsa: adjust min and max rates
Use the DSD scaler and interleave factors to calculate the min and
max rates.
2022-09-07 21:58:32 +02:00
Wim Taymans 955815b468 alsa: only scale DSD samplerates 2022-09-07 21:42:45 +02:00
Wim Taymans 68581235ae alsa: fix min dsd rate
We just need to allow from DSD64 onwards. Remove some unused fields.
2022-09-07 20:23:53 +02:00