summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/multimedia/windows/qwindowsresampler.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/multimedia/windows/qwindowsresampler.cpp b/src/multimedia/windows/qwindowsresampler.cpp
index a21563311..9e76c9159 100644
--- a/src/multimedia/windows/qwindowsresampler.cpp
+++ b/src/multimedia/windows/qwindowsresampler.cpp
@@ -21,13 +21,20 @@ Q_LOGGING_CATEGORY(qLcAudioResampler, "qt.multimedia.audioresampler")
QWindowsResampler::QWindowsResampler()
: m_wmf(QWindowsMediaFoundation::instance())
{
+ HRESULT hr = CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED);
+ if (hr == RPC_E_CHANGED_MODE)
+ qWarning() << "Failed attempt to change apartment concurrency model";
+
CoCreateInstance(qCLSID_CResamplerMediaObject, nullptr, CLSCTX_INPROC_SERVER,
qIID_IMFTransform, (LPVOID*)(m_resampler.address()));
if (m_resampler)
m_resampler->AddInputStreams(1, &m_inputStreamID);
}
-QWindowsResampler::~QWindowsResampler() = default;
+QWindowsResampler::~QWindowsResampler()
+{
+ CoUninitialize();
+};
quint64 QWindowsResampler::outputBufferSize(quint64 inputBufferSize) const
{