From a9789cf46b19726e201069e9d4dfee48f0570691 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Wed, 5 Sep 2018 09:12:49 +0200 Subject: DirectShow: Fix clang-tidy warnings about class definitions - Use ' = default' for trivial constructors/destructors - replace virtual by override or add override where applicable - Replace trivial constructors by member initialization for simple structs - Add Q_DISABLE_COPY where applicable - Mark move assignment/move constructors as noexcept - Remove unused member variables Change-Id: I579fb69ebcd945b94de32b827d93e5a4dab4df97 Reviewed-by: Oliver Wolff --- .../common/directshowaudioprobecontrol.h | 2 +- .../directshow/common/directshowbasefilter.h | 26 +++++----- .../directshow/common/directshoweventloop.cpp | 1 + .../directshow/common/directshoweventloop.h | 4 +- .../directshow/common/directshowmediatype.cpp | 4 +- .../directshow/common/directshowmediatype.h | 4 +- src/plugins/directshow/common/directshowpin.cpp | 14 ++---- src/plugins/directshow/common/directshowpin.h | 57 +++++++++++----------- .../directshow/common/directshowsamplegrabber.cpp | 13 ++--- .../directshow/common/directshowvideobuffer.h | 8 +-- 10 files changed, 64 insertions(+), 69 deletions(-) (limited to 'src/plugins/directshow/common') diff --git a/src/plugins/directshow/common/directshowaudioprobecontrol.h b/src/plugins/directshow/common/directshowaudioprobecontrol.h index 553bd1178..034e958fd 100644 --- a/src/plugins/directshow/common/directshowaudioprobecontrol.h +++ b/src/plugins/directshow/common/directshowaudioprobecontrol.h @@ -51,7 +51,7 @@ class DirectShowAudioProbeControl : public QMediaAudioProbeControl Q_OBJECT public: explicit DirectShowAudioProbeControl(QObject *p = nullptr); - ~DirectShowAudioProbeControl(); + ~DirectShowAudioProbeControl() override; bool ref() { return m_ref.ref(); } bool deref() { return m_ref.deref(); } diff --git a/src/plugins/directshow/common/directshowbasefilter.h b/src/plugins/directshow/common/directshowbasefilter.h index 21ca648eb..fe78f96b2 100644 --- a/src/plugins/directshow/common/directshowbasefilter.h +++ b/src/plugins/directshow/common/directshowbasefilter.h @@ -48,7 +48,7 @@ class DirectShowBaseFilter : public IBaseFilter { public: DirectShowBaseFilter(); - ~DirectShowBaseFilter(); + virtual ~DirectShowBaseFilter(); FILTER_STATE state() const { return m_state; } HRESULT NotifyEvent(long eventCode, LONG_PTR eventParam1, LONG_PTR eventParam2); @@ -56,26 +56,26 @@ public: virtual QList pins() = 0; // IPersist - STDMETHODIMP GetClassID(CLSID *pClassID); + STDMETHODIMP GetClassID(CLSID *pClassID) override; // IMediaFilter - STDMETHODIMP Run(REFERENCE_TIME tStart); - STDMETHODIMP Pause(); - STDMETHODIMP Stop(); + STDMETHODIMP Run(REFERENCE_TIME tStart) override; + STDMETHODIMP Pause() override; + STDMETHODIMP Stop() override; - STDMETHODIMP GetState(DWORD dwMilliSecsTimeout, FILTER_STATE *pState); + STDMETHODIMP GetState(DWORD dwMilliSecsTimeout, FILTER_STATE *pState) override; - STDMETHODIMP SetSyncSource(IReferenceClock *pClock); - STDMETHODIMP GetSyncSource(IReferenceClock **ppClock); + STDMETHODIMP SetSyncSource(IReferenceClock *pClock) override; + STDMETHODIMP GetSyncSource(IReferenceClock **ppClock) override; // IBaseFilter - STDMETHODIMP EnumPins(IEnumPins **ppEnum); - STDMETHODIMP FindPin(LPCWSTR Id, IPin **ppPin); + STDMETHODIMP EnumPins(IEnumPins **ppEnum) override; + STDMETHODIMP FindPin(LPCWSTR Id, IPin **ppPin) override; - STDMETHODIMP JoinFilterGraph(IFilterGraph *pGraph, LPCWSTR pName); + STDMETHODIMP JoinFilterGraph(IFilterGraph *pGraph, LPCWSTR pName) override; - STDMETHODIMP QueryFilterInfo(FILTER_INFO *pInfo); - STDMETHODIMP QueryVendorInfo(LPWSTR *pVendorInfo); + STDMETHODIMP QueryFilterInfo(FILTER_INFO *pInfo) override; + STDMETHODIMP QueryVendorInfo(LPWSTR *pVendorInfo) override; protected: QMutex m_mutex; diff --git a/src/plugins/directshow/common/directshoweventloop.cpp b/src/plugins/directshow/common/directshoweventloop.cpp index ef85c0429..fbc7b8cee 100644 --- a/src/plugins/directshow/common/directshoweventloop.cpp +++ b/src/plugins/directshow/common/directshoweventloop.cpp @@ -46,6 +46,7 @@ QT_BEGIN_NAMESPACE class DirectShowPostedEvent { + Q_DISABLE_COPY(DirectShowPostedEvent) public: DirectShowPostedEvent(QObject *receiver, QEvent *event) : receiver(receiver) diff --git a/src/plugins/directshow/common/directshoweventloop.h b/src/plugins/directshow/common/directshoweventloop.h index 609e53134..a29274b7b 100644 --- a/src/plugins/directshow/common/directshoweventloop.h +++ b/src/plugins/directshow/common/directshoweventloop.h @@ -55,7 +55,7 @@ class DirectShowEventLoop : public QObject Q_OBJECT public: DirectShowEventLoop(QObject *parent = 0); - ~DirectShowEventLoop(); + ~DirectShowEventLoop() override; void wait(QMutex *mutex); void wake(); @@ -63,7 +63,7 @@ public: void postEvent(QObject *object, QEvent *event); protected: - void customEvent(QEvent *event); + void customEvent(QEvent *event) override; private: void processEvents(); diff --git a/src/plugins/directshow/common/directshowmediatype.cpp b/src/plugins/directshow/common/directshowmediatype.cpp index 65882806c..b2a514609 100644 --- a/src/plugins/directshow/common/directshowmediatype.cpp +++ b/src/plugins/directshow/common/directshowmediatype.cpp @@ -98,7 +98,7 @@ DirectShowMediaType::DirectShowMediaType(const DirectShowMediaType &other) copy(&mediaType, &other.mediaType); } -DirectShowMediaType::DirectShowMediaType(DirectShowMediaType &&other) +DirectShowMediaType::DirectShowMediaType(DirectShowMediaType &&other) noexcept : DirectShowMediaType() { move(&mediaType, other.mediaType); @@ -110,7 +110,7 @@ DirectShowMediaType &DirectShowMediaType::operator=(const DirectShowMediaType &o return *this; } -DirectShowMediaType &DirectShowMediaType::operator=(DirectShowMediaType &&other) +DirectShowMediaType &DirectShowMediaType::operator=(DirectShowMediaType &&other) noexcept { move(&mediaType, other.mediaType); return *this; diff --git a/src/plugins/directshow/common/directshowmediatype.h b/src/plugins/directshow/common/directshowmediatype.h index 7f495f3b2..ee44329a5 100644 --- a/src/plugins/directshow/common/directshowmediatype.h +++ b/src/plugins/directshow/common/directshowmediatype.h @@ -54,13 +54,13 @@ class DirectShowMediaType public: DirectShowMediaType(); DirectShowMediaType(const DirectShowMediaType &other); - DirectShowMediaType(DirectShowMediaType &&other); + DirectShowMediaType(DirectShowMediaType &&other) noexcept; explicit DirectShowMediaType(const AM_MEDIA_TYPE &type); explicit DirectShowMediaType(AM_MEDIA_TYPE &&type); ~DirectShowMediaType() { clear(mediaType); } DirectShowMediaType &operator =(const DirectShowMediaType &other); - DirectShowMediaType &operator =(DirectShowMediaType &&other); + DirectShowMediaType &operator =(DirectShowMediaType &&other) noexcept; void clear() { clear(mediaType); } diff --git a/src/plugins/directshow/common/directshowpin.cpp b/src/plugins/directshow/common/directshowpin.cpp index 65b54b8e9..99304bcf1 100644 --- a/src/plugins/directshow/common/directshowpin.cpp +++ b/src/plugins/directshow/common/directshowpin.cpp @@ -56,10 +56,7 @@ DirectShowPin::DirectShowPin(DirectShowBaseFilter *filter, const QString &name, { } -DirectShowPin::~DirectShowPin() -{ - -} +DirectShowPin::~DirectShowPin() = default; HRESULT DirectShowPin::Connect(IPin *pReceivePin, const AM_MEDIA_TYPE *pmt) { @@ -403,9 +400,7 @@ DirectShowOutputPin::DirectShowOutputPin(DirectShowBaseFilter *filter, const QSt } -DirectShowOutputPin::~DirectShowOutputPin() -{ -} +DirectShowOutputPin::~DirectShowOutputPin() = default; HRESULT DirectShowOutputPin::completeConnection(IPin *pin) { @@ -511,10 +506,7 @@ DirectShowInputPin::DirectShowInputPin(DirectShowBaseFilter *filter, const QStri ZeroMemory(&m_sampleProperties, sizeof(m_sampleProperties)); } -DirectShowInputPin::~DirectShowInputPin() -{ - -} +DirectShowInputPin::~DirectShowInputPin() = default; HRESULT DirectShowInputPin::connectionEnded() { diff --git a/src/plugins/directshow/common/directshowpin.h b/src/plugins/directshow/common/directshowpin.h index 9598cf525..5e513d002 100644 --- a/src/plugins/directshow/common/directshowpin.h +++ b/src/plugins/directshow/common/directshowpin.h @@ -68,30 +68,30 @@ public: virtual HRESULT setActive(bool active); // IPin - STDMETHODIMP Connect(IPin *pReceivePin, const AM_MEDIA_TYPE *pmt); - STDMETHODIMP ReceiveConnection(IPin *pConnector, const AM_MEDIA_TYPE *pmt); - STDMETHODIMP Disconnect(); - STDMETHODIMP ConnectedTo(IPin **ppPin); + STDMETHODIMP Connect(IPin *pReceivePin, const AM_MEDIA_TYPE *pmt) override; + STDMETHODIMP ReceiveConnection(IPin *pConnector, const AM_MEDIA_TYPE *pmt) override; + STDMETHODIMP Disconnect() override; + STDMETHODIMP ConnectedTo(IPin **ppPin) override; - STDMETHODIMP ConnectionMediaType(AM_MEDIA_TYPE *pmt); + STDMETHODIMP ConnectionMediaType(AM_MEDIA_TYPE *pmt) override; - STDMETHODIMP QueryPinInfo(PIN_INFO *pInfo); - STDMETHODIMP QueryId(LPWSTR *Id); + STDMETHODIMP QueryPinInfo(PIN_INFO *pInfo) override; + STDMETHODIMP QueryId(LPWSTR *Id) override; - STDMETHODIMP QueryAccept(const AM_MEDIA_TYPE *pmt); + STDMETHODIMP QueryAccept(const AM_MEDIA_TYPE *pmt) override; - STDMETHODIMP EnumMediaTypes(IEnumMediaTypes **ppEnum); + STDMETHODIMP EnumMediaTypes(IEnumMediaTypes **ppEnum) override; - STDMETHODIMP QueryInternalConnections(IPin **apPin, ULONG *nPin); + STDMETHODIMP QueryInternalConnections(IPin **apPin, ULONG *nPin) override; - STDMETHODIMP EndOfStream(); + STDMETHODIMP EndOfStream() override; - STDMETHODIMP BeginFlush(); - STDMETHODIMP EndFlush(); + STDMETHODIMP BeginFlush() override; + STDMETHODIMP EndFlush() override; - STDMETHODIMP NewSegment(REFERENCE_TIME tStart, REFERENCE_TIME tStop, double dRate); + STDMETHODIMP NewSegment(REFERENCE_TIME tStart, REFERENCE_TIME tStop, double dRate) override; - STDMETHODIMP QueryDirection(PIN_DIRECTION *pPinDir); + STDMETHODIMP QueryDirection(PIN_DIRECTION *pPinDir) override; protected: DirectShowPin(DirectShowBaseFilter *filter, const QString &name, PIN_DIRECTION direction); @@ -140,27 +140,28 @@ class DirectShowInputPin : public DirectShowPin , public IMemInputPin { public: - virtual ~DirectShowInputPin(); + ~DirectShowInputPin() override; const AM_SAMPLE2_PROPERTIES *currentSampleProperties() const { return &m_sampleProperties; } // DirectShowPin - HRESULT connectionEnded(); - HRESULT setActive(bool active); + HRESULT connectionEnded() override; + HRESULT setActive(bool active) override; // IPin - STDMETHODIMP EndOfStream(); - STDMETHODIMP BeginFlush(); - STDMETHODIMP EndFlush(); + STDMETHODIMP EndOfStream() override; + STDMETHODIMP BeginFlush() override; + STDMETHODIMP EndFlush() override; // IMemInputPin - STDMETHODIMP GetAllocator(IMemAllocator **ppAllocator); - STDMETHODIMP NotifyAllocator(IMemAllocator *pAllocator, BOOL bReadOnly); - STDMETHODIMP GetAllocatorRequirements(ALLOCATOR_PROPERTIES *pProps); - - STDMETHODIMP Receive(IMediaSample *pSample); - STDMETHODIMP ReceiveMultiple(IMediaSample **pSamples, long nSamples, long *nSamplesProcessed); - STDMETHODIMP ReceiveCanBlock(); + STDMETHODIMP GetAllocator(IMemAllocator **ppAllocator) override; + STDMETHODIMP NotifyAllocator(IMemAllocator *pAllocator, BOOL bReadOnly) override; + STDMETHODIMP GetAllocatorRequirements(ALLOCATOR_PROPERTIES *pProps) override; + + STDMETHODIMP Receive(IMediaSample *pSample) override; + STDMETHODIMP ReceiveMultiple(IMediaSample **pSamples, long nSamples, + long *nSamplesProcessed) override; + STDMETHODIMP ReceiveCanBlock() override; protected: DirectShowInputPin(DirectShowBaseFilter *filter, const QString &name); diff --git a/src/plugins/directshow/common/directshowsamplegrabber.cpp b/src/plugins/directshow/common/directshowsamplegrabber.cpp index fb95370ca..fec59b538 100644 --- a/src/plugins/directshow/common/directshowsamplegrabber.cpp +++ b/src/plugins/directshow/common/directshowsamplegrabber.cpp @@ -51,20 +51,21 @@ static const CLSID cLSID_SampleGrabber = { 0xC1F400A0, 0x3F08, 0x11d3, { 0x9F, 0 class SampleGrabberCallbackPrivate : public ISampleGrabberCB { + Q_DISABLE_COPY(SampleGrabberCallbackPrivate) public: explicit SampleGrabberCallbackPrivate(DirectShowSampleGrabber *grabber) : m_ref(1) , m_grabber(grabber) { } - virtual ~SampleGrabberCallbackPrivate() { } + virtual ~SampleGrabberCallbackPrivate() = default; - STDMETHODIMP_(ULONG) AddRef() + STDMETHODIMP_(ULONG) AddRef() override { return InterlockedIncrement(&m_ref); } - STDMETHODIMP_(ULONG) Release() + STDMETHODIMP_(ULONG) Release() override { ULONG ref = InterlockedDecrement(&m_ref); if (ref == 0) @@ -72,7 +73,7 @@ public: return ref; } - STDMETHODIMP QueryInterface(REFIID riid, void **ppvObject) + STDMETHODIMP QueryInterface(REFIID riid, void **ppvObject) override { if (NULL == ppvObject) return E_POINTER; @@ -89,7 +90,7 @@ public: return E_NOTIMPL; } - STDMETHODIMP SampleCB(double time, IMediaSample *mediaSample) + STDMETHODIMP SampleCB(double time, IMediaSample *mediaSample) override { if (m_grabber) Q_EMIT m_grabber->sampleAvailable(time, mediaSample); @@ -97,7 +98,7 @@ public: return S_OK; } - STDMETHODIMP BufferCB(double time, BYTE *buffer, long bufferLen) + STDMETHODIMP BufferCB(double time, BYTE *buffer, long bufferLen) override { if (m_grabber) { // Deep copy, the data might be modified or freed after the callback returns diff --git a/src/plugins/directshow/common/directshowvideobuffer.h b/src/plugins/directshow/common/directshowvideobuffer.h index 85e02b53d..a85a3ca34 100644 --- a/src/plugins/directshow/common/directshowvideobuffer.h +++ b/src/plugins/directshow/common/directshowvideobuffer.h @@ -50,14 +50,14 @@ class DirectShowVideoBuffer : public QAbstractVideoBuffer { public: DirectShowVideoBuffer(IMediaSample *sample, int bytesPerLine); - ~DirectShowVideoBuffer(); + ~DirectShowVideoBuffer() override; IMediaSample *sample() { return m_sample; } - uchar *map(MapMode mode, int *numBytes, int *bytesPerLine); - void unmap(); + uchar *map(MapMode mode, int *numBytes, int *bytesPerLine) override; + void unmap() override; - MapMode mapMode() const; + MapMode mapMode() const override; private: IMediaSample *m_sample; -- cgit v1.2.3