From 6b6e286d9dcf03bd4d96f7d0acbeb797eecbcfdd Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Mon, 20 Jul 2015 12:55:32 +0200 Subject: nix empty dtor --- opentrack/selected-libraries.cpp | 4 ---- opentrack/selected-libraries.hpp | 1 - 2 files changed, 5 deletions(-) (limited to 'opentrack') diff --git a/opentrack/selected-libraries.cpp b/opentrack/selected-libraries.cpp index c39ee3f5..63517774 100644 --- a/opentrack/selected-libraries.cpp +++ b/opentrack/selected-libraries.cpp @@ -1,10 +1,6 @@ #include "opentrack/selected-libraries.hpp" #include -SelectedLibraries::~SelectedLibraries() -{ -} - SelectedLibraries::SelectedLibraries(QFrame* frame, dylibptr t, dylibptr p, dylibptr f) : pTracker(nullptr), pFilter(nullptr), diff --git a/opentrack/selected-libraries.hpp b/opentrack/selected-libraries.hpp index 2813cd27..3719b109 100644 --- a/opentrack/selected-libraries.hpp +++ b/opentrack/selected-libraries.hpp @@ -18,6 +18,5 @@ struct SelectedLibraries { mem pProtocol; SelectedLibraries(QFrame* frame, dylibptr t, dylibptr p, dylibptr f); SelectedLibraries() : pTracker(nullptr), pFilter(nullptr), pProtocol(nullptr), correct(false) {} - ~SelectedLibraries(); bool correct; }; -- cgit v1.2.3 From d933b11c29124abc3e99b6591d0d74b4343f4fc0 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Mon, 20 Jul 2015 12:58:01 +0200 Subject: pass libs by reference --- opentrack/work.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'opentrack') diff --git a/opentrack/work.hpp b/opentrack/work.hpp index 39eb12fb..5d1f6b54 100644 --- a/opentrack/work.hpp +++ b/opentrack/work.hpp @@ -20,7 +20,7 @@ struct Work { main_settings& s; - SelectedLibraries libs; + SelectedLibraries& libs; mem tracker; mem sc; WId handle; -- cgit v1.2.3 From 3d78a3cb97ed470f331c5cdf7a3f3b2714a92f78 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Mon, 20 Jul 2015 13:18:06 +0200 Subject: plug in race in camera release We can crash if start/stop pressed fast eventually. --- ftnoir_tracker_aruco/ftnoir_tracker_aruco.cpp | 4 ++++ ftnoir_tracker_ht/ftnoir_tracker_ht.cpp | 3 +++ ftnoir_tracker_pt/camera.cpp | 3 +++ opentrack/sleep.hpp | 22 ++++++++++++++++++++++ 4 files changed, 32 insertions(+) create mode 100644 opentrack/sleep.hpp (limited to 'opentrack') diff --git a/ftnoir_tracker_aruco/ftnoir_tracker_aruco.cpp b/ftnoir_tracker_aruco/ftnoir_tracker_aruco.cpp index 786be62d..8acddc28 100644 --- a/ftnoir_tracker_aruco/ftnoir_tracker_aruco.cpp +++ b/ftnoir_tracker_aruco/ftnoir_tracker_aruco.cpp @@ -18,6 +18,7 @@ #include #include "opentrack/camera-names.hpp" #include "opentrack/opencv-calibration.hpp" +#include "opentrack/sleep.hpp" typedef struct { int width; @@ -355,6 +356,9 @@ fail: if (frame.rows > 0) videoWidget->update_image(frame); } + + // give opencv time to exit camera threads, etc. + portable::sleep(500); } void Tracker::data(double *data) diff --git a/ftnoir_tracker_ht/ftnoir_tracker_ht.cpp b/ftnoir_tracker_ht/ftnoir_tracker_ht.cpp index 2ac614a2..ad13d716 100644 --- a/ftnoir_tracker_ht/ftnoir_tracker_ht.cpp +++ b/ftnoir_tracker_ht/ftnoir_tracker_ht.cpp @@ -4,6 +4,7 @@ #include "opentrack/plugin-api.hpp" #include #include "opentrack/camera-names.hpp" +#include "opentrack/sleep.hpp" typedef struct { int width; @@ -158,6 +159,8 @@ void Tracker::run() } } } + // give opencv time to exit camera threads, etc. + portable::sleep(500); } void Tracker::data(double* data) diff --git a/ftnoir_tracker_pt/camera.cpp b/ftnoir_tracker_pt/camera.cpp index 2e745f2a..7c4af38f 100644 --- a/ftnoir_tracker_pt/camera.cpp +++ b/ftnoir_tracker_pt/camera.cpp @@ -8,6 +8,7 @@ #include "camera.h" #include #include +#include "opentrack/sleep.hpp" using namespace cv; @@ -113,6 +114,8 @@ void CVCamera::stop() cap->release(); delete cap; cap = nullptr; + // give opencv time to exit camera threads, etc. + portable::sleep(500); } active = false; } diff --git a/opentrack/sleep.hpp b/opentrack/sleep.hpp new file mode 100644 index 00000000..27920842 --- /dev/null +++ b/opentrack/sleep.hpp @@ -0,0 +1,22 @@ +#pragma once + +namespace portable +{ +#ifdef _WIN32 + #include + + template + void sleep(unsigned milliseconds) + { + Sleep(milliseconds); + } +#else + #include + + template + void sleep(unsigned milliseconds) + { + usleep(milliseconds * 1000U); // takes microseconds + } +#endif +} -- cgit v1.2.3