Double event when you seek by time at 0
When you seek (set_pos on a bt_iterator) at the time 0 on an iterator, you will get the first event twice, the first time with the timestamp corresponding to the creation time of the buffer and the second time with the right event timestamp.
seekpos.type = BT_SEEK_TIME;
seekpos.u.seek_time = 0
If you do a seekpos.type = BT_SEEK_BEGIN, you get the right result.
it seems that the packet start time and the first event in the trace are not at the same time (the first packet start at the buffer creation time). The this the index point to the creation time and now the first event time the trace.