{"object_kind":"push","event_name":"push","before":"0869be11f86c8acadf0443b3ca340975e6c39ce4","after":"f21c44751ec08e21207f603589a6f01c777d11c0","ref":"refs/heads/master","ref_protected":true,"checkout_sha":"f21c44751ec08e21207f603589a6f01c777d11c0","message":null,"user_id":3060,"user_name":"Wim Taymans","user_username":"wtaymans","user_email":"","user_avatar":"https://secure.gravatar.com/avatar/ee99737f7492c79c3a9be75f2e2437f2c944c95fca1480fafcd7ce3bf8c85784?s=80&d=identicon","project_id":4753,"project":{"id":4753,"name":"pipewire","description":"Multimedia processing graphs","web_url":"https://gitlab.freedesktop.org/pipewire/pipewire","avatar_url":"https://gitlab.freedesktop.org/uploads/-/system/project/avatar/4753/pipewire.png","git_ssh_url":"git@ssh.gitlab.freedesktop.org:pipewire/pipewire.git","git_http_url":"https://gitlab.freedesktop.org/pipewire/pipewire.git","namespace":"PipeWire","visibility_level":20,"path_with_namespace":"pipewire/pipewire","default_branch":"master","ci_config_path":"","homepage":"https://gitlab.freedesktop.org/pipewire/pipewire","url":"git@ssh.gitlab.freedesktop.org:pipewire/pipewire.git","ssh_url":"git@ssh.gitlab.freedesktop.org:pipewire/pipewire.git","http_url":"https://gitlab.freedesktop.org/pipewire/pipewire.git"},"commits":[{"id":"d0309b4e1e5a01884d51633af3951c66442cc1c1","message":"bluez5: deal with missing TX timestamps\n\nThere are known controller firmware bugs that cause packet completion\nreports, mainly for ISO packets, to be missing.\n\nTo avoid getting stuck e.g. in ISO queue flushing, we should consider a\npacket completed if sufficient time has passed even if controller (and\nkernel) don't report it completed. Take 1 s as conservative timeout, the\nexpected values are some ms.\n\nThese firmware bugs also cause kernel to stop sending packets if too\nmany are left uncompleted, but we cannot detect that.\n","title":"bluez5: deal with missing TX timestamps","timestamp":"2026-01-11T17:55:26+02:00","url":"https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/d0309b4e1e5a01884d51633af3951c66442cc1c1","author":{"name":"Pauli Virtanen","email":"pav@iki.fi"},"added":[],"modified":["spa/plugins/bluez5/bt-latency.h","spa/plugins/bluez5/iso-io.c","spa/plugins/bluez5/media-sink.c"],"removed":[]},{"id":"0003d7a2d03e75c5a7400a170ba5cb3c27bcf6c5","message":"bluez5: iso-io: add debug option for forcing same data in all streams\n\nWhen debugging desync issues, it's useful to force same data be sent on\nall ISO streams. Add option for that.\n","title":"bluez5: iso-io: add debug option for forcing same data in all streams","timestamp":"2026-01-11T17:55:26+02:00","url":"https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/0003d7a2d03e75c5a7400a170ba5cb3c27bcf6c5","author":{"name":"Pauli Virtanen","email":"pav@iki.fi"},"added":[],"modified":["doc/dox/config/pipewire-props.7.md","spa/plugins/bluez5/iso-io.c","spa/plugins/bluez5/iso-io.h","spa/plugins/bluez5/media-sink.c"],"removed":[]},{"id":"f21c44751ec08e21207f603589a6f01c777d11c0","message":"bluez5: iso-io: resync if controller packet completion is out of sync\n\nAdd heuristic to resync streams if controller packet completion times\nfor different streams differ by too much. This likely indicates\ncontroller has lost sync between the streams, and we have to reset\nplayback.\n\nThere's no way to do this properly. The ISO-over-HCI transport is badly\nspecified in Bluetooth Core Specification. Many controllers have broken\nimplementation of the current send timestamp read command, so packets\nhave no identifiers which ISO interval they belong to.\n\nControllers try to reconstruct the right interval based on\nmanufacturer-specific heuristics probably based on packet arrival times.\nKernel + USB introduce timing jitter, and playback sometimes desyncs and\npacket from some streams are persistently sent some multiple of the SDU\ninterval off from the intended timing.\n\nTry to determine this from packet completion latencies. This is\nsomewhat manufacturer specific, tested on Intel & Realtek, hopefully\nworks on others too.\n","title":"bluez5: iso-io: resync if controller packet completion is out of sync","timestamp":"2026-01-11T17:55:26+02:00","url":"https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/f21c44751ec08e21207f603589a6f01c777d11c0","author":{"name":"Pauli Virtanen","email":"pav@iki.fi"},"added":[],"modified":["spa/plugins/bluez5/iso-io.c"],"removed":[]}],"total_commits_count":3,"push_options":{},"repository":{"name":"pipewire","url":"git@ssh.gitlab.freedesktop.org:pipewire/pipewire.git","description":"Multimedia processing graphs","homepage":"https://gitlab.freedesktop.org/pipewire/pipewire","git_http_url":"https://gitlab.freedesktop.org/pipewire/pipewire.git","git_ssh_url":"git@ssh.gitlab.freedesktop.org:pipewire/pipewire.git","visibility_level":20}}