How does ‘history’ relate to i/o data indices? I assume you cannot have
an index < zero.
Say your work function gets common i/o arrays
const float *in = (const float *) input_items[0];
float *out = (float *) output_items[0];
and you set_history(ntaps), I guess that means you get ( noutput_items +
ntaps ) for the number of intput items and can produce noutput_items
output.
Now I have two streams, one is pass-thru (symbol tags) and the other is
the data to be filtered and gets delayed by ntaps.
The filtered stream is processed by:
d_equalizer->filter (in, in_tags, out, noutput_items);
where out[x] is the processed sample in[x + ntaps] (?).
So to keep the symbol tags aligned, should we use:
for (int i = 0; i < noutput_items; i++)
out_tags[i] = in_tags[i + d_offset];
d_offset = ntaps - npretaps - 1
Is that the correct thinking? size of out[] is noutput_items and size of
in[] is noutput_items + history ?? history = ntaps, and is > ntaps