Dear all,
I checked the keep_m_in_n block and found a possible bug in it. In the work function, the code wrote:
consume_each(d_n);
return d_m;
which I think it should be
consume_each(blks*d_n);
return blks*d_m.
while blks=std::min(noutput_items/d_m, ninput_items[0]/d_n).
Since both m and n of the block might change, which means the output to input rate might change. I changed the set_output_multiple(m) to set_relative_rate(d_n/d_m). And we made the set_relative_rate(d_n/d_m) be called in the set_m and set_n function to make sure the rate is updated on time.
The patch is attached. Could you check it?
Thanks!
Best,
Zhe