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

fix 222

parent ef448ad6
No related branches found
No related tags found
1 merge request!283Resolve "Rename PackKeyFrameBuffer"
Pipeline #3648 passed
This commit is part of merge request !283. Comments created here will be created in the context of that merge request.
......@@ -25,15 +25,15 @@ void ProcessorRangeBearing::process(CaptureBasePtr _capture)
// 1. get KF
FrameBasePtr kf(nullptr);
if ( !kf_pack_buffer_.empty() )
if ( !buffer_pack_kf_.empty() )
{
// KeyFrame Callback received
PackKeyFramePtr pack = kf_pack_buffer_.selectPack( _capture->getTimeStamp(), params_->time_tolerance );
PackKeyFramePtr pack = buffer_pack_kf_.selectPack( _capture->getTimeStamp(), params_->time_tolerance );
if (pack!=nullptr)
kf = pack->key_frame;
kf_pack_buffer_.removeUpTo( _capture->getTimeStamp() );
buffer_pack_kf_.removeUpTo( _capture->getTimeStamp() );
assert( kf && "Callback KF is not close enough to _capture!");
}
......
......@@ -40,14 +40,14 @@ WOLF_PTR_TYPEDEFS(PackKeyFrame);
*
* Object and functions to manage a buffer of KFPack objects.
*/
class PackKeyFrameBuffer
class BufferPackKeyFrame
{
public:
typedef std::map<TimeStamp,PackKeyFramePtr>::iterator Iterator; // buffer iterator
PackKeyFrameBuffer(void);
~PackKeyFrameBuffer(void);
BufferPackKeyFrame(void);
~BufferPackKeyFrame(void);
/**\brief Select a Pack from the buffer
*
......@@ -142,7 +142,7 @@ class ProcessorBase : public NodeBase, public std::enable_shared_from_this<Proce
protected:
unsigned int processor_id_;
ProcessorParamsBasePtr params_;
PackKeyFrameBuffer kf_pack_buffer_;
BufferPackKeyFrame buffer_pack_kf_;
private:
SensorBaseWPtr sensor_ptr_;
......@@ -282,27 +282,27 @@ inline void ProcessorBase::setTimeTolerance(Scalar _time_tolerance)
params_->time_tolerance = _time_tolerance;
}
inline PackKeyFrameBuffer::PackKeyFrameBuffer(void)
inline BufferPackKeyFrame::BufferPackKeyFrame(void)
{
}
inline PackKeyFrameBuffer::~PackKeyFrameBuffer(void)
inline BufferPackKeyFrame::~BufferPackKeyFrame(void)
{
}
inline void PackKeyFrameBuffer::clear()
inline void BufferPackKeyFrame::clear()
{
container_.clear();
}
inline bool PackKeyFrameBuffer::empty()
inline bool BufferPackKeyFrame::empty()
{
return container_.empty();
}
inline SizeStd PackKeyFrameBuffer::size(void)
inline SizeStd BufferPackKeyFrame::size(void)
{
return container_.size();
}
......
......@@ -54,7 +54,7 @@ void ProcessorBase::keyFrameCallback(FrameBasePtr _keyframe_ptr, const Scalar& _
{
WOLF_DEBUG("P", isMotion() ? "M " : "T ", getName(), ": KF", _keyframe_ptr->id(), " callback received with ts = ", _keyframe_ptr->getTimeStamp());
if (_keyframe_ptr != nullptr)
kf_pack_buffer_.add(_keyframe_ptr,_time_tol_other);
buffer_pack_kf_.add(_keyframe_ptr,_time_tol_other);
}
void ProcessorBase::remove()
......@@ -93,25 +93,25 @@ void ProcessorBase::remove()
}
/////////////////////////////////////////////////////////////////////////////////////////
void PackKeyFrameBuffer::removeUpTo(const TimeStamp& _time_stamp)
void BufferPackKeyFrame::removeUpTo(const TimeStamp& _time_stamp)
{
PackKeyFrameBuffer::Iterator post = container_.upper_bound(_time_stamp);
BufferPackKeyFrame::Iterator post = container_.upper_bound(_time_stamp);
container_.erase(container_.begin(), post); // erasing by range
}
void PackKeyFrameBuffer::add(const FrameBasePtr& _key_frame, const Scalar& _time_tolerance)
void BufferPackKeyFrame::add(const FrameBasePtr& _key_frame, const Scalar& _time_tolerance)
{
TimeStamp time_stamp = _key_frame->getTimeStamp();
PackKeyFramePtr kfpack = std::make_shared<PackKeyFrame>(_key_frame, _time_tolerance);
container_.emplace(time_stamp, kfpack);
}
PackKeyFramePtr PackKeyFrameBuffer::selectPack(const TimeStamp& _time_stamp, const Scalar& _time_tolerance)
PackKeyFramePtr BufferPackKeyFrame::selectPack(const TimeStamp& _time_stamp, const Scalar& _time_tolerance)
{
if (container_.empty())
return nullptr;
PackKeyFrameBuffer::Iterator post = container_.upper_bound(_time_stamp);
BufferPackKeyFrame::Iterator post = container_.upper_bound(_time_stamp);
// remove packs corresponding to removed KFs (keeping the next iterator in post)
while (post != container_.end() && post->second->key_frame->isRemoving())
......@@ -126,7 +126,7 @@ PackKeyFramePtr PackKeyFrameBuffer::selectPack(const TimeStamp& _time_stamp, con
if (prev_exists)
{
PackKeyFrameBuffer::Iterator prev = std::prev(post);
BufferPackKeyFrame::Iterator prev = std::prev(post);
bool prev_ok = checkTimeTolerance(prev->first, prev->second->time_tolerance, _time_stamp, _time_tolerance);
......@@ -149,12 +149,12 @@ PackKeyFramePtr PackKeyFrameBuffer::selectPack(const TimeStamp& _time_stamp, con
return nullptr;
}
PackKeyFramePtr PackKeyFrameBuffer::selectPack(const CaptureBasePtr _capture, const Scalar& _time_tolerance)
PackKeyFramePtr BufferPackKeyFrame::selectPack(const CaptureBasePtr _capture, const Scalar& _time_tolerance)
{
return selectPack(_capture->getTimeStamp(), _time_tolerance);
}
PackKeyFramePtr PackKeyFrameBuffer::selectFirstPackBefore(const TimeStamp& _time_stamp, const Scalar& _time_tolerance)
PackKeyFramePtr BufferPackKeyFrame::selectFirstPackBefore(const TimeStamp& _time_stamp, const Scalar& _time_tolerance)
{
// remove packs corresponding to removed KFs
while (!container_.empty() && container_.begin()->second->key_frame->isRemoving())
......@@ -178,12 +178,12 @@ PackKeyFramePtr PackKeyFrameBuffer::selectFirstPackBefore(const TimeStamp& _time
}
PackKeyFramePtr PackKeyFrameBuffer::selectFirstPackBefore(const CaptureBasePtr _capture, const Scalar& _time_tolerance)
PackKeyFramePtr BufferPackKeyFrame::selectFirstPackBefore(const CaptureBasePtr _capture, const Scalar& _time_tolerance)
{
return selectFirstPackBefore(_capture->getTimeStamp(), _time_tolerance);
}
void PackKeyFrameBuffer::print(void)
void BufferPackKeyFrame::print(void)
{
std::cout << "[ ";
for (auto iter : container_)
......@@ -193,7 +193,7 @@ void PackKeyFrameBuffer::print(void)
std::cout << "]" << std::endl;
}
bool PackKeyFrameBuffer::checkTimeTolerance(const TimeStamp& _time_stamp1, const Scalar& _time_tolerance1,
bool BufferPackKeyFrame::checkTimeTolerance(const TimeStamp& _time_stamp1, const Scalar& _time_tolerance1,
const TimeStamp& _time_stamp2, const Scalar& _time_tolerance2)
{
Scalar time_diff = std::fabs(_time_stamp1 - _time_stamp2);
......
......@@ -92,7 +92,7 @@ void ProcessorMotion::process(CaptureBasePtr _incoming_ptr)
PackKeyFramePtr pack = computeProcessingStep();
if (pack)
kf_pack_buffer_.removeUpTo( pack->key_frame->getTimeStamp() );
buffer_pack_kf_.removeUpTo( pack->key_frame->getTimeStamp() );
switch(processing_step_)
{
......@@ -656,11 +656,11 @@ PackKeyFramePtr ProcessorMotion::computeProcessingStep()
throw std::runtime_error("ProcessorMotion received data before being initialized.");
}
PackKeyFramePtr pack = kf_pack_buffer_.selectFirstPackBefore(last_ptr_, params_motion_->time_tolerance);
PackKeyFramePtr pack = buffer_pack_kf_.selectFirstPackBefore(last_ptr_, params_motion_->time_tolerance);
if (pack)
{
if (kf_pack_buffer_.checkTimeTolerance(pack->key_frame->getTimeStamp(), pack->time_tolerance, origin_ptr_->getTimeStamp(), params_motion_->time_tolerance))
if (buffer_pack_kf_.checkTimeTolerance(pack->key_frame->getTimeStamp(), pack->time_tolerance, origin_ptr_->getTimeStamp(), params_motion_->time_tolerance))
{
WOLF_WARN("||*||");
WOLF_INFO(" ... It seems you missed something!");
......
......@@ -52,8 +52,8 @@ void ProcessorTracker::process(CaptureBasePtr const _incoming_ptr)
{
case FIRST_TIME_WITH_PACK :
{
PackKeyFramePtr pack = kf_pack_buffer_.selectPack( incoming_ptr_, params_tracker_->time_tolerance);
kf_pack_buffer_.removeUpTo( pack->key_frame->getTimeStamp() );
PackKeyFramePtr pack = buffer_pack_kf_.selectPack( incoming_ptr_, params_tracker_->time_tolerance);
buffer_pack_kf_.removeUpTo( pack->key_frame->getTimeStamp() );
WOLF_DEBUG( "PT ", getName(), ": KF" , pack->key_frame->id() , " callback unpacked with ts= " , pack->key_frame->getTimeStamp().get() );
......@@ -97,7 +97,7 @@ void ProcessorTracker::process(CaptureBasePtr const _incoming_ptr)
case SECOND_TIME_WITH_PACK :
{
// No-break case only for debug. Next case will be executed too.
PackKeyFramePtr pack = kf_pack_buffer_.selectPack( incoming_ptr_, params_tracker_->time_tolerance);
PackKeyFramePtr pack = buffer_pack_kf_.selectPack( incoming_ptr_, params_tracker_->time_tolerance);
WOLF_DEBUG( "PT ", getName(), ": KF" , pack->key_frame->id() , " callback unpacked with ts= " , pack->key_frame->getTimeStamp().get() );
} // @suppress("No break at end of case")
case SECOND_TIME_WITHOUT_PACK :
......@@ -124,8 +124,8 @@ void ProcessorTracker::process(CaptureBasePtr const _incoming_ptr)
}
case RUNNING_WITH_PACK :
{
PackKeyFramePtr pack = kf_pack_buffer_.selectPack( last_ptr_ , params_tracker_->time_tolerance);
kf_pack_buffer_.removeUpTo( pack->key_frame->getTimeStamp() );
PackKeyFramePtr pack = buffer_pack_kf_.selectPack( last_ptr_ , params_tracker_->time_tolerance);
buffer_pack_kf_.removeUpTo( pack->key_frame->getTimeStamp() );
WOLF_DEBUG( "PT ", getName(), ": KF" , pack->key_frame->id() , " callback unpacked with ts= " , pack->key_frame->getTimeStamp().get() );
......@@ -271,7 +271,7 @@ void ProcessorTracker::computeProcessingStep()
{
case FIRST_TIME :
if (kf_pack_buffer_.selectPack(incoming_ptr_, params_tracker_->time_tolerance))
if (buffer_pack_kf_.selectPack(incoming_ptr_, params_tracker_->time_tolerance))
processing_step_ = FIRST_TIME_WITH_PACK;
else // ! last && ! pack(incoming)
processing_step_ = FIRST_TIME_WITHOUT_PACK;
......@@ -279,7 +279,7 @@ void ProcessorTracker::computeProcessingStep()
case SECOND_TIME :
if (kf_pack_buffer_.selectPack(last_ptr_, params_tracker_->time_tolerance))
if (buffer_pack_kf_.selectPack(last_ptr_, params_tracker_->time_tolerance))
processing_step_ = SECOND_TIME_WITH_PACK;
else
processing_step_ = SECOND_TIME_WITHOUT_PACK;
......@@ -288,7 +288,7 @@ void ProcessorTracker::computeProcessingStep()
case RUNNING :
default :
if (kf_pack_buffer_.selectPack(last_ptr_, params_tracker_->time_tolerance))
if (buffer_pack_kf_.selectPack(last_ptr_, params_tracker_->time_tolerance))
{
if (last_ptr_->getFrame()->isKey())
{
......
......@@ -26,7 +26,7 @@ class BufferPackKeyFrameTest : public testing::Test
{
public:
PackKeyFrameBuffer pack_kf_buffer;
BufferPackKeyFrame pack_kf_buffer;
FrameBasePtr f10, f20, f21, f28;
Scalar tt10, tt20, tt21, tt28;
TimeStamp timestamp;
......
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