From fd6005aadf3c86bca4dc1fb487d8615669e1deee Mon Sep 17 00:00:00 2001 From: Gerhard Sittig Date: Mon, 3 Oct 2022 21:10:40 +0200 Subject: [PATCH] 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. --- pv/data/decodesignal.cpp | 5 +++++ 1 file changed, 5 insertions(+) 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_++;