{"object_kind":"push","event_name":"push","before":"df2f36ad8f40e09b514424a79f5bffd570be80a2","after":"984b2d296e246d69451e593a6cf8d21c30078292","ref":"refs/heads/master","ref_protected":true,"checkout_sha":"984b2d296e246d69451e593a6cf8d21c30078292","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":"aede3d049ce9f5c105a03f303b79d5c011e798ad","message":"buffer: update comment, we have flags now\n","title":"buffer: update comment, we have flags now","timestamp":"2025-10-06T10:31:52+02:00","url":"https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/aede3d049ce9f5c105a03f303b79d5c011e798ad","author":{"name":"Wim Taymans","email":"wtaymans@redhat.com"},"added":[],"modified":["spa/include/spa/buffer/alloc.h"],"removed":[]},{"id":"1a54b9e66ffe57a2f21296ab27cb6394fa17053d","message":"impl-port: handle errors from the mixer use_buffers\n\nAlso handle errors when we fail to set mixer buffers on the output port\nof the mixer.\n","title":"impl-port: handle errors from the mixer use_buffers","timestamp":"2025-10-06T10:38:08+02:00","url":"https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/1a54b9e66ffe57a2f21296ab27cb6394fa17053d","author":{"name":"Wim Taymans","email":"wtaymans@redhat.com"},"added":[],"modified":["src/pipewire/impl-port.c"],"removed":[]},{"id":"af3ad7bf9f861d6b3ca0446d90e47e526bc6f807","message":"buffers: improve allocation\n\nThere are really 2 options for the buffer allocation:\n\n1. allocate the buffers skeleton and meta/chunk/data in malloc memory.\n This is when the PW_BUFFERS_FLAG_SHARED is unset.\n2. allocate buffers skeleton in alloc memory and the meta/chunk/data\n in shared memory when the PW_BUFFERS_FLAG_SHARED is set.\n\nOptionally the data can be left unallocated in both cases when the\nPW_BUFFERS_FLAG_NO_MEM is set. In this case we also need to pass the\nSPA_BUFFER_ALLOC_FLAG_NO_DATA flag to allocator or else it will set the\ndata pointers to 0 sized memory in the skeleton.\n\nIf we use SHARED and we allocated memory, we can also set the MemFd and\nmapoffset into our shared mem. We can do this even if the data_type is\nMemPtr.\n\nWe can decide on the datatype to use earlier, based on the negotiated\nflags. In the MemFd case, make sure the buffer data is page aligned in\nthat case to make things easier. Also force everything in SHARED mem\nwhen the data is in SHARED mem. We also don't need to\nPW_BUFFERS_FLAG_SHARED_MEM because we work with the negotiated flags\nnow to decide if SHARED mem is needed or not.\n\nWith this change, a node port could provide a MemFd data_type mask in\nthe Buffers param and this would negotiate shared mem with the mixer.\nPreviously, it would only ever allocate malloc memory.\n\nSee #4918\n","title":"buffers: improve allocation","timestamp":"2025-10-06T10:58:19+02:00","url":"https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/af3ad7bf9f861d6b3ca0446d90e47e526bc6f807","author":{"name":"Wim Taymans","email":"wtaymans@redhat.com"},"added":[],"modified":["src/pipewire/buffers.c","src/pipewire/buffers.h","src/pipewire/impl-link.c"],"removed":[]},{"id":"b66d49702f548edad33162fbe2ee8837434af6e5","message":"examples: avoid mmap in the example\n\nWe don't need to do this ourselves, the MAP_BUFFERS port flag already\nmakes sure this is done for use.\n\nWe used to have to do this here to ensure the mixer could find the data\npointer and not error out. Now that the mixer can MMAP, this can go.\n\nSee #4918\n","title":"examples: avoid mmap in the example","timestamp":"2025-10-06T11:17:08+02:00","url":"https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/b66d49702f548edad33162fbe2ee8837434af6e5","author":{"name":"Wim Taymans","email":"wtaymans@redhat.com"},"added":[],"modified":["src/examples/audio-dsp-sink.c"],"removed":[]},{"id":"984b2d296e246d69451e593a6cf8d21c30078292","message":"context: only make active nodes runnable\n\nOnly try to make active nodes runnable. This can happen when the node is\ndestroyed.\n\nAvoids a -EIO error when destroying nodes from pavucontrol.\n","title":"context: only make active nodes runnable","timestamp":"2025-10-06T11:48:40+02:00","url":"https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/984b2d296e246d69451e593a6cf8d21c30078292","author":{"name":"Wim Taymans","email":"wtaymans@redhat.com"},"added":[],"modified":["src/pipewire/context.c"],"removed":[]}],"total_commits_count":5,"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}}