diff --git a/src/processor/processor_compass.cpp b/src/processor/processor_compass.cpp index 956f7581ced4bdf6ef66d8687a5dc999e20242e5..4ddbce35886a2233ed4b4458c75b1f529b214958 100644 --- a/src/processor/processor_compass.cpp +++ b/src/processor/processor_compass.cpp @@ -39,13 +39,13 @@ ProcessorCompass::~ProcessorCompass() void ProcessorCompass::processCapture(CaptureBasePtr _capture) { // Search for any stored frame within time tolerance of capture - auto frame_pack = buffer_pack_kf_.select(_capture->getTimeStamp(), params_->time_tolerance); - if (frame_pack) + auto keyframe = buffer_frame_.select(_capture->getTimeStamp(), params_->time_tolerance); + if (keyframe) { - processMatch(frame_pack->key_frame, _capture); + processMatch(keyframe, _capture); // remove the frame and older frames - buffer_pack_kf_.removeUpTo(frame_pack->key_frame->getTimeStamp()); + buffer_frame_.removeUpTo(keyframe->getTimeStamp()); } // Otherwise: store capture // Note that more than one processor can be emplacing frames, so an older frame can arrive later than this one. @@ -55,6 +55,8 @@ void ProcessorCompass::processCapture(CaptureBasePtr _capture) void ProcessorCompass::processKeyFrame(FrameBasePtr _frame, const double& _time_tolerance) { + _frame->setTimeTolerance(_time_tolerance); + // Search for any stored capture within time tolerance of frame auto capture = buffer_capture_.select(_frame->getTimeStamp(), _time_tolerance); if (capture) @@ -68,7 +70,7 @@ void ProcessorCompass::processKeyFrame(FrameBasePtr _frame, const double& _time_ else if (buffer_capture_.selectLastAfter(_frame->getTimeStamp(), _time_tolerance) == nullptr) { // store frame - buffer_pack_kf_.add(_frame, _time_tolerance); + buffer_frame_.add(_frame->getTimeStamp(), _frame); } // Otherwise: There are captures more recent than the frame but none that match with it -> discard frame }