DecodeSignal: Process late annotations which are sent upon EOF

When protocol decoders learn about the end of the input data, they may
emit more annotations before their operation terminates or gets reset
and re-fed. Do process these late annotations in the application, too.
Without this change, the last annotations are not seen. See bug #292
for an example.
This commit is contained in:
Gerhard Sittig 2022-10-03 21:10:40 +02:00 committed by Soeren Apel
parent f375439ffd
commit fd6005aadf
1 changed files with 5 additions and 0 deletions

View File

@ -1376,8 +1376,13 @@ void DecodeSignal::decode_proc()
// If the input segment is complete, we've exhausted this segment
if (input_segment->is_complete()) {
#if defined HAVE_SRD_SESSION_SEND_EOF && HAVE_SRD_SESSION_SEND_EOF
// Tell protocol decoders about the end of
// the input data, which may result in more
// annotations being emitted
(void)srd_session_send_eof(srd_session_);
new_annotations();
#endif
if (current_segment_id_ < (logic_mux_data_->logic_segments().size() - 1)) {
// Process next segment
current_segment_id_++;