diff --git a/src/pipewire/buffers.c b/src/pipewire/buffers.c index 1ba98b183..f15f75753 100644 --- a/src/pipewire/buffers.c +++ b/src/pipewire/buffers.c @@ -319,6 +319,10 @@ int pw_buffers_negotiate(struct pw_context *context, uint32_t flags, max_buffers = 2; } + if (types == SPA_ID_INVALID && + SPA_FLAG_IS_SET(flags, PW_BUFFERS_FLAG_SHARED_MEM)) + types = 1<node->remote || input->node->remote) + alloc_flags |= PW_BUFFERS_FLAG_SHARED_MEM; + /* if output port can alloc buffers, alloc skeleton buffers */ if (SPA_FLAG_IS_SET(out_flags, SPA_PORT_FLAG_CAN_ALLOC_BUFFERS)) { SPA_FLAG_SET(alloc_flags, PW_BUFFERS_FLAG_NO_MEM);