| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -321,13 +321,12 @@ void Replay::mergeSegments(const SegmentMap::iterator &begin, const SegmentMap:: | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					void Replay::startStream(const Segment *cur_segment) { | 
					 | 
					 | 
					 | 
					void Replay::startStream(const Segment *cur_segment) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  const auto &events = cur_segment->log->events; | 
					 | 
					 | 
					 | 
					  const auto &events = cur_segment->log->events; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  // get route start time from initData
 | 
					 | 
					 | 
					 | 
					  // each segment has an INIT_DATA
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  auto it = std::find_if(events.begin(), events.end(), [](auto e) { return e->which == cereal::Event::Which::INIT_DATA; }); | 
					 | 
					 | 
					 | 
					  route_start_ts_ = events.front()->mono_time; | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  route_start_ts_ = it != events.end() ? (*it)->mono_time : events[0]->mono_time; | 
					 | 
					 | 
					 | 
					  cur_mono_time_ += route_start_ts_ - 1; | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  cur_mono_time_ += route_start_ts_; | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  // write CarParams
 | 
					 | 
					 | 
					 | 
					  // 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()) { | 
					 | 
					 | 
					 | 
					  if (it != events.end()) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    car_fingerprint_ = (*it)->event.getCarParams().getCarFingerprint(); | 
					 | 
					 | 
					 | 
					    car_fingerprint_ = (*it)->event.getCarParams().getCarFingerprint(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    capnp::MallocMessageBuilder builder; | 
					 | 
					 | 
					 | 
					    capnp::MallocMessageBuilder builder; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |