···344344345345 struct xrt_tracked_slam *xts = NULL;
346346347347+#ifdef XRT_BUILD_DRIVER_EUROC
348348+ if (debug_get_option_euroc_path() != NULL) {
349349+ // The euroc slam tracker was already created on p_tracking_init because the
350350+ // euroc player is not a device so it needs to be started from somewhere
351351+ goto end;
352352+ }
353353+#endif
354354+355355+end:
356356+347357 if (!fact->started_xts) {
348358 xts = fact->xts;
349359 }
···394404395405#ifdef XRT_BUILD_DRIVER_EUROC
396406 if (debug_get_option_euroc_path() != NULL) {
397397- struct xrt_slam_sinks *sinks = NULL;
407407+ struct xrt_slam_sinks empty_sinks = {0};
408408+ struct xrt_slam_sinks *sinks = &empty_sinks;
398409399410 // fact->xfs *will* be an euroc frame server after open, because of prober open_video_device
400411 xrt_prober_open_video_device(&fact->p->base, NULL, &fact->xfctx, &fact->xfs);
401412402413#ifdef XRT_HAVE_SLAM
403403- t_slam_create(&fact->xfctx, &fact->xts, &sinks);
414414+ int ret = t_slam_create(&fact->xfctx, &fact->xts, &sinks);
415415+ if (ret != 0) {
416416+ U_LOG_W("Unable to initialize SLAM tracking, the Euroc driver will not be tracked");
417417+ }
404418#else
405419 U_LOG_W("SLAM tracking support is disabled, the Euroc driver will not be tracked");
406406- struct xrt_slam_sinks empty_sinks = {0};
407407- sinks = &empty_sinks;
408420#endif
409421410422 xrt_fs_slam_stream_start(fact->xfs, sinks);