{"object_kind":"push","event_name":"push","before":"3a9ffbb56d2cfbfcec4fbd5223a2b47279a51cd5","after":"4eed79ee81f3699e2e32a85aa676f3ed404f49fd","ref":"refs/heads/master","ref_protected":true,"checkout_sha":"4eed79ee81f3699e2e32a85aa676f3ed404f49fd","message":null,"user_id":3060,"user_name":"Wim Taymans","user_username":"wtaymans","user_email":"","user_avatar":"https://secure.gravatar.com/avatar/1ca1bed246cb9b95b7ead6d6be96bb09f0c112953140c8bb38b41aedf4465270?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":"cc1cc27c3405caf742b737e56d4d797a5660b0f6","message":"node-driver: Factor on_timeout execution delay into current_time\n","title":"node-driver: Factor on_timeout execution delay into current_time","timestamp":"2026-06-11T20:34:07+02:00","url":"https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/cc1cc27c3405caf742b737e56d4d797a5660b0f6","author":{"name":"Carlos Rafael Giani","email":"crg7475@mailbox.org"},"added":[],"modified":["spa/plugins/support/node-driver.c"],"removed":[]},{"id":"3ce1f6e4541f8c4c283ee04a6dc021a44ab45569","message":"node-driver: Reinitialize DLL if error is too large\n\nIf the error is very large (after a big discontinuity in the timestamps\nfor example), the DLL has a hard time compensating, and a full restart\nof the DLL without the old measurement history is more appropriate to\nget the synchronization back on track faster and with fewer oscillations.\n","title":"node-driver: Reinitialize DLL if error is too large","timestamp":"2026-06-11T20:34:12+02:00","url":"https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/3ce1f6e4541f8c4c283ee04a6dc021a44ab45569","author":{"name":"Carlos Rafael Giani","email":"crg7475@mailbox.org"},"added":[],"modified":["spa/plugins/support/node-driver.c"],"removed":[]},{"id":"0550537ce00136ba56fc61cd279616f57935489b","message":"node-driver: Increase DLL speed by using SPA_DLL_BW_MAX\n\nThis allows the DLL to react faster to clock pace changes.\n","title":"node-driver: Increase DLL speed by using SPA_DLL_BW_MAX","timestamp":"2026-06-11T20:34:17+02:00","url":"https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/0550537ce00136ba56fc61cd279616f57935489b","author":{"name":"Carlos Rafael Giani","email":"crg7475@mailbox.org"},"added":[],"modified":["spa/plugins/support/node-driver.c"],"removed":[]},{"id":"0a8ddba3e924a67e5e8b17c98014dc28e43d2534","message":"node-driver: report discontinuity flag when resyncing position\n\nmodule-rtp-sink is sending data timestampted with clock provided from\na driver. When driver jumps (for example due ptp master change) rtp sink\nhas to jumps too. Rtp sink is checking for difference between expected and\nactual position and is big enough the jump is done. As resync value in\ndriver is not equal to diff between positions, sink could ends with\nnot precise timestamps up to 1 quantum.\nEmit discont flag when driver jumps, so sink can be reinitialized without\nits own heuristic.\n","title":"node-driver: report discontinuity flag when resyncing position","timestamp":"2026-06-11T20:34:21+02:00","url":"https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/0a8ddba3e924a67e5e8b17c98014dc28e43d2534","author":{"name":"Martin Geier","email":"martin.geier@streamunlimited.com"},"added":[],"modified":["spa/plugins/support/node-driver.c"],"removed":[]},{"id":"943bce9c8539253481ad7e1623f42148d7f480f9","message":"node-driver: Add sync.force-tracking property\n\nThis property is useful for forcing tracking behavior even if the clock\ncan directly be used by timerfd.\n\nThis can be useful in cases where the clock is for example the realtime\nclock and can shift and change during playback unexpectedly. The node\ndriver can handle this without a DLL. But, in some cases, graphs can\nexperience a more stable behavior if the DLL is used and it manages\nthe readjustment to the updated time.\n\nThis is also useful for testing and debugging the DLL's behavior.\n","title":"node-driver: Add sync.force-tracking property","timestamp":"2026-06-11T20:34:22+02:00","url":"https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/943bce9c8539253481ad7e1623f42148d7f480f9","author":{"name":"Carlos Rafael Giani","email":"crg7475@mailbox.org"},"added":[],"modified":["spa/plugins/support/node-driver.c"],"removed":[]},{"id":"32fe4dbda350eed6cd1e1ee6e537c9ed22ef921b","message":"bluez: introduce media.min-latency-ms for media source\n\nTarget number of samples stored in buffer is calculated by\ntarget = SPA_CLAMP(SPA_ROUND_UP(SPA_MAX(spike * 3/2, duration),\n\t\tSPA_CLAMP((int)this->rate / 50, 1, INT32_MAX)),\n\t\t\tduration, max_buf - 2*packet_size);\nAt beginning of the playback is spike == 0, so the target is set to\nduration. Our BT is not able to maintain such low latency and drops\nso spike is increased. This can happens multiple times until playback\nis stable.\n\nThis strategy causes few dropouts at the beginning of a new playback,\nin my case on each new track.\n\nAdd min-latency-ms property to reduces spikes and the likelihood of\ndropouts at the beginning.\n","title":"bluez: introduce media.min-latency-ms for media source","timestamp":"2026-06-11T20:34:22+02:00","url":"https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/32fe4dbda350eed6cd1e1ee6e537c9ed22ef921b","author":{"name":"Martin Geier","email":"martin.geier@streamunlimited.com"},"added":[],"modified":["spa/include/spa/utils/keys.h","spa/plugins/bluez5/decode-buffer.h","spa/plugins/bluez5/media-source.c"],"removed":[]},{"id":"fa9eb6320a9bbdeaa285eb87eb472ce1c050900b","message":"combine-stream: fix incorrect compensate samples on playback restart\n\nupdate_delay is called primarily when the stream format or latency changes,\nand from playback thread, if stream reports different delay as before.\nThis function calculates the number of compensate samples for each stream\nbased on the latencies of other streams (which must be in a streaming state).\n\nDuring the first playback on a new format, update_delay is called multiple times\ndue to format or latency changes. The delay is calculated only from streams\nthat are currently streaming. If some streams are not yet streaming, their\nlatencies are ignored, and the delay is updated later in the processing\nthread. The processing thread also stores the stream delay in a local variable\n(accessed only from that thread, thus requiring no locking).\n\nOn a subsequent playback using the same format, update_delay is still called a\nfew times, and the delay is updated based on the currently streaming streams.\nIf some streams are not streaming, their latencies are ignored.\nHowever, this time, the processing thread fails to update the delay for the\npreviously non-streaming streams. Because the format didn't change, the streams\ndelay matches the last stored delay from the previous playback. As a\nresult, the compensate samples are not recalculated.\n\nTo properly update the compensate samples, update_delay must also be called\nwhen a stream's state changes to streaming (avoiding the need to clear the\nthread-buffered value, which would require locking in the processing\nthread).\n","title":"combine-stream: fix incorrect compensate samples on playback restart","timestamp":"2026-06-11T20:34:22+02:00","url":"https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/fa9eb6320a9bbdeaa285eb87eb472ce1c050900b","author":{"name":"Martin Geier","email":"martin.geier@streamunlimited.com"},"added":[],"modified":["src/modules/module-combine-stream.c"],"removed":[]},{"id":"bb90fdf03bbf9de289383839c299ecb46c365ff4","message":"spa: utils: Add SPA_ROUND_UP_POW2_32 and SPA_ROUND_UP_POW2_64 macros\n","title":"spa: utils: Add SPA_ROUND_UP_POW2_32 and SPA_ROUND_UP_POW2_64 macros","timestamp":"2026-06-11T20:34:22+02:00","url":"https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/bb90fdf03bbf9de289383839c299ecb46c365ff4","author":{"name":"Carlos Rafael Giani","email":"crg7475@mailbox.org"},"added":[],"modified":["spa/include/spa/utils/defs.h"],"removed":[]},{"id":"4eed79ee81f3699e2e32a85aa676f3ed404f49fd","message":"spa: utils: add SPA_MACHINE_USES_TWOS_COMPLEMENT macro\n","title":"spa: utils: add SPA_MACHINE_USES_TWOS_COMPLEMENT macro","timestamp":"2026-06-11T20:34:22+02:00","url":"https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/4eed79ee81f3699e2e32a85aa676f3ed404f49fd","author":{"name":"Carlos Rafael Giani","email":"crg7475@mailbox.org"},"added":[],"modified":["spa/include/spa/utils/defs.h"],"removed":[]}],"total_commits_count":9,"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}}