From eda47922d9bd6d10e4e2fb3d3191edfaa126aef5 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Fri, 12 Aug 2016 17:03:51 +0200 Subject: few: use existing com threading init function --- cv/camera-dialog.cpp | 13 ++----------- cv/camera-dialog.hpp | 8 +------- 2 files changed, 3 insertions(+), 18 deletions(-) (limited to 'cv') diff --git a/cv/camera-dialog.cpp b/cv/camera-dialog.cpp index 1be54ece..c3e8f6fe 100644 --- a/cv/camera-dialog.cpp +++ b/cv/camera-dialog.cpp @@ -20,27 +20,19 @@ void camera_dialog::maybe_grab_frame(cv::VideoCapture& cap) } } -#ifdef _WIN32 -void camera_dialog::init_com_threading() -{ - HRESULT hr = CoInitializeEx(NULL, COINIT_MULTITHREADED); - if (FAILED(hr)) - qDebug() << "failed CoInitializeEx" << hr << "code" << GetLastError(); -} -#endif - camera_dialog::~camera_dialog() {} void camera_dialog::open_camera_settings(cv::VideoCapture* cap, const QString& camera_name, QMutex* camera_mtx) { #ifdef _WIN32 + init_com_threading(com_apartment); + if (cap) { QMutexLocker l(camera_mtx); if (cap->isOpened()) { - init_com_threading(); maybe_grab_frame(*cap); cap->set(cv::CAP_PROP_SETTINGS, 1); return; @@ -54,7 +46,6 @@ void camera_dialog::open_camera_settings(cv::VideoCapture* cap, const QString& c if (!t.isSingleShot()) QObject::connect(&t, &QTimer::timeout, [&]() -> void { delete_capture(); }); - init_com_threading(); fake_capture = cv::VideoCapture(camera_name_to_index(camera_name)); maybe_grab_frame(fake_capture); fake_capture.set(cv::CAP_PROP_SETTINGS, 1); diff --git a/cv/camera-dialog.hpp b/cv/camera-dialog.hpp index 15ae2bc9..3fd853c3 100644 --- a/cv/camera-dialog.hpp +++ b/cv/camera-dialog.hpp @@ -10,6 +10,7 @@ #include "opentrack-compat/camera-names.hpp" #include "opentrack-compat/sleep.hpp" +#include "opentrack-compat/win32-com.hpp" #ifdef __linux # include @@ -17,9 +18,6 @@ #ifdef _WIN32 # include -# include -# include -# include #endif #include @@ -28,10 +26,6 @@ class camera_dialog { static void maybe_grab_frame(cv::VideoCapture& cap); -#ifdef _WIN32 - static void init_com_threading(); -#endif - public: virtual ~camera_dialog(); void open_camera_settings(cv::VideoCapture*, const QString&, QMutex*); -- cgit v1.2.3