FMOD_DSP_PROCESS_CALLBACK, takes inputs of:
(
FMOD_DSP_STATE *dsp_state,
unsigned int length,
const FMOD_DSP_BUFFER_ARRAY *inbufferarray,
FMOD_DSP_BUFFER_ARRAY *outbufferarray,
FMOD_BOOL inputsidle,
FMOD_DSP_PROCESS_OPERATION op
);
So if I am given n channels of “length” number of samples, I must output m channels also of the same length.
What happens if I am given 300 samples, but I only process in block sizes of 256, and am thus only able to return 256 samples at a time? There doesn’t seem to be a way to return a partial frame. Can I define a required number of samples per invocation? How are we to handle block based processing?