diff options
author | Martin Braun <martin.braun@kit.edu> | 2013-11-18 19:27:22 +0100 |
---|---|---|
committer | Martin Braun <martin.braun@kit.edu> | 2013-11-19 12:24:32 +0100 |
commit | 86845ea15ab8d36f5c196c8ab56e5b77d43b4cf9 (patch) | |
tree | 5d9f7c616016a8a220877750b03a26c32e4bbc0b | |
parent | b27d2ba75d264e9b6cf227043cc221e53761d5f8 (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.cc | 6 |
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 { |