···8989 void stop();
9090 bool is_running();
91919292+ //! Should be thread safe, more than one producer could push.
9293 void push_imu_sample(imu_sample sample);
9494+9595+ //! Should be thread safe, more than one producer could push.
9396 void push_frame(img_sample sample);
9797+9898+ //! Only one user will dequeue, thread safety not required.
9999+ //! Could be implemented with a lock-free queue.
94100 bool try_dequeue_pose(pose &pose);
9510196102 private:
+4-4
src/xrt/auxiliary/tracking/t_tracker_slam.cpp
···5656#warning "Kimera-VIO uses OpenCV 3.3.1, use that to prevent conflicts"
5757#endif
58585959-// TODO: These defs should make OpenCV 4 work but it wasn't tested against a
6060-// SLAM system that supports that version yet
5959+//! @todo These defs should make OpenCV 4 work but it wasn't tested against a
6060+//! SLAM system that supports that version yet.
6161#if CV_VERSION_MAJOR < 4
6262#define ACCESS_RW 0
6363typedef int AccessFlag;
···174174t_slam_imu_sink_push(struct xrt_imu_sink *sink, struct xrt_imu_sample *s)
175175{
176176 auto &t = *container_of(sink, TrackerSlam, imu_sink);
177177- // TODO: There are many conversions like these between xrt and
178178- // slam_tracker.hpp types. Implement a casting mechanism to avoid copies.
177177+ //! @todo There are many conversions like these between xrt and
178178+ //! slam_tracker.hpp types. Implement a casting mechanism to avoid copies.
179179 imu_sample sample{s->timestamp, s->ax, s->ay, s->az, s->wx, s->wy, s->wz};
180180 t.slam->push_imu_sample(sample);
181181 SLAM_TRACE("imu t=%ld a=[%f,%f,%f] w=[%f,%f,%f]", s->timestamp, s->ax, s->ay, s->az, s->wx, s->wy, s->wz);
···320320 // Create xrt_frame, it will be freed by FrameMat destructor
321321 EUROC_ASSERT(xf == NULL || xf->reference.count > 0, "Must be given a valid or NULL frame ptr");
322322 EUROC_ASSERT(timestamp > 0, "Unexpected negative timestamp");
323323- // TODO: Not using xrt_stereo_format because we use two sinks. It would be
324324- // better to refactor everything to use stereo frames instead.
323323+ //! @todo Not using xrt_stereo_format because we use two sinks. It would
324324+ //! probably be better to refactor everything to use stereo frames instead.
325325 FrameMat::Params params{XRT_STEREO_FORMAT_NONE, static_cast<uint64_t>(timestamp)};
326326 auto wrap = img.channels() == 3 ? FrameMat::wrapR8G8B8 : FrameMat::wrapL8;
327327 wrap(img, &xf, params);
···537537 EUROC_INFO(ep, "Starting Euroc Player in calibration mode, will stream only left frames right away");
538538 ep->out_sinks.left = xs;
539539 euroc_player_start_btn_cb(ep);
540540- ep->is_running = true;
541540 } else {
542541 EUROC_ASSERT(false, "Unsupported stream configuration xs=%p capture_type=%d", (void *)xs, capture_type);
543542 return false;