Why get_data callback length toggles between 1 and 120?

Hello,
Everything is working, but I try to find ways to speed up my DSP+inference. Out of curiosity, I printed out offset and length of edge impulse callback.

Can someone explain why the output is toggling between 1 and 120. Is this normal?

My continous slice buffer is currently 1000. Can I get performance increase if my buffer size is 2^N or other nicely divisible number? That toggling seems inefficient.

static int get_signal_data(size_t offset, size_t length, float *out_ptr) {
for (size_t i = 0; i < length; i++) {
out_ptr[i] = (data_buffer + offset)[i];
}
printk(“offset %d, length %d\n”, offset, length); //added this to investigate
return EIDSP_OK;
}

signal.total_length = 1000;
signal.get_data = &get_signal_data;
res = run_classifier_continuous(&signal, &result, false);

Output:

offset 999, length 1
offset 0, length 120
offset 119, length 1
offset 120, length 160
offset 279, length 1
offset 280, length 160
offset 439, length 1
offset 440, length 160
offset 599, length 1
offset 600, length 160
offset 759, length 1
offset 760, length 160
offset 919, length 1
offset 920, length 80