From: Gerhard Sittig Date: Mon, 3 Oct 2022 19:10:40 +0000 (+0200) Subject: DecodeSignal: Process late annotations which are sent upon EOF X-Git-Url: https://sigrok.org/gitaction?a=commitdiff_plain;h=fd6005aadf3c86bca4dc1fb487d8615669e1deee;p=pulseview.git 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. --- diff --git a/pv/data/decodesignal.cpp b/pv/data/decodesignal.cpp index 01d5f278..f4d4c7da 100644 --- a/pv/data/decodesignal.cpp +++ b/pv/data/decodesignal.cpp @@ -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_++;