diff --git a/include/core/processor/processor_base.h b/include/core/processor/processor_base.h
index 8eb84a854abce694d660b543bd11c0be7e465fb9..602c5dfc6297806597c0877c2626272a815102c2 100644
--- a/include/core/processor/processor_base.h
+++ b/include/core/processor/processor_base.h
@@ -191,6 +191,7 @@ class ProcessorBase : public NodeBase, public std::enable_shared_from_this<Proce
         unsigned int processor_id_;
         ProcessorParamsBasePtr params_;
         PackKeyFrameBuffer kf_pack_buffer_;
+        BufferCapture buffer_capture_;
 
     private:
         SensorBaseWPtr sensor_ptr_;
@@ -249,6 +250,7 @@ class ProcessorBase : public NodeBase, public std::enable_shared_from_this<Proce
         FrameBasePtr emplaceFrame(FrameType _type, CaptureBasePtr _capture_ptr, const Eigen::VectorXs& _state);
 
         virtual void keyFrameCallback(FrameBasePtr _keyframe_ptr, const Scalar& _time_tol_other);
+        virtual void captureCallback(CaptureBasePtr _capture_ptr);
 
         SensorBasePtr getSensor();
         const SensorBasePtr getSensor() const;
diff --git a/src/processor/processor_base.cpp b/src/processor/processor_base.cpp
index a06dd5e8799706a6fe7e0bb9b2a5409822a68a24..d7c7d8d8f6cfd588d9b03ac9782f2d6ef583cb6b 100644
--- a/src/processor/processor_base.cpp
+++ b/src/processor/processor_base.cpp
@@ -57,6 +57,13 @@ void ProcessorBase::keyFrameCallback(FrameBasePtr _keyframe_ptr, const Scalar& _
         kf_pack_buffer_.add(_keyframe_ptr,_time_tol_other);
 }
 
+void ProcessorBase::captureCallback(CaptureBasePtr _capture_ptr)
+{
+    WOLF_DEBUG("P", isMotion() ? "M " : "T ", getName(), ": Capture", _capture_ptr->id(), " callback received with ts = ", _capture_ptr->getTimeStamp());
+    if (_capture_ptr != nullptr)
+        buffer_capture_.add(_capture_ptr, _capture_ptr->getTimeStamp());
+}
+
 void ProcessorBase::remove()
 {
     if (!is_removing_)