summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Braun <martin.braun@kit.edu>2013-11-18 19:27:22 +0100
committerMartin Braun <martin.braun@kit.edu>2013-11-19 12:24:32 +0100
commit86845ea15ab8d36f5c196c8ab56e5b77d43b4cf9 (patch)
tree5d9f7c616016a8a220877750b03a26c32e4bbc0b
parentb27d2ba75d264e9b6cf227043cc221e53761d5f8 (diff)
digital: HPD fixes (burst ID tags are no more propagated; buffer sizes are halved to est. max output size)
-rw-r--r--gr-digital/lib/header_payload_demux_impl.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/gr-digital/lib/header_payload_demux_impl.cc b/gr-digital/lib/header_payload_demux_impl.cc
index 7cc3ec3836..ba346e2ae7 100644
--- a/gr-digital/lib/header_payload_demux_impl.cc
+++ b/gr-digital/lib/header_payload_demux_impl.cc
@@ -184,6 +184,7 @@ namespace gr {
in += d_itemsize;
nread++;
d_state = STATE_FIND_TRIGGER;
+ // Fall through
case STATE_FIND_TRIGGER:
trigger_offset = find_trigger_signal(nread, noutput_items, input_items);
@@ -194,6 +195,7 @@ namespace gr {
consume_each (trigger_offset);
in += trigger_offset * d_itemsize;
d_state = STATE_HEADER;
+ // Fall through
case STATE_HEADER:
@@ -212,6 +214,7 @@ namespace gr {
in += d_header_len * (d_items_per_symbol + d_gi) * d_itemsize;
nread += d_header_len * (d_items_per_symbol + d_gi);
d_state = STATE_PAYLOAD;
+ // Fall through
case STATE_PAYLOAD:
if (check_items_available(d_curr_payload_len, ninput_items, noutput_items, nread)) {
@@ -258,6 +261,7 @@ namespace gr {
}
}
if (tag_index != -1) {
+ remove_item_tag(0, tags[tag_index]);
return min_offset - nitems_read(0);
}
}
@@ -299,7 +303,7 @@ namespace gr {
}
if (d_state == STATE_HEADER_RX_SUCCESS)
{
- if ((d_curr_payload_len * (d_output_symbols ? 1 : d_items_per_symbol)) > max_output_buffer(1)) {
+ if ((d_curr_payload_len * (d_output_symbols ? 1 : d_items_per_symbol)) > max_output_buffer(1)/2) {
d_state = STATE_HEADER_RX_FAIL;
GR_LOG_INFO(d_logger, boost::format("Detected a packet larger than max frame size (%1% symbols)") % d_curr_payload_len);
} else {