mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2026-06-17 14:33:04 -04:00
Like the audioconvert node, the DSP mixer embedded a fixed buffers[MAX_BUFFERS] array (MAX_BUFFERS == 64) in struct port, each struct buffer holding datas[MAX_DATAS] (MAX_DATAS == 64), reserving ~37 KB per port regardless of the actual buffer/channel count. A DSP mixer port is created for every link set that mixes into a port, so this adds up. Allocate the buffer table and the per-buffer data-pointer pool in a single calloc in port_use_buffers(), sized to the real number of buffers and their data blocks, and release it in clear_buffers(). remove_port() now clears the port before zeroing it so a pooled port does not leak its allocation, and impl_clear() clears the input and output ports on teardown. Mirrors the audioconvert dynamic-allocation change. Co-authored-by: Copilot <copilot@github.com> |
||
|---|---|---|
| .. | ||
| audiomixer.c | ||
| benchmark-mix-ops.c | ||
| meson.build | ||
| mix-ops-avx2.c | ||
| mix-ops-c.c | ||
| mix-ops-sse.c | ||
| mix-ops-sse2.c | ||
| mix-ops.c | ||
| mix-ops.h | ||
| mixer-dsp.c | ||
| plugin.c | ||
| test-mix-ops.c | ||