diff options
author | Jøger Hansegård <joger.hansegard@qt.io> | 2023-05-13 08:52:54 +0200 |
---|---|---|
committer | Jøger Hansegård <joger.hansegard@qt.io> | 2023-05-15 21:24:09 +0200 |
commit | 193d7e1bfd130603db5b5ac1f633de50af7e7237 (patch) | |
tree | d0f95130c02effa3fc4030b5a067b6e5c9a857f6 | |
parent | 954053c17cb53b41c8ecf8cb794898c89fdef5e4 (diff) | |
download | qtmultimedia-193d7e1bfd130603db5b5ac1f633de50af7e7237.tar.gz |
Rename QWindowsIUPointer template class to QComPtr
The name QWindowsIUPointer feels clunky and does not add clarity. On the
Windows platform, the term ComPtr, CComPtr or com_ptr is well
established and understood. By renaming the QWindowsIUPointer to QComPtr
we get code that is easier to read, particularly when the pointer is
used in template classes such as std::vector<QComPtr> or
QMaybe<QComPtr>.
Task-number: QTBUG-113460
Pick-to: 6.5
Change-Id: Ia3ef06c4a1c0e45503ba5204a4d2fd6197114b15
Reviewed-by: Lars Knoll <lars@knoll.priv.no>
26 files changed, 135 insertions, 135 deletions
diff --git a/src/multimedia/windows/qwindowsaudiodevice.cpp b/src/multimedia/windows/qwindowsaudiodevice.cpp index aa56632fc..fbc1cfa02 100644 --- a/src/multimedia/windows/qwindowsaudiodevice.cpp +++ b/src/multimedia/windows/qwindowsaudiodevice.cpp @@ -29,7 +29,7 @@ QT_BEGIN_NAMESPACE -QWindowsAudioDeviceInfo::QWindowsAudioDeviceInfo(QByteArray dev, QWindowsIUPointer<IMMDevice> immDev, int waveID, const QString &description, QAudioDevice::Mode mode) +QWindowsAudioDeviceInfo::QWindowsAudioDeviceInfo(QByteArray dev, QComPtr<IMMDevice> immDev, int waveID, const QString &description, QAudioDevice::Mode mode) : QAudioDevicePrivate(dev, mode), m_devId(waveID), m_immDev(std::move(immDev)) @@ -38,7 +38,7 @@ QWindowsAudioDeviceInfo::QWindowsAudioDeviceInfo(QByteArray dev, QWindowsIUPoint this->description = description; - QWindowsIUPointer<IAudioClient> audioClient; + QComPtr<IAudioClient> audioClient; HRESULT hr = m_immDev->Activate(__uuidof(IAudioClient), CLSCTX_INPROC_SERVER, nullptr, (void **)audioClient.address()); if (SUCCEEDED(hr)) { @@ -194,7 +194,7 @@ QWindowsAudioDeviceInfo::QWindowsAudioDeviceInfo(QByteArray dev, QWindowsIUPoint channelConfiguration = QAudioFormat::defaultChannelConfigForChannelCount(maximumChannelCount); - QWindowsIUPointer<IPropertyStore> props; + QComPtr<IPropertyStore> props; hr = m_immDev->OpenPropertyStore(STGM_READ, props.address()); if (SUCCEEDED(hr)) { PROPVARIANT var; diff --git a/src/multimedia/windows/qwindowsaudiodevice_p.h b/src/multimedia/windows/qwindowsaudiodevice_p.h index c62f7eebc..b981a0ed6 100644 --- a/src/multimedia/windows/qwindowsaudiodevice_p.h +++ b/src/multimedia/windows/qwindowsaudiodevice_p.h @@ -36,7 +36,7 @@ const unsigned int SAMPLE_RATES[] = { 8000, 11025, 22050, 44100, 48000 }; class QWindowsAudioDeviceInfo : public QAudioDevicePrivate { public: - QWindowsAudioDeviceInfo(QByteArray dev, QWindowsIUPointer<IMMDevice> immdev, int waveID, const QString &description, QAudioDevice::Mode mode); + QWindowsAudioDeviceInfo(QByteArray dev, QComPtr<IMMDevice> immdev, int waveID, const QString &description, QAudioDevice::Mode mode); ~QWindowsAudioDeviceInfo(); bool open(); @@ -45,11 +45,11 @@ public: bool testSettings(const QAudioFormat& format) const; int waveId() const { return m_devId; } - QWindowsIUPointer<IMMDevice> immDev() const { return m_immDev; } + QComPtr<IMMDevice> immDev() const { return m_immDev; } private: quint32 m_devId; - QWindowsIUPointer<IMMDevice> m_immDev; + QComPtr<IMMDevice> m_immDev; }; diff --git a/src/multimedia/windows/qwindowsaudiosink.cpp b/src/multimedia/windows/qwindowsaudiosink.cpp index f0a58ccda..30bf054f1 100644 --- a/src/multimedia/windows/qwindowsaudiosink.cpp +++ b/src/multimedia/windows/qwindowsaudiosink.cpp @@ -56,7 +56,7 @@ std::optional<quint32> audioClientFramesAvailable(IAudioClient *client) return {}; } -QWindowsAudioSink::QWindowsAudioSink(QWindowsIUPointer<IMMDevice> device, QObject *parent) : +QWindowsAudioSink::QWindowsAudioSink(QComPtr<IMMDevice> device, QObject *parent) : QPlatformAudioSink(parent), m_timer(new QTimer(this)), m_pushSource(new OutputPrivate(*this)), diff --git a/src/multimedia/windows/qwindowsaudiosink_p.h b/src/multimedia/windows/qwindowsaudiosink_p.h index 48b948004..c1ca2e81c 100644 --- a/src/multimedia/windows/qwindowsaudiosink_p.h +++ b/src/multimedia/windows/qwindowsaudiosink_p.h @@ -41,7 +41,7 @@ class QWindowsAudioSink : public QPlatformAudioSink { Q_OBJECT public: - QWindowsAudioSink(QWindowsIUPointer<IMMDevice> device, QObject *parent); + QWindowsAudioSink(QComPtr<IMMDevice> device, QObject *parent); ~QWindowsAudioSink(); void setFormat(const QAudioFormat& fmt) override; @@ -84,9 +84,9 @@ private: QTimer *m_timer = nullptr; QScopedPointer<QIODevice> m_pushSource; QIODevice *m_pullSource = nullptr; - QWindowsIUPointer<IMMDevice> m_device; - QWindowsIUPointer<IAudioClient> m_audioClient; - QWindowsIUPointer<IAudioRenderClient> m_renderClient; + QComPtr<IMMDevice> m_device; + QComPtr<IAudioClient> m_audioClient; + QComPtr<IAudioRenderClient> m_renderClient; QWindowsResampler m_resampler; }; diff --git a/src/multimedia/windows/qwindowsaudiosource.cpp b/src/multimedia/windows/qwindowsaudiosource.cpp index b5680f9ca..fa7a48705 100644 --- a/src/multimedia/windows/qwindowsaudiosource.cpp +++ b/src/multimedia/windows/qwindowsaudiosource.cpp @@ -45,7 +45,7 @@ private: QWindowsAudioSource &m_audioSource; }; -QWindowsAudioSource::QWindowsAudioSource(QWindowsIUPointer<IMMDevice> device, QObject *parent) +QWindowsAudioSource::QWindowsAudioSource(QComPtr<IMMDevice> device, QObject *parent) : QPlatformAudioSource(parent), m_timer(new QTimer(this)), m_device(std::move(device)), diff --git a/src/multimedia/windows/qwindowsaudiosource_p.h b/src/multimedia/windows/qwindowsaudiosource_p.h index 6b7d41db1..56355d525 100644 --- a/src/multimedia/windows/qwindowsaudiosource_p.h +++ b/src/multimedia/windows/qwindowsaudiosource_p.h @@ -43,7 +43,7 @@ class QWindowsAudioSource : public QPlatformAudioSource { Q_OBJECT public: - QWindowsAudioSource(QWindowsIUPointer<IMMDevice> device, QObject *parent); + QWindowsAudioSource(QComPtr<IMMDevice> device, QObject *parent); ~QWindowsAudioSource(); qint64 read(char* data, qint64 len); @@ -72,9 +72,9 @@ private: QByteArray readCaptureClientBuffer(); QTimer *m_timer = nullptr; - QWindowsIUPointer<IMMDevice> m_device; - QWindowsIUPointer<IAudioClient> m_audioClient; - QWindowsIUPointer<IAudioCaptureClient> m_captureClient; + QComPtr<IMMDevice> m_device; + QComPtr<IAudioClient> m_audioClient; + QComPtr<IAudioCaptureClient> m_captureClient; QWindowsResampler m_resampler; int m_bufferSize = 0; qreal m_volume = 1.0; diff --git a/src/multimedia/windows/qwindowsaudioutils.cpp b/src/multimedia/windows/qwindowsaudioutils.cpp index ff2713f6b..fb9c8671e 100644 --- a/src/multimedia/windows/qwindowsaudioutils.cpp +++ b/src/multimedia/windows/qwindowsaudioutils.cpp @@ -157,9 +157,9 @@ QAudioFormat QWindowsAudioUtils::mediaTypeToFormat(IMFMediaType *mediaType) return format; } -QWindowsIUPointer<IMFMediaType> QWindowsAudioUtils::formatToMediaType(QWindowsMediaFoundation &wmf, const QAudioFormat &format) +QComPtr<IMFMediaType> QWindowsAudioUtils::formatToMediaType(QWindowsMediaFoundation &wmf, const QAudioFormat &format) { - QWindowsIUPointer<IMFMediaType> mediaType; + QComPtr<IMFMediaType> mediaType; if (!format.isValid()) return mediaType; diff --git a/src/multimedia/windows/qwindowsaudioutils_p.h b/src/multimedia/windows/qwindowsaudioutils_p.h index 3ae957e35..5254ef704 100644 --- a/src/multimedia/windows/qwindowsaudioutils_p.h +++ b/src/multimedia/windows/qwindowsaudioutils_p.h @@ -34,7 +34,7 @@ namespace QWindowsAudioUtils bool formatToWaveFormatExtensible(const QAudioFormat &format, WAVEFORMATEXTENSIBLE &wfx); QAudioFormat waveFormatExToFormat(const WAVEFORMATEX &in); Q_MULTIMEDIA_EXPORT QAudioFormat mediaTypeToFormat(IMFMediaType *mediaType); - QWindowsIUPointer<IMFMediaType> formatToMediaType(QWindowsMediaFoundation &, const QAudioFormat &format); + QComPtr<IMFMediaType> formatToMediaType(QWindowsMediaFoundation &, const QAudioFormat &format); QAudioFormat::ChannelConfig maskToChannelConfig(UINT32 mask, int count); std::optional<quint32> audioClientFramesInUse(IAudioClient *client); std::optional<quint32> audioClientFramesAllocated(IAudioClient *client); diff --git a/src/multimedia/windows/qwindowsiupointer_p.h b/src/multimedia/windows/qwindowsiupointer_p.h index 0cf73660b..1fff76e2c 100644 --- a/src/multimedia/windows/qwindowsiupointer_p.h +++ b/src/multimedia/windows/qwindowsiupointer_p.h @@ -16,16 +16,16 @@ // template <class T> -class QWindowsIUPointer +class QComPtr { public: - explicit QWindowsIUPointer(T *ptr) : m_ptr(ptr) {} - QWindowsIUPointer() : m_ptr(nullptr) {} - QWindowsIUPointer(const QWindowsIUPointer<T> &uiPtr) : m_ptr(uiPtr.m_ptr) { if (m_ptr) m_ptr->AddRef(); } - QWindowsIUPointer(QWindowsIUPointer<T> &&uiPtr) : m_ptr(uiPtr.m_ptr) { uiPtr.m_ptr = nullptr; } - ~QWindowsIUPointer() { if (m_ptr) m_ptr->Release(); } + explicit QComPtr(T *ptr) : m_ptr(ptr) {} + QComPtr() : m_ptr(nullptr) {} + QComPtr(const QComPtr<T> &uiPtr) : m_ptr(uiPtr.m_ptr) { if (m_ptr) m_ptr->AddRef(); } + QComPtr(QComPtr<T> &&uiPtr) : m_ptr(uiPtr.m_ptr) { uiPtr.m_ptr = nullptr; } + ~QComPtr() { if (m_ptr) m_ptr->Release(); } - QWindowsIUPointer& operator=(const QWindowsIUPointer<T> &rhs) { + QComPtr& operator=(const QComPtr<T> &rhs) { if (this != &rhs) { if (m_ptr) m_ptr->Release(); @@ -35,7 +35,7 @@ public: return *this; } - QWindowsIUPointer& operator=(QWindowsIUPointer<T> &&rhs) noexcept { + QComPtr& operator=(QComPtr<T> &&rhs) noexcept { if (m_ptr) m_ptr->Release(); m_ptr = rhs.m_ptr; diff --git a/src/multimedia/windows/qwindowsmediadevices.cpp b/src/multimedia/windows/qwindowsmediadevices.cpp index c1135f0cb..9dd2db383 100644 --- a/src/multimedia/windows/qwindowsmediadevices.cpp +++ b/src/multimedia/windows/qwindowsmediadevices.cpp @@ -24,13 +24,13 @@ QT_BEGIN_NAMESPACE class CMMNotificationClient : public IMMNotificationClient { LONG m_cRef; - QWindowsIUPointer<IMMDeviceEnumerator> m_enumerator; + QComPtr<IMMDeviceEnumerator> m_enumerator; QWindowsMediaDevices *m_windowsMediaDevices; QMap<QString, DWORD> m_deviceState; public: CMMNotificationClient(QWindowsMediaDevices *windowsMediaDevices, - QWindowsIUPointer<IMMDeviceEnumerator> enumerator, + QComPtr<IMMDeviceEnumerator> enumerator, QMap<QString, DWORD> &&deviceState) : m_cRef(1), m_enumerator(enumerator), @@ -132,8 +132,8 @@ public: void emitAudioDevicesChanged(LPCWSTR deviceID) { - QWindowsIUPointer<IMMDevice> device; - QWindowsIUPointer<IMMEndpoint> endpoint; + QComPtr<IMMDevice> device; + QComPtr<IMMEndpoint> endpoint; EDataFlow flow; if (SUCCEEDED(m_enumerator->GetDevice(deviceID, device.address())) @@ -156,14 +156,14 @@ QWindowsMediaDevices::QWindowsMediaDevices() if (SUCCEEDED(hr)) { QMap<QString, DWORD> devState; - QWindowsIUPointer<IMMDeviceCollection> devColl; + QComPtr<IMMDeviceCollection> devColl; UINT count = 0; if (SUCCEEDED(m_deviceEnumerator->EnumAudioEndpoints(EDataFlow::eAll, DEVICE_STATEMASK_ALL, devColl.address())) && SUCCEEDED(devColl->GetCount(&count))) { for (UINT i = 0; i < count; i++) { - QWindowsIUPointer<IMMDevice> device; + QComPtr<IMMDevice> device; DWORD state = 0; LPWSTR id = nullptr; @@ -204,7 +204,7 @@ QList<QAudioDevice> QWindowsMediaDevices::availableDevices(QAudioDevice::Mode mo const auto defaultAudioDeviceID = [this, audioOut]{ const auto dataFlow = audioOut ? EDataFlow::eRender : EDataFlow::eCapture; - QWindowsIUPointer<IMMDevice> dev; + QComPtr<IMMDevice> dev; LPWSTR id = nullptr; QString sid; @@ -236,8 +236,8 @@ QList<QAudioDevice> QWindowsMediaDevices::availableDevices(QAudioDevice::Mode mo if (waveMessage(DRV_QUERYFUNCTIONINSTANCEID, id.data(), len) != MMSYSERR_NOERROR) continue; - QWindowsIUPointer<IMMDevice> device; - QWindowsIUPointer<IPropertyStore> props; + QComPtr<IMMDevice> device; + QComPtr<IPropertyStore> props; if (FAILED(m_deviceEnumerator->GetDevice(id.data(), device.address())) || FAILED(device->OpenPropertyStore(STGM_READ, props.address()))) { continue; diff --git a/src/multimedia/windows/qwindowsmediadevices_p.h b/src/multimedia/windows/qwindowsmediadevices_p.h index f32577535..154f29c6e 100644 --- a/src/multimedia/windows/qwindowsmediadevices_p.h +++ b/src/multimedia/windows/qwindowsmediadevices_p.h @@ -43,8 +43,8 @@ public: private: QList<QAudioDevice> availableDevices(QAudioDevice::Mode mode) const; - QWindowsIUPointer<IMMDeviceEnumerator> m_deviceEnumerator; - QWindowsIUPointer<CMMNotificationClient> m_notificationClient; + QComPtr<IMMDeviceEnumerator> m_deviceEnumerator; + QComPtr<CMMNotificationClient> m_notificationClient; friend CMMNotificationClient; }; diff --git a/src/multimedia/windows/qwindowsresampler.cpp b/src/multimedia/windows/qwindowsresampler.cpp index b4b36d5ee..b1922cfec 100644 --- a/src/multimedia/windows/qwindowsresampler.cpp +++ b/src/multimedia/windows/qwindowsresampler.cpp @@ -54,12 +54,12 @@ quint64 QWindowsResampler::inputBufferSize(quint64 outputBufferSize) const HRESULT QWindowsResampler::processInput(const QByteArrayView &in) { - QWindowsIUPointer<IMFSample> sample; + QComPtr<IMFSample> sample; HRESULT hr = m_wmf->mfCreateSample(sample.address()); if (FAILED(hr)) return hr; - QWindowsIUPointer<IMFMediaBuffer> buffer; + QComPtr<IMFMediaBuffer> buffer; hr = m_wmf->mfCreateMemoryBuffer(in.size(), buffer.address()); if (FAILED(hr)) return hr; @@ -90,8 +90,8 @@ HRESULT QWindowsResampler::processInput(const QByteArrayView &in) HRESULT QWindowsResampler::processOutput(QByteArray &out) { - QWindowsIUPointer<IMFSample> sample; - QWindowsIUPointer<IMFMediaBuffer> buffer; + QComPtr<IMFSample> sample; + QComPtr<IMFMediaBuffer> buffer; if (m_resamplerNeedsSampleBuffer) { HRESULT hr = m_wmf->mfCreateSample(sample.address()); @@ -119,7 +119,7 @@ HRESULT QWindowsResampler::processOutput(QByteArray &out) DWORD status = 0; hr = m_resampler->ProcessOutput(0, 1, &outputDataBuffer, &status); if (SUCCEEDED(hr)) { - QWindowsIUPointer<IMFMediaBuffer> outputBuffer; + QComPtr<IMFMediaBuffer> outputBuffer; outputDataBuffer.pSample->ConvertToContiguousBuffer(outputBuffer.address()); DWORD len = 0; BYTE *data = nullptr; @@ -174,7 +174,7 @@ QByteArray QWindowsResampler::resample(IMFSample *sample) QByteArray out; if (m_inputFormat == m_outputFormat) { - QWindowsIUPointer<IMFMediaBuffer> outputBuffer; + QComPtr<IMFMediaBuffer> outputBuffer; sample->ConvertToContiguousBuffer(outputBuffer.address()); DWORD len = 0; BYTE *data = nullptr; @@ -216,8 +216,8 @@ bool QWindowsResampler::setup(const QAudioFormat &fin, const QAudioFormat &fout) if (!m_resampler || !m_wmf) return false; - QWindowsIUPointer<IMFMediaType> min = QWindowsAudioUtils::formatToMediaType(*m_wmf, fin); - QWindowsIUPointer<IMFMediaType> mout = QWindowsAudioUtils::formatToMediaType(*m_wmf, fout); + QComPtr<IMFMediaType> min = QWindowsAudioUtils::formatToMediaType(*m_wmf, fin); + QComPtr<IMFMediaType> mout = QWindowsAudioUtils::formatToMediaType(*m_wmf, fout); HRESULT hr = m_resampler->SetInputType(m_inputStreamID, min.get(), 0); if (FAILED(hr)) { diff --git a/src/multimedia/windows/qwindowsresampler_p.h b/src/multimedia/windows/qwindowsresampler_p.h index 3b2e72d00..a59cc5f2e 100644 --- a/src/multimedia/windows/qwindowsresampler_p.h +++ b/src/multimedia/windows/qwindowsresampler_p.h @@ -54,7 +54,7 @@ private: HRESULT processInput(const QByteArrayView &in); HRESULT processOutput(QByteArray &out); - QWindowsIUPointer<IMFTransform> m_resampler; + QComPtr<IMFTransform> m_resampler; QWindowsMediaFoundation *m_wmf = nullptr; bool m_resamplerNeedsSampleBuffer = false; diff --git a/src/plugins/multimedia/ffmpeg/qffmpeghwaccel_d3d11.cpp b/src/plugins/multimedia/ffmpeg/qffmpeghwaccel_d3d11.cpp index c6f28543a..99180e5a6 100644 --- a/src/plugins/multimedia/ffmpeg/qffmpeghwaccel_d3d11.cpp +++ b/src/plugins/multimedia/ffmpeg/qffmpeghwaccel_d3d11.cpp @@ -27,7 +27,7 @@ namespace QFFmpeg { class D3D11TextureSet : public TextureSet { public: - D3D11TextureSet(QWindowsIUPointer<ID3D11Texture2D> &&tex) + D3D11TextureSet(QComPtr<ID3D11Texture2D> &&tex) : m_tex(tex) {} @@ -37,7 +37,7 @@ public: } private: - QWindowsIUPointer<ID3D11Texture2D> m_tex; + QComPtr<ID3D11Texture2D> m_tex; }; @@ -46,9 +46,9 @@ D3D11TextureConverter::D3D11TextureConverter(QRhi *rhi) { } -static QWindowsIUPointer<ID3D11Texture2D> getSharedTextureForDevice(ID3D11Device *dev, ID3D11Texture2D *tex) +static QComPtr<ID3D11Texture2D> getSharedTextureForDevice(ID3D11Device *dev, ID3D11Texture2D *tex) { - QWindowsIUPointer<IDXGIResource> dxgiResource; + QComPtr<IDXGIResource> dxgiResource; HRESULT hr = tex->QueryInterface(__uuidof(IDXGIResource), reinterpret_cast<void **>(dxgiResource.address())); if (FAILED(hr)) { qCDebug(qLcMediaFFmpegHWAccel) << "Failed to obtain resource handle from FFMpeg texture" << hr; @@ -61,14 +61,14 @@ static QWindowsIUPointer<ID3D11Texture2D> getSharedTextureForDevice(ID3D11Device return {}; } - QWindowsIUPointer<ID3D11Texture2D> sharedTex; + QComPtr<ID3D11Texture2D> sharedTex; hr = dev->OpenSharedResource(shared, __uuidof(ID3D11Texture2D), reinterpret_cast<void **>(sharedTex.address())); if (FAILED(hr)) qCDebug(qLcMediaFFmpegHWAccel) << "Failed to share FFmpeg texture" << hr; return sharedTex; } -static QWindowsIUPointer<ID3D11Texture2D> copyTextureFromArray(ID3D11Device *dev, ID3D11Texture2D *array, int index) +static QComPtr<ID3D11Texture2D> copyTextureFromArray(ID3D11Device *dev, ID3D11Texture2D *array, int index) { D3D11_TEXTURE2D_DESC arrayDesc = {}; array->GetDesc(&arrayDesc); @@ -83,14 +83,14 @@ static QWindowsIUPointer<ID3D11Texture2D> copyTextureFromArray(ID3D11Device *dev texDesc.MiscFlags = 0; texDesc.SampleDesc = { 1, 0}; - QWindowsIUPointer<ID3D11Texture2D> texCopy; + QComPtr<ID3D11Texture2D> texCopy; HRESULT hr = dev->CreateTexture2D(&texDesc, nullptr, texCopy.address()); if (FAILED(hr)) { qCDebug(qLcMediaFFmpegHWAccel) << "Failed to create texture" << hr; return {}; } - QWindowsIUPointer<ID3D11DeviceContext> ctx; + QComPtr<ID3D11DeviceContext> ctx; dev->GetImmediateContext(ctx.address()); ctx->CopySubresourceRegion(texCopy.get(), 0, 0, 0, 0, array, index, nullptr); diff --git a/src/plugins/multimedia/ffmpeg/qffmpegscreencapture_dxgi.cpp b/src/plugins/multimedia/ffmpeg/qffmpegscreencapture_dxgi.cpp index 040509bb1..16730ca06 100644 --- a/src/plugins/multimedia/ffmpeg/qffmpegscreencapture_dxgi.cpp +++ b/src/plugins/multimedia/ffmpeg/qffmpegscreencapture_dxgi.cpp @@ -32,8 +32,8 @@ using namespace QWindowsMultimediaUtils; class QD3D11TextureVideoBuffer : public QAbstractVideoBuffer { public: - QD3D11TextureVideoBuffer(QWindowsIUPointer<ID3D11Device> &device, std::shared_ptr<QMutex> &mutex, - QWindowsIUPointer<ID3D11Texture2D> &texture, QSize size) + QD3D11TextureVideoBuffer(QComPtr<ID3D11Device> &device, std::shared_ptr<QMutex> &mutex, + QComPtr<ID3D11Texture2D> &texture, QSize size) : QAbstractVideoBuffer(QVideoFrame::NoHandle) , m_device(device) , m_texture(texture) @@ -108,25 +108,25 @@ public: } private: - QWindowsIUPointer<ID3D11Device> m_device; - QWindowsIUPointer<ID3D11Texture2D> m_texture; - QWindowsIUPointer<ID3D11Texture2D> m_cpuTexture; - QWindowsIUPointer<ID3D11DeviceContext> m_ctx; + QComPtr<ID3D11Device> m_device; + QComPtr<ID3D11Texture2D> m_texture; + QComPtr<ID3D11Texture2D> m_cpuTexture; + QComPtr<ID3D11DeviceContext> m_ctx; std::shared_ptr<QMutex> m_ctxMutex; QSize m_size; QVideoFrame::MapMode m_mapMode = QVideoFrame::NotMapped; }; -static QMaybe<QWindowsIUPointer<ID3D11Texture2D>> getNextFrame(ID3D11Device *dev, IDXGIOutputDuplication *dup) +static QMaybe<QComPtr<ID3D11Texture2D>> getNextFrame(ID3D11Device *dev, IDXGIOutputDuplication *dup) { - QWindowsIUPointer<IDXGIResource> frame; + QComPtr<IDXGIResource> frame; DXGI_OUTDUPL_FRAME_INFO info; HRESULT hr = dup->AcquireNextFrame(0, &info, frame.address()); if (FAILED(hr)) return hr == DXGI_ERROR_WAIT_TIMEOUT ? QString{} : "Failed to grab the screen content" + errorString(hr); - QWindowsIUPointer<ID3D11Texture2D> tex; + QComPtr<ID3D11Texture2D> tex; hr = frame->QueryInterface(__uuidof(ID3D11Texture2D), reinterpret_cast<void **>(tex.address())); if (FAILED(hr)) { dup->ReleaseFrame(); @@ -137,14 +137,14 @@ static QMaybe<QWindowsIUPointer<ID3D11Texture2D>> getNextFrame(ID3D11Device *dev tex->GetDesc(&texDesc); texDesc.MiscFlags = 0; texDesc.BindFlags = 0; - QWindowsIUPointer<ID3D11Texture2D> texCopy; + QComPtr<ID3D11Texture2D> texCopy; hr = dev->CreateTexture2D(&texDesc, nullptr, texCopy.address()); if (FAILED(hr)) { dup->ReleaseFrame(); return "Failed to create texture with CPU access" + errorString(hr); } - QWindowsIUPointer<ID3D11DeviceContext> ctx; + QComPtr<ID3D11DeviceContext> ctx; dev->GetImmediateContext(ctx.address()); ctx->CopyResource(texCopy.get(), tex.get()); @@ -156,8 +156,8 @@ static QMaybe<QWindowsIUPointer<ID3D11Texture2D>> getNextFrame(ID3D11Device *dev class QFFmpegScreenCaptureDxgi::Grabber : public QFFmpegScreenCaptureThread { public: - Grabber(QFFmpegScreenCaptureDxgi &screenCapture, QScreen *screen, QWindowsIUPointer<ID3D11Device> &device, - QWindowsIUPointer<IDXGIOutputDuplication> &duplication) + Grabber(QFFmpegScreenCaptureDxgi &screenCapture, QScreen *screen, QComPtr<ID3D11Device> &device, + QComPtr<IDXGIOutputDuplication> &duplication) : QFFmpegScreenCaptureThread() , m_duplication(duplication) , m_device(device) @@ -213,8 +213,8 @@ public: }; private: - QWindowsIUPointer<IDXGIOutputDuplication> m_duplication; - QWindowsIUPointer<ID3D11Device> m_device; + QComPtr<IDXGIOutputDuplication> m_duplication; + QComPtr<ID3D11Device> m_device; QWaitCondition m_waitForFormat; QVideoFrameFormat m_format; QMutex m_formatMutex; @@ -222,14 +222,14 @@ private: QSize m_frameSize; }; -static QMaybe<QWindowsIUPointer<IDXGIOutputDuplication>> duplicateOutput(ID3D11Device* device, IDXGIOutput *output) +static QMaybe<QComPtr<IDXGIOutputDuplication>> duplicateOutput(ID3D11Device* device, IDXGIOutput *output) { - QWindowsIUPointer<IDXGIOutput1> output1; + QComPtr<IDXGIOutput1> output1; HRESULT hr = output->QueryInterface(__uuidof(IDXGIOutput1), reinterpret_cast<void**>(output1.address())); if (FAILED(hr)) return { "Failed to create IDXGIOutput1" + QString(std::system_category().message(hr).c_str()) }; - QWindowsIUPointer<IDXGIOutputDuplication> dup; + QComPtr<IDXGIOutputDuplication> dup; hr = output1->DuplicateOutput(device, dup.address()); if (SUCCEEDED(hr)) return dup; @@ -238,8 +238,8 @@ static QMaybe<QWindowsIUPointer<IDXGIOutputDuplication>> duplicateOutput(ID3D11D } struct DxgiScreen { - QWindowsIUPointer<IDXGIAdapter1> adapter; - QWindowsIUPointer<IDXGIOutput> output; + QComPtr<IDXGIAdapter1> adapter; + QComPtr<IDXGIOutput> output; }; static QMaybe<DxgiScreen> findDxgiScreen(const QScreen *screen) @@ -250,14 +250,14 @@ static QMaybe<DxgiScreen> findDxgiScreen(const QScreen *screen) auto *winScreen = screen->nativeInterface<QNativeInterface::Private::QWindowsScreen>(); HMONITOR handle = winScreen ? winScreen->handle() : nullptr; - QWindowsIUPointer<IDXGIFactory1> factory; + QComPtr<IDXGIFactory1> factory; HRESULT hr = CreateDXGIFactory1(__uuidof(IDXGIFactory1), reinterpret_cast<void**>(factory.address())); if (FAILED(hr)) return "Failed to create IDXGIFactory" + errorString(hr); - QWindowsIUPointer<IDXGIAdapter1> adapter; + QComPtr<IDXGIAdapter1> adapter; for (quint32 i = 0; SUCCEEDED(factory->EnumAdapters1(i, adapter.address())); i++, adapter.reset()) { - QWindowsIUPointer<IDXGIOutput> output; + QComPtr<IDXGIOutput> output; for (quint32 j = 0; SUCCEEDED(adapter->EnumOutputs(j, output.address())); j++, output.reset()) { DXGI_OUTPUT_DESC desc = {}; output->GetDesc(&desc); @@ -271,9 +271,9 @@ static QMaybe<DxgiScreen> findDxgiScreen(const QScreen *screen) return "Could not find screen adapter" + screen->name(); } -static QMaybe<QWindowsIUPointer<ID3D11Device>> createD3D11Device(IDXGIAdapter1 *adapter) +static QMaybe<QComPtr<ID3D11Device>> createD3D11Device(IDXGIAdapter1 *adapter) { - QWindowsIUPointer<ID3D11Device> d3d11dev; + QComPtr<ID3D11Device> d3d11dev; HRESULT hr = D3D11CreateDevice(adapter, D3D_DRIVER_TYPE_UNKNOWN, nullptr, 0, nullptr, 0, D3D11_SDK_VERSION, d3d11dev.address(), nullptr, nullptr); diff --git a/src/plugins/multimedia/ffmpeg/qwindowscamera.cpp b/src/plugins/multimedia/ffmpeg/qwindowscamera.cpp index 4a4e7a921..7a644b88c 100644 --- a/src/plugins/multimedia/ffmpeg/qwindowscamera.cpp +++ b/src/plugins/multimedia/ffmpeg/qwindowscamera.cpp @@ -73,11 +73,11 @@ private: QMutex m_mutex; }; -static QWindowsIUPointer<IMFSourceReader> createCameraReader(IMFMediaSource *mediaSource, - const QWindowsIUPointer<CameraReaderCallback> &callback) +static QComPtr<IMFSourceReader> createCameraReader(IMFMediaSource *mediaSource, + const QComPtr<CameraReaderCallback> &callback) { - QWindowsIUPointer<IMFSourceReader> sourceReader; - QWindowsIUPointer<IMFAttributes> readerAttributes; + QComPtr<IMFSourceReader> sourceReader; + QComPtr<IMFAttributes> readerAttributes; HRESULT hr = MFCreateAttributes(readerAttributes.address(), 1); if (SUCCEEDED(hr)) { @@ -93,10 +93,10 @@ static QWindowsIUPointer<IMFSourceReader> createCameraReader(IMFMediaSource *med return sourceReader; } -static QWindowsIUPointer<IMFMediaSource> createCameraSource(const QString &deviceId) +static QComPtr<IMFMediaSource> createCameraSource(const QString &deviceId) { - QWindowsIUPointer<IMFMediaSource> mediaSource; - QWindowsIUPointer<IMFAttributes> sourceAttributes; + QComPtr<IMFMediaSource> mediaSource; + QComPtr<IMFAttributes> sourceAttributes; HRESULT hr = MFCreateAttributes(sourceAttributes.address(), 2); if (SUCCEEDED(hr)) { hr = sourceAttributes->SetGUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE, QMM_MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_GUID); @@ -144,11 +144,11 @@ static bool setCameraReaderFormat(IMFSourceReader *sourceReader, IMFMediaType *v return SUCCEEDED(hr); } -static QWindowsIUPointer<IMFMediaType> findVideoType(IMFSourceReader *reader, +static QComPtr<IMFMediaType> findVideoType(IMFSourceReader *reader, const QCameraFormat &format) { for (DWORD i = 0;; ++i) { - QWindowsIUPointer<IMFMediaType> candidate; + QComPtr<IMFMediaType> candidate; HRESULT hr = reader->GetNativeMediaType(MF_SOURCE_READER_FIRST_VIDEO_STREAM, i, candidate.address()); if (FAILED(hr)) @@ -185,7 +185,7 @@ public: if (!ac->m_source) return {}; - ac->m_readerCallback = QWindowsIUPointer<CameraReaderCallback>(new CameraReaderCallback); + ac->m_readerCallback = QComPtr<CameraReaderCallback>(new CameraReaderCallback); ac->m_readerCallback->setActiveCamera(ac.get()); ac->m_reader = createCameraReader(ac->m_source.get(), ac->m_readerCallback); if (!ac->m_reader) @@ -224,7 +224,7 @@ public: } if (sample) { - QWindowsIUPointer<IMFMediaBuffer> mediaBuffer; + QComPtr<IMFMediaBuffer> mediaBuffer; if (SUCCEEDED(sample->ConvertToContiguousBuffer(mediaBuffer.address()))) { DWORD bufLen = 0; @@ -269,9 +269,9 @@ private: QSemaphore m_flushWait; - QWindowsIUPointer<IMFMediaSource> m_source; - QWindowsIUPointer<IMFSourceReader> m_reader; - QWindowsIUPointer<CameraReaderCallback> m_readerCallback; + QComPtr<IMFMediaSource> m_source; + QComPtr<IMFSourceReader> m_reader; + QComPtr<CameraReaderCallback> m_readerCallback; QVideoFrameFormat m_frameFormat; int m_videoFrameStride = 0; diff --git a/src/plugins/multimedia/windows/decoder/mfaudiodecodercontrol.cpp b/src/plugins/multimedia/windows/decoder/mfaudiodecodercontrol.cpp index 948151916..1f8c01280 100644 --- a/src/plugins/multimedia/windows/decoder/mfaudiodecodercontrol.cpp +++ b/src/plugins/multimedia/windows/decoder/mfaudiodecodercontrol.cpp @@ -101,7 +101,7 @@ void MFAudioDecoderControl::startReadingSource(IMFMediaSource *source) return; } - QWindowsIUPointer<IMFPresentationDescriptor> pd; + QComPtr<IMFPresentationDescriptor> pd; if (SUCCEEDED(source->CreatePresentationDescriptor(pd.address()))) { UINT64 duration = 0; pd->GetUINT64(MF_PD_DURATION, &duration); @@ -173,7 +173,7 @@ void MFAudioDecoderControl::stop() } } -void MFAudioDecoderControl::handleNewSample(QWindowsIUPointer<IMFSample> sample) +void MFAudioDecoderControl::handleNewSample(QComPtr<IMFSample> sample) { Q_ASSERT(sample); diff --git a/src/plugins/multimedia/windows/decoder/mfaudiodecodercontrol_p.h b/src/plugins/multimedia/windows/decoder/mfaudiodecodercontrol_p.h index 41957f448..3e3a405a3 100644 --- a/src/plugins/multimedia/windows/decoder/mfaudiodecodercontrol_p.h +++ b/src/plugins/multimedia/windows/decoder/mfaudiodecodercontrol_p.h @@ -51,13 +51,13 @@ public: private Q_SLOTS: void handleMediaSourceReady(); void handleMediaSourceError(long hr); - void handleNewSample(QWindowsIUPointer<IMFSample>); + void handleNewSample(QComPtr<IMFSample>); void handleSourceFinished(); private: void startReadingSource(IMFMediaSource *source); - QWindowsIUPointer<MFDecoderSourceReader> m_decoderSourceReader; + QComPtr<MFDecoderSourceReader> m_decoderSourceReader; SourceResolver *m_sourceResolver; QWindowsResampler m_resampler; QUrl m_source; diff --git a/src/plugins/multimedia/windows/decoder/mfdecodersourcereader.cpp b/src/plugins/multimedia/windows/decoder/mfdecodersourcereader.cpp index 017f3926a..9c69fbd25 100644 --- a/src/plugins/multimedia/windows/decoder/mfdecodersourcereader.cpp +++ b/src/plugins/multimedia/windows/decoder/mfdecodersourcereader.cpp @@ -9,15 +9,15 @@ QT_BEGIN_NAMESPACE -QWindowsIUPointer<IMFMediaType> MFDecoderSourceReader::setSource(IMFMediaSource *source, QAudioFormat::SampleFormat sampleFormat) +QComPtr<IMFMediaType> MFDecoderSourceReader::setSource(IMFMediaSource *source, QAudioFormat::SampleFormat sampleFormat) { - QWindowsIUPointer<IMFMediaType> mediaType; + QComPtr<IMFMediaType> mediaType; m_sourceReader.reset(); if (!source) return mediaType; - QWindowsIUPointer<IMFAttributes> attr; + QComPtr<IMFAttributes> attr; MFCreateAttributes(attr.address(), 1); if (FAILED(attr->SetUnknown(MF_SOURCE_READER_ASYNC_CALLBACK, this))) return mediaType; @@ -34,7 +34,7 @@ QWindowsIUPointer<IMFMediaType> MFDecoderSourceReader::setSource(IMFMediaSource m_sourceReader->SetStreamSelection(DWORD(MF_SOURCE_READER_ALL_STREAMS), FALSE); m_sourceReader->SetStreamSelection(DWORD(MF_SOURCE_READER_FIRST_AUDIO_STREAM), TRUE); - QWindowsIUPointer<IMFMediaType> pPartialType; + QComPtr<IMFMediaType> pPartialType; MFCreateMediaType(pPartialType.address()); pPartialType->SetGUID(MF_MT_MAJOR_TYPE, MFMediaType_Audio); pPartialType->SetGUID(MF_MT_SUBTYPE, sampleFormat == QAudioFormat::Float ? MFAudioFormat_Float : MFAudioFormat_PCM); @@ -92,7 +92,7 @@ STDMETHODIMP MFDecoderSourceReader::OnReadSample(HRESULT hrStatus, DWORD dwStrea Q_UNUSED(llTimestamp); if (pSample) { pSample->AddRef(); - emit newSample(QWindowsIUPointer{pSample}); + emit newSample(QComPtr{pSample}); } else if ((dwStreamFlags & MF_SOURCE_READERF_ENDOFSTREAM) == MF_SOURCE_READERF_ENDOFSTREAM) { emit finished(); } diff --git a/src/plugins/multimedia/windows/decoder/mfdecodersourcereader_p.h b/src/plugins/multimedia/windows/decoder/mfdecodersourcereader_p.h index 584446ba1..d964ff482 100644 --- a/src/plugins/multimedia/windows/decoder/mfdecodersourcereader_p.h +++ b/src/plugins/multimedia/windows/decoder/mfdecodersourcereader_p.h @@ -33,7 +33,7 @@ public: ~MFDecoderSourceReader() override {} void clearSource() { m_sourceReader.reset(); } - QWindowsIUPointer<IMFMediaType> setSource(IMFMediaSource *source, QAudioFormat::SampleFormat); + QComPtr<IMFMediaType> setSource(IMFMediaSource *source, QAudioFormat::SampleFormat); void readNextSample(); @@ -49,12 +49,12 @@ public: STDMETHODIMP OnEvent(DWORD, IMFMediaEvent *) override { return S_OK; } Q_SIGNALS: - void newSample(QWindowsIUPointer<IMFSample>); + void newSample(QComPtr<IMFSample>); void finished(); private: long m_cRef = 1; - QWindowsIUPointer<IMFSourceReader> m_sourceReader; + QComPtr<IMFSourceReader> m_sourceReader; }; diff --git a/src/plugins/multimedia/windows/evr/evrcustompresenter.cpp b/src/plugins/multimedia/windows/evr/evrcustompresenter.cpp index 742608f0f..bb6d0390f 100644 --- a/src/plugins/multimedia/windows/evr/evrcustompresenter.cpp +++ b/src/plugins/multimedia/windows/evr/evrcustompresenter.cpp @@ -1898,7 +1898,7 @@ void EVRCustomPresenter::presentSample(IMFSample *sample) frame.setEndTime(frame.endTime() + m_positionOffset); } - QWindowsIUPointer<IMFMediaType> inputStreamType; + QComPtr<IMFMediaType> inputStreamType; if (SUCCEEDED(m_mixer->GetInputCurrentType(0, inputStreamType.address()))) { auto rotation = static_cast<MFVideoRotationFormat>(MFGetAttributeUINT32(inputStreamType.get(), MF_MT_VIDEO_ROTATION, 0)); switch (rotation) { diff --git a/src/plugins/multimedia/windows/evr/evrd3dpresentengine.cpp b/src/plugins/multimedia/windows/evr/evrd3dpresentengine.cpp index 2768c3ac7..7fab5b8cd 100644 --- a/src/plugins/multimedia/windows/evr/evrd3dpresentengine.cpp +++ b/src/plugins/multimedia/windows/evr/evrd3dpresentengine.cpp @@ -30,7 +30,7 @@ static Q_LOGGING_CATEGORY(qLcEvrD3DPresentEngine, "qt.multimedia.evrd3dpresenten class IMFSampleVideoBuffer: public QAbstractVideoBuffer { public: - IMFSampleVideoBuffer(QWindowsIUPointer<IDirect3DDevice9Ex> device, + IMFSampleVideoBuffer(QComPtr<IDirect3DDevice9Ex> device, IMFSample *sample, QRhi *rhi, QVideoFrame::HandleType type = QVideoFrame::NoHandle) : QAbstractVideoBuffer(type, rhi) , m_device(device) @@ -59,12 +59,12 @@ public: return {}; } else { - QWindowsIUPointer<IMFMediaBuffer> buffer; + QComPtr<IMFMediaBuffer> buffer; HRESULT hr = m_sample->GetBufferByIndex(0, buffer.address()); if (FAILED(hr)) return {}; - QWindowsIUPointer<IDirect3DSurface9> surface; + QComPtr<IDirect3DSurface9> surface; hr = MFGetService(buffer.get(), MR_BUFFER_SERVICE, IID_IDirect3DSurface9, (void **)(surface.address())); if (FAILED(hr)) return {}; @@ -106,18 +106,18 @@ public: } protected: - QWindowsIUPointer<IDirect3DDevice9Ex> m_device; - QWindowsIUPointer<IMFSample> m_sample; + QComPtr<IDirect3DDevice9Ex> m_device; + QComPtr<IMFSample> m_sample; private: - QWindowsIUPointer<IDirect3DSurface9> m_memSurface; + QComPtr<IDirect3DSurface9> m_memSurface; QVideoFrame::MapMode m_mapMode; }; class QVideoFrameD3D11Textures: public QVideoFrameTextures { public: - QVideoFrameD3D11Textures(std::unique_ptr<QRhiTexture> &&tex, QWindowsIUPointer<ID3D11Texture2D> &&d3d11tex) + QVideoFrameD3D11Textures(std::unique_ptr<QRhiTexture> &&tex, QComPtr<ID3D11Texture2D> &&d3d11tex) : m_tex(std::move(tex)) , m_d3d11tex(std::move(d3d11tex)) {} @@ -129,13 +129,13 @@ public: private: std::unique_ptr<QRhiTexture> m_tex; - QWindowsIUPointer<ID3D11Texture2D> m_d3d11tex; + QComPtr<ID3D11Texture2D> m_d3d11tex; }; class D3D11TextureVideoBuffer: public IMFSampleVideoBuffer { public: - D3D11TextureVideoBuffer(QWindowsIUPointer<IDirect3DDevice9Ex> device, IMFSample *sample, + D3D11TextureVideoBuffer(QComPtr<IDirect3DDevice9Ex> device, IMFSample *sample, HANDLE sharedHandle, QRhi *rhi) : IMFSampleVideoBuffer(std::move(device), sample, rhi, QVideoFrame::RhiTextureHandle) , m_sharedHandle(sharedHandle) @@ -154,7 +154,7 @@ public: if (!dev) return {}; - QWindowsIUPointer<ID3D11Texture2D> d3d11tex; + QComPtr<ID3D11Texture2D> d3d11tex; HRESULT hr = dev->OpenSharedResource(m_sharedHandle, __uuidof(ID3D11Texture2D), (void**)(d3d11tex.address())); if (SUCCEEDED(hr)) { D3D11_TEXTURE2D_DESC desc = {}; @@ -288,7 +288,7 @@ private: class OpenGlVideoBuffer: public IMFSampleVideoBuffer { public: - OpenGlVideoBuffer(QWindowsIUPointer<IDirect3DDevice9Ex> device, IMFSample *sample, + OpenGlVideoBuffer(QComPtr<IDirect3DDevice9Ex> device, IMFSample *sample, const WglNvDxInterop &wglNvDxInterop, HANDLE sharedHandle, QRhi *rhi) : IMFSampleVideoBuffer(std::move(device), sample, rhi, QVideoFrame::RhiTextureHandle) , m_sharedHandle(sharedHandle) @@ -298,12 +298,12 @@ public: std::unique_ptr<QVideoFrameTextures> mapTextures(QRhi *rhi) override { if (!m_texture) { - QWindowsIUPointer<IMFMediaBuffer> buffer; + QComPtr<IMFMediaBuffer> buffer; HRESULT hr = m_sample->GetBufferByIndex(0, buffer.address()); if (FAILED(hr)) return {}; - QWindowsIUPointer<IDirect3DSurface9> surface; + QComPtr<IDirect3DSurface9> surface; hr = MFGetService(buffer.get(), MR_BUFFER_SERVICE, IID_IDirect3DSurface9, (void **)(surface.address())); if (FAILED(hr)) @@ -320,7 +320,7 @@ public: private: HANDLE m_sharedHandle = nullptr; WglNvDxInterop m_wgl; - QWindowsIUPointer<IDirect3DTexture9> m_texture; + QComPtr<IDirect3DTexture9> m_texture; }; #endif @@ -482,7 +482,7 @@ HRESULT D3DPresentEngine::createD3DDevice() pp.Flags = D3DPRESENTFLAG_VIDEO; pp.PresentationInterval = D3DPRESENT_INTERVAL_DEFAULT; - QWindowsIUPointer<IDirect3DDevice9Ex> device; + QComPtr<IDirect3DDevice9Ex> device; hr = m_D3D9->CreateDeviceEx( adapterID, @@ -604,18 +604,18 @@ HRESULT D3DPresentEngine::createVideoSamples(IMFMediaType *format, QList<IMFSamp for (int i = 0; i < PRESENTER_BUFFER_COUNT; i++) { // texture ref cnt is increased by GetSurfaceLevel()/MFCreateVideoSampleFromSurface() // below, so it will be destroyed only when the sample pool is released. - QWindowsIUPointer<IDirect3DTexture9> texture; + QComPtr<IDirect3DTexture9> texture; HANDLE sharedHandle = nullptr; hr = m_device->CreateTexture(width, height, 1, D3DUSAGE_RENDERTARGET, (D3DFORMAT)d3dFormat, D3DPOOL_DEFAULT, texture.address(), &sharedHandle); if (FAILED(hr)) break; - QWindowsIUPointer<IDirect3DSurface9> surface; + QComPtr<IDirect3DSurface9> surface; hr = texture->GetSurfaceLevel(0, surface.address()); if (FAILED(hr)) break; - QWindowsIUPointer<IMFSample> videoSample; + QComPtr<IMFSample> videoSample; hr = MFCreateVideoSampleFromSurface(surface.get(), videoSample.address()); if (FAILED(hr)) break; diff --git a/src/plugins/multimedia/windows/evr/evrd3dpresentengine_p.h b/src/plugins/multimedia/windows/evr/evrd3dpresentengine_p.h index b3be7f560..82a5f7112 100644 --- a/src/plugins/multimedia/windows/evr/evrd3dpresentengine_p.h +++ b/src/plugins/multimedia/windows/evr/evrd3dpresentengine_p.h @@ -125,9 +125,9 @@ private: UINT m_deviceResetToken; D3DDISPLAYMODE m_displayMode; - QWindowsIUPointer<IDirect3D9Ex> m_D3D9; - QWindowsIUPointer<IDirect3DDevice9Ex> m_device; - QWindowsIUPointer<IDirect3DDeviceManager9> m_devices; + QComPtr<IDirect3D9Ex> m_D3D9; + QComPtr<IDirect3DDevice9Ex> m_device; + QComPtr<IDirect3DDeviceManager9> m_devices; QVideoFrameFormat m_surfaceFormat; diff --git a/src/plugins/multimedia/windows/mediacapture/qwindowsmediadevicereader.cpp b/src/plugins/multimedia/windows/mediacapture/qwindowsmediadevicereader.cpp index 7e27886a7..e52ebf204 100644 --- a/src/plugins/multimedia/windows/mediacapture/qwindowsmediadevicereader.cpp +++ b/src/plugins/multimedia/windows/mediacapture/qwindowsmediadevicereader.cpp @@ -638,7 +638,7 @@ QMediaRecorder::Error QWindowsMediaDeviceReader::startRecording( if (!m_active || m_recording || (videoFormat == GUID_NULL && audioFormat == GUID_NULL)) return QMediaRecorder::ResourceError; - QWindowsIUPointer<IMFAttributes> writerAttributes; + QComPtr<IMFAttributes> writerAttributes; HRESULT hr = MFCreateAttributes(writerAttributes.address(), 2); if (FAILED(hr)) @@ -654,7 +654,7 @@ QMediaRecorder::Error QWindowsMediaDeviceReader::startRecording( if (FAILED(hr)) return QMediaRecorder::ResourceError; - QWindowsIUPointer<IMFSinkWriter> sinkWriter; + QComPtr<IMFSinkWriter> sinkWriter; hr = MFCreateSinkWriterFromURL(reinterpret_cast<LPCWSTR>(fileName.utf16()), nullptr, writerAttributes.get(), sinkWriter.address()); if (FAILED(hr)) diff --git a/src/plugins/multimedia/windows/qwindowsformatinfo.cpp b/src/plugins/multimedia/windows/qwindowsformatinfo.cpp index 510927b67..509967285 100644 --- a/src/plugins/multimedia/windows/qwindowsformatinfo.cpp +++ b/src/plugins/multimedia/windows/qwindowsformatinfo.cpp @@ -40,13 +40,13 @@ static QSet<T> getCodecSet(GUID category) if (SUCCEEDED(hr)) { for (UINT32 i = 0; i < num; ++i) { - QWindowsIUPointer<IMFTransform> transform; + QComPtr<IMFTransform> transform; UINT32 typeIndex = 0; hr = activateArray[i]->ActivateObject(IID_PPV_ARGS(transform.address())); while (SUCCEEDED(hr)) { - QWindowsIUPointer<IMFMediaType> mediaType; + QComPtr<IMFMediaType> mediaType; if (category == MFT_CATEGORY_AUDIO_ENCODER || category == MFT_CATEGORY_VIDEO_ENCODER) hr = transform->GetOutputAvailableType(0, typeIndex++, mediaType.address()); diff --git a/src/plugins/multimedia/windows/qwindowsvideodevices.cpp b/src/plugins/multimedia/windows/qwindowsvideodevices.cpp index bd0624bfc..78fe92ff2 100644 --- a/src/plugins/multimedia/windows/qwindowsvideodevices.cpp +++ b/src/plugins/multimedia/windows/qwindowsvideodevices.cpp @@ -155,7 +155,7 @@ static std::optional<QCameraDevice> createCameraDevice(IMFActivate *device) if (FAILED(hr)) return {}; - QWindowsIUPointer<IMFSourceReader> reader; + QComPtr<IMFSourceReader> reader; hr = MFCreateSourceReaderFromMediaSource(source, NULL, reader.address()); if (FAILED(hr)) return {}; @@ -164,7 +164,7 @@ static std::optional<QCameraDevice> createCameraDevice(IMFActivate *device) QList<QCameraFormat> videoFormats; for (DWORD i = 0;; ++i) { // Loop through the supported formats for the video device - QWindowsIUPointer<IMFMediaType> mediaFormat; + QComPtr<IMFMediaType> mediaFormat; hr = reader->GetNativeMediaType((DWORD)MF_SOURCE_READER_FIRST_VIDEO_STREAM, i, mediaFormat.address()); if (FAILED(hr)) @@ -208,7 +208,7 @@ QList<QCameraDevice> QWindowsVideoDevices::videoDevices() const { QList<QCameraDevice> cameras; - QWindowsIUPointer<IMFAttributes> attr; + QComPtr<IMFAttributes> attr; HRESULT hr = MFCreateAttributes(attr.address(), 2); if (FAILED(hr)) return {}; |