diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2018-04-13 13:19:35 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2018-04-24 13:30:36 +0000 |
commit | 20e93ad5969d3dff85f0ef9e16830aee337ca075 (patch) | |
tree | f28235f63ba8a0857f9cf1e890784a104ac3e2d4 /src/plugins/directshow/common/directshowpin.h | |
parent | 6a2f332821ea3d8d4f6c11050d592aef0ad4df7f (diff) |
Fix DirectShow COM class hierarchy
Remove the class DirectShowObject. Move the ref counting code
to a macro COM_REF_MIXIN that is used for the classes that are
actually instantiated.
Fix warnings:
common/directshowpin.h(56,5): warning: 'reinterpret_cast' from class 'DirectShowPin *' to its base at non-zero offset 'IUnknown *' behaves differently from 'static_cast' [-Wreinterpret-base-class]
DIRECTSHOW_OBJECT
^~~~~~~~~~~~~~~~~
common/directshowobject.h(69,33): note: expanded from macro 'DIRECTSHOW_OBJECT'
return GetInterface(reinterpret_cast<IUnknown*>(this), ppv); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
common/directshowpin.h(56,5): note: use 'static_cast' to adjust the pointer correctly while upcasting
Task-number: QTBUG-63512
Task-number: QTBUG-64157
Change-Id: Ibef143d675cd169b78fe46ff5a0c83f6e3434487
Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Diffstat (limited to 'src/plugins/directshow/common/directshowpin.h')
-rw-r--r-- | src/plugins/directshow/common/directshowpin.h | 15 |
1 files changed, 1 insertions, 14 deletions
diff --git a/src/plugins/directshow/common/directshowpin.h b/src/plugins/directshow/common/directshowpin.h index 97e808384..ee2cbc58d 100644 --- a/src/plugins/directshow/common/directshowpin.h +++ b/src/plugins/directshow/common/directshowpin.h @@ -50,11 +50,8 @@ QT_BEGIN_NAMESPACE class DirectShowBaseFilter; -class DirectShowPin : public DirectShowObject - , public IPin +class DirectShowPin : public IPin { - DIRECTSHOW_OBJECT - public: virtual ~DirectShowPin(); @@ -70,9 +67,6 @@ public: virtual HRESULT setActive(bool active); - // DirectShowObject - HRESULT getInterface(REFIID riid, void **ppvObject); - // IPin STDMETHODIMP Connect(IPin *pReceivePin, const AM_MEDIA_TYPE *pmt); STDMETHODIMP ReceiveConnection(IPin *pConnector, const AM_MEDIA_TYPE *pmt); @@ -120,8 +114,6 @@ private: class DirectShowOutputPin : public DirectShowPin { - DIRECTSHOW_OBJECT - public: virtual ~DirectShowOutputPin(); @@ -147,16 +139,11 @@ private: class DirectShowInputPin : public DirectShowPin , public IMemInputPin { - DIRECTSHOW_OBJECT - public: virtual ~DirectShowInputPin(); const AM_SAMPLE2_PROPERTIES *currentSampleProperties() const { return &m_sampleProperties; } - // DirectShowObject - HRESULT getInterface(REFIID riid, void **ppvObject); - // DirectShowPin HRESULT connectionEnded(); HRESULT setActive(bool active); |