diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2019-09-11 18:48:35 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2019-09-12 08:50:11 +0000 |
commit | 324471ef9054911422f8f2d40a243c67b501c8f0 (patch) | |
tree | b6fccceb55f338a8c53e31afb88a4fce965d305b /src/plugins/directshow/common | |
parent | c9058d90d0b08781f14a494780c3094594c81f22 (diff) | |
parent | a1bf811b1dd287fbb75b6d27dbc163f15001e28f (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.cpp | 13 | ||||
-rw-r--r-- | src/plugins/directshow/common/directshowutils.h | 4 |
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 |