summaryrefslogtreecommitdiff
path: root/gr-digital/lib/header_payload_demux_impl.cc
diff options
context:
space:
mode:
authorMartin Braun <martin.braun@ettus.com>2014-01-27 15:52:18 +0100
committerMartin Braun <martin.braun@ettus.com>2014-01-30 16:50:00 +0100
commit3e47151377cf7ee05a574ea2da044078f2a26ff7 (patch)
treed0f77c64eebf41861da6de646f6d40adb299697b /gr-digital/lib/header_payload_demux_impl.cc
parent3e054cb93ccd2eb55ff040f9bc72532ea5b0b954 (diff)
digital: HPD consume-behaviour adapted to allow for trigger jitter
Diffstat (limited to 'gr-digital/lib/header_payload_demux_impl.cc')
-rw-r--r--gr-digital/lib/header_payload_demux_impl.cc5
1 files changed, 3 insertions, 2 deletions
diff --git a/gr-digital/lib/header_payload_demux_impl.cc b/gr-digital/lib/header_payload_demux_impl.cc
index 406d59e246..15308c0be1 100644
--- a/gr-digital/lib/header_payload_demux_impl.cc
+++ b/gr-digital/lib/header_payload_demux_impl.cc
@@ -266,10 +266,11 @@ namespace gr {
case STATE_PAYLOAD:
if (check_items_available(d_curr_payload_len, ninput_items, noutput_items, nread)) {
- update_special_tags(0, d_curr_payload_len * (d_items_per_symbol + d_gi));
+ // The -1 because we won't consume the last item, it might hold the next trigger.
+ update_special_tags(0, (d_curr_payload_len - 1) * (d_items_per_symbol + d_gi));
copy_n_symbols(in, out_payload, PORT_PAYLOAD, d_curr_payload_len);
produce(PORT_PAYLOAD, d_curr_payload_len * (d_output_symbols ? 1 : d_items_per_symbol));
- consume_each (d_curr_payload_len * (d_items_per_symbol + d_gi));
+ consume_each ((d_curr_payload_len - 1) * (d_items_per_symbol + d_gi)); // Same here
set_min_noutput_items(d_output_symbols ? 1 : (d_items_per_symbol + d_gi));
d_state = STATE_FIND_TRIGGER;
}