{"object_kind":"push","event_name":"push","before":"13131706aa52242b3951a9c661ce2e50349bdab0","after":"f055cf398db513c7364fb7e121fd02bfdb17dfcb","ref":"refs/heads/master","ref_protected":true,"checkout_sha":"f055cf398db513c7364fb7e121fd02bfdb17dfcb","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":"01627e036723e477d82afebfd62647bb420e2b6a","message":"examples/video-src-fixate: Split out format param handler\n","title":"examples/video-src-fixate: Split out format param handler","timestamp":"2026-01-14T08:15:43+00:00","url":"https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/01627e036723e477d82afebfd62647bb420e2b6a","author":{"name":"Jonas Ådahl","email":"jadahl@gmail.com"},"added":[],"modified":["src/examples/video-src-fixate.c"],"removed":[]},{"id":"97976e4daf3b6165c695077b3a512792993f587d","message":"examples/video-play-fixate: Split out format param handler\n","title":"examples/video-play-fixate: Split out format param handler","timestamp":"2026-01-14T08:15:43+00:00","url":"https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/97976e4daf3b6165c695077b3a512792993f587d","author":{"name":"Jonas Ådahl","email":"jadahl@gmail.com"},"added":[],"modified":["src/examples/video-play-fixate.c"],"removed":[]},{"id":"21217a1fad327350ac5a38f98e24e84af68f09d6","message":"examples/video-play-fixate: Switch to RGBA\n\nThe video-src-fixate was previously changed from RGB to RGBA, so to be\nable to resolve a format, switch here too.\n","title":"examples/video-play-fixate: Switch to RGBA","timestamp":"2026-01-14T08:15:43+00:00","url":"https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/21217a1fad327350ac5a38f98e24e84af68f09d6","author":{"name":"Jonas Ådahl","email":"jadahl@gmail.com"},"added":[],"modified":["src/examples/video-play-fixate.c"],"removed":[]},{"id":"e615f175733cd3cad646e07fb4096288baad6ad6","message":"examples/video-src-fixate: Fake DmaBuf fd with memfd\n\nOtherwise the stream will fail due to not being able to import fd.\n","title":"examples/video-src-fixate: Fake DmaBuf fd with memfd","timestamp":"2026-01-14T08:15:43+00:00","url":"https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/e615f175733cd3cad646e07fb4096288baad6ad6","author":{"name":"Jonas Ådahl","email":"jadahl@gmail.com"},"added":[],"modified":["src/examples/video-src-fixate.c"],"removed":[]},{"id":"58b958860ea4075e06fc8aa62038acc7dd3c434f","message":"stream: Add DRM device negotiation\n\nA DMA buffer from a DRM device are typically accessed using API related\nto a DRM device, e.g. Vulkan or EGL. To create such a context for using\nwith a PipeWire stream that passed DRM device DMA buffers applications\nhave so far usually guessed or made use of the same context as the\nstream content will be presented. This has mostly been the Wayland\nEGL/Vulkan context, and while this has most of the time worked, it's\nsomewhat by accident, and for reliable operation, PipeWire must be aware\nof what DRM device a DMA buffer should be accessed using.\n\nTo address this, introduce device ID negotation, allowing sources and\nsinks to negotiate what DRM device is supported, and what formats and\nmodifiers are supported by them.\n\nThis will allow applications to stop relying on luck or the windowing\nsystem to figure out how to access the DMA buffers. It also paves the\nway for being able to use multiple GPUs for different video streams,\ndepending on what the sources and sinks support.\n","title":"stream: Add DRM device negotiation","timestamp":"2026-01-14T08:15:43+00:00","url":"https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/58b958860ea4075e06fc8aa62038acc7dd3c434f","author":{"name":"Jonas Ådahl","email":"jadahl@gmail.com"},"added":["src/pipewire/capabilities.h"],"modified":["doc/dox/internals/dma-buf.dox","spa/include/spa/param/format-types.h","spa/include/spa/param/format.h","src/pipewire/meson.build"],"removed":[]},{"id":"fc5b43a0b0faf5d1c237d8ea42861445271158cc","message":"examples: Make fixate examples start inactive\n\nThe actual formats are sent just before activating. This is done in\npreparation for supporting device ID negotiation.\n","title":"examples: Make fixate examples start inactive","timestamp":"2026-01-14T08:15:43+00:00","url":"https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/fc5b43a0b0faf5d1c237d8ea42861445271158cc","author":{"name":"Jonas Ådahl","email":"jadahl@gmail.com"},"added":[],"modified":["src/examples/video-play-fixate.c","src/examples/video-src-fixate.c"],"removed":[]},{"id":"5481a235eda0477a83ef95fac7b9cc2bcea675ef","message":"examples: Make fixate examples optionally stream DMA buffers\n\nThe video-play-fixate example will downgrade the stream to MemFd one\nmodifier at a time. Sometimes it's useful to test with not downgrading;\nto avoid having to depend on actual DRM devices (real or virtual), fake\nthem by using memfd and mapping them in the sink.\n","title":"examples: Make fixate examples optionally stream DMA buffers","timestamp":"2026-01-14T08:15:43+00:00","url":"https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/5481a235eda0477a83ef95fac7b9cc2bcea675ef","author":{"name":"Jonas Ådahl","email":"jadahl@gmail.com"},"added":[],"modified":["src/examples/video-play-fixate.c","src/examples/video-src-fixate.c"],"removed":[]},{"id":"f055cf398db513c7364fb7e121fd02bfdb17dfcb","message":"examples: Make fixate examples support device ID negotation\n\nThings are structured in a way allowing testing falling back to\nimplicitly assumed device by defining/not defining macros.\n","title":"examples: Make fixate examples support device ID negotation","timestamp":"2026-01-14T08:15:43+00:00","url":"https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/f055cf398db513c7364fb7e121fd02bfdb17dfcb","author":{"name":"Jonas Ådahl","email":"jadahl@gmail.com"},"added":["src/examples/base64.h"],"modified":["src/examples/video-play-fixate.c","src/examples/video-src-fixate.c"],"removed":[]}],"total_commits_count":8,"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}}