# Possible typos in a GRCon15 presentation?

**URL:** <https://www.ruby-forum.com/t/possible-typos-in-a-grcon15-presentation/243207>\
**Category:** GNU Radio\
**Created:** [September 1, 2015, 3:41pm UTC](https://www.ruby-forum.com/t/possible-typos-in-a-grcon15-presentation/243207 "2015-09-01T15:41:59Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Sadaf\_N](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/858c86/32.png) [@Sadaf\_N](https://www.ruby-forum.com/u/Sadaf_N)\
**Post date:** [September 1, 2015, 3:41pm UTC](https://www.ruby-forum.com/t/possible-typos-in-a-grcon15-presentation/243207/1 "2015-09-01T15:41:59Z")

</div>

In a presentation ‘Stream Tags, PDUs, and Message Passing’ by Tom  
Rondeau,  
it seems some minor typos in pp. 14-18

Assuming my knowledge is correct, add\_item\_tag() should use offset of  
output buffer, not input buffer. And get\_tags\_in\_\*() use offset of input  
buffer.

1. Page 16 is referring nitems\_read() for add\_item\_tag().
2. add\_item\_tag() slides contain figures of input buffer and  
get\_items\_in\_\*() slides contain figures of output buffer.

Since I’ve not attended GRCon15 and judge a presentation without any  
speech  
nor context, I might just point wrong thing.

Regards,  
Jeon.

---

<div class="post-metadata">

**Author:** ![Jeon](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/e8c25b/32.png) [@Jeon](https://www.ruby-forum.com/u/Jeon)\
**Post date:** [September 2, 2015, 7:51pm UTC](https://www.ruby-forum.com/t/possible-typos-in-a-grcon15-presentation/243207/2 "2015-09-02T19:51:39Z")

</div>

HiJeon - It is quite possible that some presentations contain minor  
typos or even errors. Research/development and presentation of it is  
imperfect at best. Discussion such as this is the right thing to do! If  
anyone catchesminor typos or errors in any GRCon15 presentation (or,  
for that matter, a paper relevant to SDR / GR / GRCon), please ping this  
list and the researcher/developer/presenter so that the info is  
searchable and might even be fixed in some future paper/presentation.  
All of the above said, hopefully Tom is reading through these emails &  
can respond…Thanks for getting the discussion started! - MLD

---

<div class="post-metadata">

**Author:** ![Jeon](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/e8c25b/32.png) [@Jeon](https://www.ruby-forum.com/u/Jeon)\
**Post date:** [September 3, 2015, 2:53am UTC](https://www.ruby-forum.com/t/possible-typos-in-a-grcon15-presentation/243207/3 "2015-09-03T02:53:25Z")

</div>

Hi Jeon,

Here’s a long-winded answer. You’re correct, but I wanted to make sure  
the terminology was clear.

Tag offsets in add\_item\_tag() are absolute, relative to the beginning of  
the sample stream, not relative to input or output buffers. But it’s  
probably safer to think in terms of absolute number of items written to  
each output buffer. For rate-changing blocks, the input/output offsets  
will be different. In add\_item\_tag(), you specify an output port, so  
that’s another reason to think in terms of output samples.

Yes, get\_items\_in\_\*() fetch tags from a stream on an input port. Again,  
offsets are absolute, so input buffers are not really relevant. But, it  
makes sense to search for tags related to the samples in the input  
buffer. The easiest function to use is get\_tags\_in\_window(), which  
simply adds nitems\_read[port] to the provided offsets. The absolute  
offset is available as a field in each tag. The get\_tags\_in\_range()  
function does the same thing, just without adding nitems\_read[port].

You could search for tags whose offsets are earlier/later than the  
offsets of the samples in an input buffer. However, older tags are  
likely to have been deleted, and future tags (I think this can actually  
happen) would be really confusing.

- Jeff
