32 #define __STDC_FORMAT_MACROS
41 namespace ArgusSamples
62 static InitOnce initOnce;
74 REPORT_ERROR(
"Initalization failed");
111 printf(
"PerfTracker: display frame rate %.2f frames per second\n", frameRate);
120 ORIGINATE_ERROR(
"Unhandled global event");
128 : m_id(
PerfTracker::getInstance().getNewSessionID())
130 , m_firstRequestReceivedTime(
TimeValue::infinite())
131 , m_numberframesReceived(0)
132 , m_lastFrameCount(0)
133 , m_totalFrameDrop(0)
134 , m_minLatency(std::numeric_limits<uint64_t>::max())
138 , m_previousSensorTime(0)
139 , m_minFramePeriod(std::numeric_limits<uint64_t>::max())
140 , m_maxFramePeriod(0)
141 , m_sumFramePeriod(0)
142 , m_countFramePeriod(-1)
143 , m_statsMinLatency(std::numeric_limits<uint64_t>::max())
144 , m_statsMaxLatency(0)
145 , m_statsSumLatency(0)
146 , m_statsCountLatency(0)
147 , m_statsMinFramePeriod(std::numeric_limits<uint64_t>::max())
148 , m_statsMaxFramePeriod(0)
149 , m_statsSumFramePeriod(0)
150 , m_statsCountFramePeriod(0)
151 , m_statsFrameDropCount(0)
152 , m_statsOutOfOrderCount(0)
153 , m_previousKpi(false)
159 PROPAGATE_ERROR_CONTINUE(
shutdown());
202 printf(
"===== PerfTracker %d Stats from %" PRIu64
" frames =====\n",
204 printf(
"LATENCY : avg %.2f min %.2f max %.2f ms\n",
207 printf(
"FRAMEPERIOD : avg %.2f min %.2f max %.2f ms\n",
212 printf(
"===============================================\n");
245 printf(
"PerfTracker: app initial %" PRIu64
" ms\n",
248 printf(
"PerfTracker %d: app intialized to task start %" PRIu64
" ms\n",
m_id,
258 ORIGINATE_ERROR(
"Failed to allocate EventThread");
265 printf(
"PerfTracker %d: task start to issue capture %" PRIu64
" ms\n",
m_id,
273 printf(
"PerfTracker %d: first request %" PRIu64
" ms\n",
m_id,
275 printf(
"PerfTracker %d: total launch time %" PRIu64
" ms\n",
m_id,
283 const float frameRate =
286 printf(
"PerfTracker %d: frameRate %.2f frames per second at %" PRIu64
" Seconds\n",
300 printf(
"PerfTracker %d: latency %.1f ms average, min %.1f max %.1f" \
301 " from %" PRIu64
" frames\n",
327 printf(
"PerfTracker %d: warning: receive a frame out of order\n",
m_id);
341 printf(
"PerfTracker %d: frame period %.1f ms average, min %.1f" \
342 " max %.1f from %" PRId64
" frames\n",
358 m_previousSensorTime = 0;
372 const uint64_t currentFrameCount = value;
373 int64_t currentFrameDrop = 0;
381 if (currentFrameDrop != 0)
383 printf(
"PerfTracker %d: framedrop current request %" PRId64
", total %" PRId64
384 ", Drop at %" PRIu64
" Seconds !\n",
385 m_id, currentFrameDrop,
394 printf(
"PerfTracker %d: framedrop current request %" PRId64
", total %"
396 m_id, currentFrameDrop,
415 printf(
"PerfTracker %d: flush takes %" PRIu64
" ms\n",
m_id,
420 printf(
"PerfTracker %d: device close takes %" PRIu64
" ms\n",
m_id,
422 printf(
"PerfTracker %d: total close takes %" PRIu64
" ms\n",
m_id,
426 ORIGINATE_ERROR(
"Unhandled session event");