summaryrefslogtreecommitdiffstats
path: root/src/plugins/directshow/common
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2019-09-11 18:48:35 +0200
committerLiang Qi <liang.qi@qt.io>2019-09-12 08:50:11 +0000
commit324471ef9054911422f8f2d40a243c67b501c8f0 (patch)
treeb6fccceb55f338a8c53e31afb88a4fce965d305b /src/plugins/directshow/common
parentc9058d90d0b08781f14a494780c3094594c81f22 (diff)
parenta1bf811b1dd287fbb75b6d27dbc163f15001e28f (diff)
Merge remote-tracking branch 'origin/5.13' into 5.14
Conflicts: src/gsttools/qgstvideorenderersink.cpp src/gsttools/qgstvideorenderersink_p.h Change-Id: I7fe29161d568fa3f7688abfd2f993d1b16ac3fb9
Diffstat (limited to 'src/plugins/directshow/common')
-rw-r--r--src/plugins/directshow/common/directshowutils.cpp13
-rw-r--r--src/plugins/directshow/common/directshowutils.h4
2 files changed, 17 insertions, 0 deletions
diff --git a/src/plugins/directshow/common/directshowutils.cpp b/src/plugins/directshow/common/directshowutils.cpp
index 21b86926f..1457837ce 100644
--- a/src/plugins/directshow/common/directshowutils.cpp
+++ b/src/plugins/directshow/common/directshowutils.cpp
@@ -309,4 +309,17 @@ bool DirectShowUtils::connectFilters(IGraphBuilder *graph,
return false;
}
+thread_local static int g_refCount = 0;
+void DirectShowUtils::CoInitializeIfNeeded()
+{
+ if (++g_refCount == 1)
+ ::CoInitialize(nullptr);
+}
+
+void DirectShowUtils::CoUninitializeIfNeeded()
+{
+ if (--g_refCount == 0)
+ ::CoUninitialize();
+}
+
QT_END_NAMESPACE
diff --git a/src/plugins/directshow/common/directshowutils.h b/src/plugins/directshow/common/directshowutils.h
index 09c81c257..5f2cfaa23 100644
--- a/src/plugins/directshow/common/directshowutils.h
+++ b/src/plugins/directshow/common/directshowutils.h
@@ -80,6 +80,10 @@ bool connectFilters(IGraphBuilder *graph,
IBaseFilter *downstreamFilter,
bool autoConnect = false,
HRESULT *hrOut = nullptr);
+
+void CoInitializeIfNeeded();
+void CoUninitializeIfNeeded();
+
}
QT_END_NAMESPACE