{"object_kind":"push","event_name":"push","before":"73974598fafeea9491f0f36a31bdaef2352dbd4f","after":"0ee27c48de1ff6fd418bd7f63f5e6011f39039eb","ref":"refs/heads/master","ref_protected":true,"checkout_sha":"0ee27c48de1ff6fd418bd7f63f5e6011f39039eb","message":null,"user_id":3060,"user_name":"Wim Taymans","user_username":"wtaymans","user_email":"[REDACTED]","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?v=1792998373","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":"ad7bd98c66e76b627b9cd4420665dc0b53d77223","message":"module-rtp: don't repair packets for formats lacking float converters\n\nFor formats without to/from_float, the repaired packets were never\nwritten and played the stale contents of reused buffers, including old\nRTP headers. The header's first byte gives a nearly full-scale sample\nper packet, producing a loud glitch with a tone dependent on ptime.\n\nSkip the repair for these formats. The read then fills the gap with\nsilence.\n","title":"module-rtp: don't repair packets for formats lacking float converters","timestamp":"2026-10-23T13:33:43+00:00","url":"https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/ad7bd98c66e76b627b9cd4420665dc0b53d77223","author":{"name":"Jens Mölzer","email":"moelzerjens@gmail.com"},"added":[],"modified":["src/modules/module-rtp/audio.c"],"removed":[]},{"id":"183bf95d8c4540c5a0f80c564d08aca51c83ad58","message":"module-rtp: count repaired packets as queued\n\naudio_packet_repair() forgot to increase num_queued for the repaired\npackets it inserted into the queue.\n","title":"module-rtp: count repaired packets as queued","timestamp":"2026-10-23T15:44:16+00:00","url":"https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/183bf95d8c4540c5a0f80c564d08aca51c83ad58","author":{"name":"Jens Mölzer","email":"moelzerjens@gmail.com"},"added":[],"modified":["src/modules/module-rtp/audio.c"],"removed":[]},{"id":"0ee27c48de1ff6fd418bd7f63f5e6011f39039eb","message":"module-rtp: only reuse played packets for repair\n\nWithout free packets, rtp_stream_get_free_packet() reuses the oldest\nqueued packet. When a gap needed more packets than were queued before\nlast, the repair took last and then its own repaired packets, breaking\ntheir sequence numbers. The next read then saw new gaps and repaired\nthem with zero duration.\n\nOnly reuse the packets before last, and repair as much of the gap as\nthat allows.\n","title":"module-rtp: only reuse played packets for repair","timestamp":"2026-10-23T15:44:16+00:00","url":"https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/0ee27c48de1ff6fd418bd7f63f5e6011f39039eb","author":{"name":"Jens Mölzer","email":"moelzerjens@gmail.com"},"added":[],"modified":["src/modules/module-rtp/audio.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}}