summaryrefslogtreecommitdiff
path: root/gr-uhd/lib/usrp_sink_impl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gr-uhd/lib/usrp_sink_impl.cc')
-rw-r--r--gr-uhd/lib/usrp_sink_impl.cc11
1 files changed, 4 insertions, 7 deletions
diff --git a/gr-uhd/lib/usrp_sink_impl.cc b/gr-uhd/lib/usrp_sink_impl.cc
index 316c39ae2e..413952add7 100644
--- a/gr-uhd/lib/usrp_sink_impl.cc
+++ b/gr-uhd/lib/usrp_sink_impl.cc
@@ -496,6 +496,8 @@ namespace gr {
//the last sample of the previous burst. Drop samples until the next
//length_tag is found. Notify the user of the tag gap.
std::cerr << "tG" << std::flush;
+ //increment the timespec by the number of samples dropped
+ _metadata.time_spec += ::uhd::time_spec_t(0, ninput_items, _sample_rate);
return ninput_items;
}
}
@@ -572,15 +574,10 @@ namespace gr {
//length_tag found; set the start of burst flag in the metadata
else if(not pmt::is_null(_length_tag_key) and pmt::equal(key, _length_tag_key)) {
//If there are still items left to send, the current burst has been preempted.
- //Truncate the current burst by setting the end of burst flag in a mini end of
- //burst packet. The next call to work will start at the new burst. Notify the
- //user of the tag preemption.
+ //Set the items remaining counter to the new burst length. Notify the user of
+ //the tag preemption.
if(_nitems_to_send > 0) {
- ninput_items = 0;
- _nitems_to_send = 0;
- _metadata.end_of_burst = true;
std::cerr << "tP" << std::flush;
- return;
}
_nitems_to_send = pmt::to_long(value);
_metadata.start_of_burst = true;