MCPcopy Create free account
hub / github.com/Smorodov/Multitarget-tracker / GetFirstProcessedFrame

Method GetFirstProcessedFrame

async_detector/Queue.h:208–232  ·  view source on GitHub ↗

\brief GetFirstProcessedFrame \return

Source from the content-addressed store, hash-verified

206 /// \return
207 ///
208 frame_ptr GetFirstProcessedFrame()
209 {
210#if SHOW_QUE_LOG
211 QUE_LOG << "GetFirstProcessedFrame start" << std::endl;
212#endif
213 std::unique_lock<std::mutex> lock(m_mutex);
214 while (m_que.empty() || m_que.front()->m_inTracker.load() != FrameInfo::StateCompleted)
215 {
216 if (m_break.load())
217 break;
218
219 m_cond.wait(lock);
220 //PrintQue();
221 }
222 if (!m_break.load())
223 {
224 frame_ptr frameInfo = std::move(m_que.front());
225 m_que.pop_front();
226#if SHOW_QUE_LOG
227 QUE_LOG << "GetFirstProcessedFrame end: " << frameInfo->m_dt << ", frameInd " << frameInfo->m_frameInd << std::endl;
228#endif
229 return frameInfo;
230 }
231 return nullptr;
232 }
233
234 ///
235 /// \brief Signal

Callers 1

ProcessMethod · 0.80

Calls 4

pop_frontMethod · 0.80
emptyMethod · 0.45
loadMethod · 0.45
waitMethod · 0.45

Tested by

no test coverage detected