From 8d78f0db884815263214441e5974936a711e405f Mon Sep 17 00:00:00 2001 From: Charles Otto Date: Tue, 9 Jul 2013 20:33:30 -0400 Subject: [PATCH] Fix FPSSynch, rename FPSLimit --- openbr/plugins/gui.cpp | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/openbr/plugins/gui.cpp b/openbr/plugins/gui.cpp index b0000b8..2dec7fa 100644 --- a/openbr/plugins/gui.cpp +++ b/openbr/plugins/gui.cpp @@ -220,16 +220,16 @@ signals: BR_REGISTER(Transform, ShowTransform) -class FPSSynch : public TimeVaryingTransform +class FPSLimit : public TimeVaryingTransform { Q_OBJECT Q_PROPERTY(int targetFPS READ get_targetFPS WRITE set_targetFPS RESET reset_targetFPS STORED false) BR_PROPERTY(int, targetFPS, 30) public: - FPSSynch() : TimeVaryingTransform(false, false) {} + FPSLimit() : TimeVaryingTransform(false, false) {} - ~FPSSynch() {} + ~FPSLimit() {} void train(const TemplateList &data) { (void) data; } @@ -237,16 +237,19 @@ public: void projectUpdate(const TemplateList &src, TemplateList &dst) { dst = src; - qint64 time_delta = timer.elapsed(); + qint64 current_time = timer.elapsed(); + qint64 target_time = last_time + target_wait; + qint64 wait_time = target_time - current_time; - qint64 wait_time = target_wait - time_delta; - timer.start(); + last_time = current_time; + qDebug("time is %d wait is %d", current_time, wait_time); if (wait_time < 0) { return; } QThread::msleep(wait_time); + last_time = timer.elapsed(); } void finalize(TemplateList & output) @@ -256,15 +259,17 @@ public: void init() { - target_wait = 1000 / targetFPS; + target_wait = 1000.0 / targetFPS; timer.start(); + last_time = timer.elapsed(); } protected: QElapsedTimer timer; qint64 target_wait; + qint64 last_time; }; -BR_REGISTER(Transform, FPSSynch) +BR_REGISTER(Transform, FPSLimit) class FPSCalc : public TimeVaryingTransform { -- libgit2 0.21.4