pipewire/spa/plugins/bluez5
Pauli Virtanen 589bc4b6f4 bluez5: iso-io: sync to ISO RX clock, align stream RX in group
Align RX of streams in same ISO group:

- Ensure all streams in ISO group have same target latency also for BAP
  Client

- Determine rate matching to ISO group clock from RX times of all
  streams in the group

- Based on this, compute nominal packet RX times, and feed them to
  decode-buffer instead of the real RX time. This is enough for
  sub-sample level sync.

- Customise buffer overrun handling for ISO so that it drops data to
  arrive exactly at the target, for faster convergence at RX start

The ISO clock matching is done based on kernel-provided packet RX times,
so it has unknown offset from the actual ISO clock, probably a few ms.

Current kernels (6.17) do not provide anything better to use for the
clock matching, and doing it properly appears to be controller
vendor-defined (if possible at all).
2025-09-07 18:26:03 +00:00
..
g722 bluez5: asha-codec-g722: Drop the dependency on FFmpeg 2025-02-13 19:55:18 +05:30
a2dp-codec-aac.c bluez5: fix ISO sequence numbering 2025-07-12 19:59:33 +00:00
a2dp-codec-aptx.c bluez5: fix ISO sequence numbering 2025-07-12 19:59:33 +00:00
a2dp-codec-caps.h bluez5: aac: fix for A2DP v1.4 using rfa bits for more channels 2025-07-10 14:12:15 +00:00
a2dp-codec-faststream.c bluez5: fix ISO sequence numbering 2025-07-12 19:59:33 +00:00
a2dp-codec-lc3plus.c bluez5: fix ISO sequence numbering 2025-07-12 19:59:33 +00:00
a2dp-codec-ldac.c bluez5: fix ISO sequence numbering 2025-07-12 19:59:33 +00:00
a2dp-codec-opus-g.c bluez5: fix ISO sequence numbering 2025-07-12 19:59:33 +00:00
a2dp-codec-opus.c bluez5: fix ISO sequence numbering 2025-07-12 19:59:33 +00:00
a2dp-codec-sbc.c bluez5: fix ISO sequence numbering 2025-07-12 19:59:33 +00:00
asha-codec-g722.c bluez5: replace codec->bap/asha flags with codec->kind enum 2025-06-13 17:51:16 +00:00
backend-hsphfpd.c bluez5: indicate codec support status for ofono/hsphfpd 2025-06-13 17:51:16 +00:00
backend-native.c bluez5: backend-native: Add log for call state changes 2025-08-12 18:22:40 +03:00
backend-ofono.c bluez5: indicate codec support status for ofono/hsphfpd 2025-06-13 17:51:16 +00:00
bap-codec-caps.h bluez5: bap: allow configuring server locations/context 2025-04-20 20:34:35 +03:00
bap-codec-lc3.c bluez5: support 44.1kHz rate for BAP LC3 2025-08-09 11:30:40 +03:00
bluez-hardware.conf bluez5: add quirk for Phonak hearing aids 2024-10-13 11:50:04 +03:00
bluez5-dbus.c bluez5: fix BIS source presentation delay 2025-08-27 15:55:50 +00:00
bluez5-device.c bluez5: temporarily remove BAP nodes when another device is switching 2025-06-13 22:16:03 +00:00
bt-latency.h bluez5: fix compilation and warnings 2025-07-12 19:57:22 +00:00
codec-loader.c bluez5: support LC3-24kHz HFP codec available on some Apple devices 2025-06-13 22:15:29 +00:00
codec-loader.h treewide: use SPDX tags to specify copyright information 2023-02-16 10:54:48 +00:00
dbus-monitor.c bluez5: fix glib signal disconnect 2023-04-14 20:06:57 +03:00
dbus-monitor.h chore: fix warnings shown by Clang 16 2023-05-09 08:31:56 +00:00
decode-buffer.h bluez5: decode-buffer: sub-sample accurate fill level tracking 2025-09-07 18:26:03 +00:00
defs.h bluez5: drop old SCO fragment data when sink starts 2025-06-21 16:13:57 +03:00
hci.c spa: bluez: use some more spa_auto* 2023-07-30 13:45:49 +02:00
hfp-codec-caps.h bluez5: remove HFP codec id from transports 2025-06-13 17:51:16 +00:00
hfp-codec-cvsd.c bluez5: limit CVSD block size 2025-06-21 16:08:30 +03:00
hfp-codec-lc3-a127.c bluez5: support packet loss concealment in codecs 2025-07-12 19:59:33 +00:00
hfp-codec-lc3-swb.c bluez5: support packet loss concealment in codecs 2025-07-12 19:59:33 +00:00
hfp-codec-msbc.c bluez5: add PLC for MSBC using spandsp 2025-07-12 19:59:33 +00:00
hfp-h2.h bluez5: add HFP codecs in the media codec API 2025-06-13 17:51:16 +00:00
iso-io.c bluez5: iso-io: sync to ISO RX clock, align stream RX in group 2025-09-07 18:26:03 +00:00
iso-io.h bluez5: iso-io: sync to ISO RX clock, align stream RX in group 2025-09-07 18:26:03 +00:00
media-codecs.c bluez5: add HFP codecs in the media codec API 2025-06-13 17:51:16 +00:00
media-codecs.h bluez5: support packet loss concealment in codecs 2025-07-12 19:59:33 +00:00
media-sink.c bluez5: report ISO latency correctly and refresh when transport starts 2025-07-12 19:57:22 +00:00
media-source.c bluez5: iso-io: sync to ISO RX clock, align stream RX in group 2025-09-07 18:26:03 +00:00
meson.build bluez5: add PLC for MSBC using spandsp 2025-07-12 19:59:33 +00:00
midi-enum.c *: unify config.h handling 2025-05-30 10:24:13 +00:00
midi-node.c control: improve UMP to Midi conversiom 2025-08-19 18:33:59 +02:00
midi-parser.c treewide: use SPDX tags to specify copyright information 2023-02-16 10:54:48 +00:00
midi-server.c bluez5: fix some coverity issues 2025-06-14 14:34:55 +03:00
midi.h spa: bluez: include gio/gunixfdlist.h 2023-02-16 20:55:55 +01:00
modemmanager.c spa: bluez: fix crash when receiving signal from modemmanager 2024-06-15 10:11:38 -07:00
modemmanager.h spa: bluez: modemmanager: do not use old style declaration 2023-07-03 19:40:31 +02:00
org.bluez.xml bluez5: add GDBus-based object monitor framework 2023-01-24 08:27:56 +00:00
player.c spa: move dbus helpers out of bluez plugin 2024-02-05 13:03:20 +00:00
player.h treewide: use SPDX tags to specify copyright information 2023-02-16 10:54:48 +00:00
plc.h bluez5: add PLC for MSBC using spandsp 2025-07-12 19:59:33 +00:00
plugin.c spa: export log topic enumerations 2024-01-04 10:02:55 +00:00
quirks.c bluez5: reduce quirks logspam 2024-11-04 21:41:24 +02:00
rate-control.h bluez5: iso-io: track and apply corrections to tx latency 2024-04-12 18:50:15 +03:00
README-MIDI.md bluez5: fixup BLE MIDI selinux README 2023-01-24 08:27:56 +00:00
README-OPUS-A2DP.md bluez5: clarify OPUS-A2DP spec 2022-09-03 19:08:27 +00:00
README-SBC-XQ.md bluez5: add SBC XQ readme 2021-01-07 09:54:16 +01:00
README-Telephony.md bluez5: telephony: implement asynchronous D-Bus calls 2025-08-01 15:39:06 +00:00
rtp.h Add bluez5 plugins 2018-01-16 15:19:55 +01:00
sco-io.c bluez5: use BT_PKT_SEQNUM for ISO packet sequence numbers 2025-08-01 15:39:45 +00:00
telephony.c bluez5: telephony: implement asynchronous D-Bus calls 2025-08-01 15:39:06 +00:00
telephony.h bluez5: telephony: implement asynchronous D-Bus calls 2025-08-01 15:39:06 +00:00
test-midi.c bluez5: a few more -Werror=strict-prototypes fixes 2023-01-24 11:14:27 +02:00
upower.c spa: move dbus helpers out of bluez plugin 2024-02-05 13:03:20 +00:00
upower.h treewide: use SPDX tags to specify copyright information 2023-02-16 10:54:48 +00:00