From 99f4592513200a1f2c1e7de0126a538c84a1c7ab Mon Sep 17 00:00:00 2001 From: Dean Lee Date: Tue, 26 Sep 2023 06:16:41 +0800 Subject: [PATCH] replay: fix missing events before INIT_DATA (#30039) fix missing events old-commit-hash: 2cca0cbde814cba19b187447a76498d231b27ade --- tools/replay/replay.cc | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/tools/replay/replay.cc b/tools/replay/replay.cc index d8a68a06e9..c11eb0915d 100644 --- a/tools/replay/replay.cc +++ b/tools/replay/replay.cc @@ -321,13 +321,12 @@ void Replay::mergeSegments(const SegmentMap::iterator &begin, const SegmentMap:: void Replay::startStream(const Segment *cur_segment) { const auto &events = cur_segment->log->events; - // get route start time from initData - auto it = std::find_if(events.begin(), events.end(), [](auto e) { return e->which == cereal::Event::Which::INIT_DATA; }); - route_start_ts_ = it != events.end() ? (*it)->mono_time : events[0]->mono_time; - cur_mono_time_ += route_start_ts_; + // each segment has an INIT_DATA + route_start_ts_ = events.front()->mono_time; + cur_mono_time_ += route_start_ts_ - 1; // write CarParams - it = std::find_if(events.begin(), events.end(), [](auto e) { return e->which == cereal::Event::Which::CAR_PARAMS; }); + auto it = std::find_if(events.begin(), events.end(), [](auto e) { return e->which == cereal::Event::Which::CAR_PARAMS; }); if (it != events.end()) { car_fingerprint_ = (*it)->event.getCarParams().getCarFingerprint(); capnp::MallocMessageBuilder builder;