summaryrefslogtreecommitdiffhomepage
path: root/cv/camera-dialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cv/camera-dialog.cpp')
-rw-r--r--cv/camera-dialog.cpp13
1 files changed, 2 insertions, 11 deletions
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);