Stream tags and None 1 to 1 processing blocks. Failure to propagate

Hi All,

I have seem to run into an issue with the stream tags and
interp/decimation
processing blocks. When computing to add the tag to the proper output
offset, it always rounds down. In certain cases, computed offset is
X.YZ,
where the first input item to the next block is at X+1. So the stream
tag is
never copied over.

One fix might be the ceil function?

–Colby

On Mon, Jul 18, 2011 at 10:28 PM, Colby B. [email protected]
wrote:

–Colby

Eric and I went over this pretty carefully, and I thought we handled it
correctly. I wasn’t able to follow your XYZ logic in your email. Could
you
be more specific about what the problem is that you are seeing?

Tom

Yea, sorry for vague email. Was tired and in a hurry. I encountered the
error when dealing with a bank of polyphase resamplers. I traced the tag
copying to
gnuradio-core/src/lib/runtime/gr_block_executor.cc line 121 for none 1
to 1
(fractional rate) blocks.

The logic written originally is pmt::pmt_from_uint64(newcount * rrate)
where
rrate is the block’s rate and newcount is the absolute position of the
tag
on the input.

I run into this following situation. Say input sample to the resampler
is
tagged at index 800. With a resample rate of 0.9984 we get the product
of
798.72. This will round down to 798. However the next block has already
processed samples 0 to 798. It is now looking at 799 and forward. So the
tag
never propagates.

-Colby