@@ -267,6 +267,8 @@ void AsyncDetector::CaptureThread(std::string fileName, int startFrame, int* fra
267267 *framesCount = cvRound (capture.get (cv::CAP_PROP_FRAME_COUNT ));
268268 capture.set (cv::CAP_PROP_POS_FRAMES , startFrame);
269269
270+ time_point_t startTimeStamp = std::chrono::system_clock::now ();
271+
270272 *fps = std::max (1 .f , (float )capture.get (cv::CAP_PROP_FPS ));
271273 int frameHeight = cvRound (capture.get (cv::CAP_PROP_FRAME_HEIGHT ));
272274
@@ -341,6 +343,7 @@ void AsyncDetector::CaptureThread(std::string fileName, int startFrame, int* fra
341343 {
342344 frame_ptr frameInfo (new FrameInfo (frameInd));
343345 frameInfo->m_dt = cv::getTickCount ();
346+ frameInfo->m_frameTimeStamp = startTimeStamp + std::chrono::milliseconds (cvRound (frameInd * (1000 .f / (*fps))));
344347 capture >> frameInfo->m_frame ;
345348 if (frameInfo->m_frame .empty ())
346349 {
@@ -412,7 +415,7 @@ void AsyncDetector::TrackingThread(const TrackerSettings& settings, FramesQueue*
412415 frame_ptr frameInfo = framesQue->GetFirstDetectedFrame ();
413416 if (frameInfo)
414417 {
415- tracker->Update (frameInfo->m_regions , frameInfo->m_clFrame , frameInfo->m_fps );
418+ tracker->Update (frameInfo->m_regions , frameInfo->m_clFrame , frameInfo->m_frameTimeStamp );
416419
417420 tracker->GetTracks (frameInfo->m_tracks );
418421 frameInfo->m_inTracker .store (FrameInfo::StateCompleted);
0 commit comments