summaryrefslogtreecommitdiffstats
path: root/src/plugins/directshow/common/directshowutils.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/directshow/common/directshowutils.cpp')
-rw-r--r--src/plugins/directshow/common/directshowutils.cpp13
1 files changed, 13 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