Bach, Andrea wrote:
how can I change the size that is provided inside the „transfer“- callback of an external PCM plugin?
You cannot.
ALSA assumes that there is a ring buffer that has the configured buffer size, and that when N frames are reported as available, any number of frames between 1 and N can be read/written.
I need to write a filter plugin and I have to use for processing a chunk size of power of two (32, 64, or 128 bytes … that’s because of the use of FFT). But I get inside the transfer callback a buffer of length 1000. That would be ok if I could just return let's say 960 bytes
Handling less bytes than requested would imply that an error occured.
You could add your own buffer to keep any remaining frames of the 128-frame chunk until the next transfer call.
Regards, Clemens