From 2722d16303998d86c603f37ef9691b5cbca2de24 Mon Sep 17 00:00:00 2001 From: zuozhiwei Date: Mon, 20 Apr 2026 11:05:54 +0800 Subject: [PATCH] audioadapter: remap port id for port_reuse_buffer on target port_use_buffers and related port methods increment port_id when the implicit output direction differs from the adapter's primary direction. port_reuse_buffer only receives a port id but applies to output ports, so apply the same offset before forwarding to this->target. Also update videoadapter for the same mapping. --- spa/plugins/audioconvert/audioadapter.c | 3 +++ spa/plugins/videoconvert/videoadapter.c | 3 +++ 2 files changed, 6 insertions(+) diff --git a/spa/plugins/audioconvert/audioadapter.c b/spa/plugins/audioconvert/audioadapter.c index 51d87d4e3..801b736ab 100644 --- a/spa/plugins/audioconvert/audioadapter.c +++ b/spa/plugins/audioconvert/audioadapter.c @@ -1812,6 +1812,9 @@ impl_node_port_reuse_buffer(void *object, uint32_t port_id, uint32_t buffer_id) spa_return_val_if_fail(this != NULL, -EINVAL); + if (SPA_DIRECTION_OUTPUT != this->direction) + port_id++; + return spa_node_port_reuse_buffer(this->target, port_id, buffer_id); } diff --git a/spa/plugins/videoconvert/videoadapter.c b/spa/plugins/videoconvert/videoadapter.c index e324b49de..fe50413aa 100644 --- a/spa/plugins/videoconvert/videoadapter.c +++ b/spa/plugins/videoconvert/videoadapter.c @@ -1779,6 +1779,9 @@ impl_node_port_reuse_buffer(void *object, uint32_t port_id, uint32_t buffer_id) spa_return_val_if_fail(this != NULL, -EINVAL); + if (SPA_DIRECTION_OUTPUT != this->direction) + port_id++; + return spa_node_port_reuse_buffer(this->target, port_id, buffer_id); }