diff options
Diffstat (limited to 'src/plugins/directshow/common/directshowutils.cpp')
-rw-r--r-- | src/plugins/directshow/common/directshowutils.cpp | 13 |
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 |