diff options
Diffstat (limited to 'src/plugins')
13 files changed, 88 insertions, 88 deletions
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 790c49858..f21a0d915 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 84c0043ae..4f25ae5ec 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 409e26a19..715170fa4 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 {}; |