From fb434fba9de4ecfb867dc9a08782bb2bbe289346 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joan=20Sol=C3=A0?= <jsola@iri.upc.edu> Date: Wed, 7 Aug 2019 16:45:08 +0200 Subject: [PATCH] Move advanceDerived to before last_ptr_->frame->remove() --- src/processor/processor_tracker.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/processor/processor_tracker.cpp b/src/processor/processor_tracker.cpp index 988b80668..c70b06943 100644 --- a/src/processor/processor_tracker.cpp +++ b/src/processor/processor_tracker.cpp @@ -210,12 +210,14 @@ void ProcessorTracker::processCapture(CaptureBasePtr _incoming_ptr) getProblem()->auxFrameCallback(last_ptr_->getFrame(), std::static_pointer_cast<ProcessorBase>(shared_from_this()), params_tracker_->time_tolerance); // Advance this + advanceDerived(); + + // Replace last frame for a new one in incoming last_ptr_->getFrame()->addCapture(incoming_ptr_); // Add incoming Capture to the tracker's last Frame // do not remove! last_ptr_->remove(); incoming_ptr_->getFrame()->setTimeStamp(incoming_ptr_->getTimeStamp()); // Update pointers - advanceDerived(); last_ptr_ = incoming_ptr_; incoming_ptr_ = nullptr; }*/ @@ -224,14 +226,16 @@ void ProcessorTracker::processCapture(CaptureBasePtr _incoming_ptr) // We do not create a KF // Advance this + advanceDerived(); + + // Replace last frame for a new one in incoming FrameBasePtr frm = getProblem()->emplaceFrame(NON_ESTIMATED, last_ptr_->getFrame()->getState(), incoming_ptr_->getTimeStamp()); incoming_ptr_->link(frm); last_ptr_->getFrame()->remove(); // implicitly calling last_ptr_->remove(); // Update pointers - advanceDerived(); - last_ptr_ = incoming_ptr_; - incoming_ptr_ = nullptr; + last_ptr_ = incoming_ptr_; + incoming_ptr_ = nullptr; } break; } -- GitLab