{"object_kind":"push","event_name":"push","before":"bf783ab08fb185ea8576b2162a17f8e045f75cee","after":"589bc4b6f46d3bae288b9f2a69e0709e4ee2e28d","ref":"refs/heads/master","ref_protected":true,"checkout_sha":"589bc4b6f46d3bae288b9f2a69e0709e4ee2e28d","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":"28393cb896fd55ce178304c27aac9a9e90d2dbf9","message":"audioconvert: add log topic for resampler\n","title":"audioconvert: add log topic for resampler","timestamp":"2025-09-07T18:26:03+00:00","url":"https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/28393cb896fd55ce178304c27aac9a9e90d2dbf9","author":{"name":"Pauli Virtanen","email":"pav@iki.fi"},"added":[],"modified":["spa/plugins/audioconvert/peaks-ops.h","spa/plugins/audioconvert/resample-native-impl.h","spa/plugins/audioconvert/resample-native.c"],"removed":[]},{"id":"396d37594c8f2b1dc67561d740816060a9a3ee4e","message":"bluez5: media-source: drop all errqueue data when ignoring\n","title":"bluez5: media-source: drop all errqueue data when ignoring","timestamp":"2025-09-07T18:26:03+00:00","url":"https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/396d37594c8f2b1dc67561d740816060a9a3ee4e","author":{"name":"Pauli Virtanen","email":"pav@iki.fi"},"added":[],"modified":["spa/plugins/bluez5/media-source.c"],"removed":[]},{"id":"7e04f8fe44622b64cfc3786944aba5e4bfc87620","message":"bluez5: ensure capture target latency is uniform for an ISO group\n\nAll BAP client sources in the ISO group should use same target latency,\nso that capture streams stay in sync.\n","title":"bluez5: ensure capture target latency is uniform for an ISO group","timestamp":"2025-09-07T18:26:03+00:00","url":"https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/7e04f8fe44622b64cfc3786944aba5e4bfc87620","author":{"name":"Pauli Virtanen","email":"pav@iki.fi"},"added":[],"modified":["spa/plugins/bluez5/decode-buffer.h","spa/plugins/bluez5/iso-io.c","spa/plugins/bluez5/iso-io.h","spa/plugins/bluez5/media-source.c"],"removed":[]},{"id":"f48a72a504fc339199d0d950d6886578b018bc8f","message":"bluez5: smaller max latency for BAP client capture\n\n4 packets should be enough jitter buffer. This matters only for BAP\nclient, server is controlled by presentation delay.\n","title":"bluez5: smaller max latency for BAP client capture","timestamp":"2025-09-07T18:26:03+00:00","url":"https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/f48a72a504fc339199d0d950d6886578b018bc8f","author":{"name":"Pauli Virtanen","email":"pav@iki.fi"},"added":[],"modified":["spa/plugins/bluez5/media-source.c"],"removed":[]},{"id":"e446e3aac57012facb6fbf4d7b12b00cd70a212f","message":"bluez5: media-source: account for driver clock rate difference in rate match\n\nThe rate matching calculations are done in the system clock domain. If\nthe driver ticks at a different rate, the correction factor needs to be\nadjusted by the rate_diff.\n\nsetup_matching() also needs to be before spa_bt_decode_buffer_process():\nas follower we should use rate matching value calculated on the\n*previous* cycle, because this is what driver is doing when it adjusts\nit tick rate.\n","title":"bluez5: media-source: account for driver clock rate difference in rate match","timestamp":"2025-09-07T18:26:03+00:00","url":"https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/e446e3aac57012facb6fbf4d7b12b00cd70a212f","author":{"name":"Pauli Virtanen","email":"pav@iki.fi"},"added":[],"modified":["spa/plugins/bluez5/media-source.c"],"removed":[]},{"id":"94c354c29010723be97ba6cb3e2c161bb82ebdcb","message":"bluez5: decode-buffer: sub-sample accurate fill level tracking\n\nTake resampler delay into account when computing the buffer fill level,\nincluding the fractional part.\n\nIf decode-buffer is now fed nominal packet reference times in\nwrite_packet(), it converges the total buffer + resampler latency to the\ntarget at sub-sample accuracy.\n\nThis is needed for aligning RX of ISO streams in the same group, so that\ne.g. stereo pair alignment is achieved even though the streams have\nseparate resamplers. Resampler phases get aligned via independent rate\nmatching.\n","title":"bluez5: decode-buffer: sub-sample accurate fill level tracking","timestamp":"2025-09-07T18:26:03+00:00","url":"https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/94c354c29010723be97ba6cb3e2c161bb82ebdcb","author":{"name":"Pauli Virtanen","email":"pav@iki.fi"},"added":[],"modified":["spa/plugins/bluez5/decode-buffer.h","spa/plugins/bluez5/media-source.c"],"removed":[]},{"id":"589bc4b6f46d3bae288b9f2a69e0709e4ee2e28d","message":"bluez5: iso-io: sync to ISO RX clock, align stream RX in group\n\nAlign RX of streams in same ISO group:\n\n- Ensure all streams in ISO group have same target latency also for BAP\n Client\n\n- Determine rate matching to ISO group clock from RX times of all\n streams in the group\n\n- Based on this, compute nominal packet RX times, and feed them to\n decode-buffer instead of the real RX time. This is enough for\n sub-sample level sync.\n\n- Customise buffer overrun handling for ISO so that it drops data to\n arrive exactly at the target, for faster convergence at RX start\n\nThe ISO clock matching is done based on kernel-provided packet RX times,\nso it has unknown offset from the actual ISO clock, probably a few ms.\n\nCurrent kernels (6.17) do not provide anything better to use for the\nclock matching, and doing it properly appears to be controller\nvendor-defined (if possible at all).\n","title":"bluez5: iso-io: sync to ISO RX clock, align stream RX in group","timestamp":"2025-09-07T18:26:03+00:00","url":"https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/589bc4b6f46d3bae288b9f2a69e0709e4ee2e28d","author":{"name":"Pauli Virtanen","email":"pav@iki.fi"},"added":[],"modified":["spa/plugins/bluez5/iso-io.c","spa/plugins/bluez5/iso-io.h","spa/plugins/bluez5/media-source.c"],"removed":[]}],"total_commits_count":7,"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}}