Skip to content
Snippets Groups Projects
Commit c991d42d authored by Joan Solà Ortega's avatar Joan Solà Ortega
Browse files

Fix 420

parent f33a5796
No related branches found
No related tags found
3 merge requests!39release after RAL,!38After 2nd RAL submission,!37Resolve "Follow core 420"
......@@ -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
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment