diff options
author | Yoann Lopes <yoann.lopes@theqtcompany.com> | 2016-01-29 15:18:33 +0100 |
---|---|---|
committer | Yoann Lopes <yoann.lopes@qt.io> | 2016-07-06 14:14:23 +0000 |
commit | 631b89ddde44dfc8b72b904d8c41368b2c02d037 (patch) | |
tree | 572f74f306ef76cffac8a6ea47b90dbb836d95a8 /src/plugins/directshow/player/directshowiosource.cpp | |
parent | c2f15b6071778c776b61d8807251a69adb96882e (diff) |
DirectShow: refactor custom renderer filter
Refactor out some of the filter and pin logic into the
DirectShowBaseFilter and DirectShowPin abstract classes.
This will avoid code duplication when implementing the probe
filter. The existing source filter (for qrc files) can also be
refactored to use these abstract classes.
Change-Id: Iaf141472dea82579ad085b3318624f9a57aa46d8
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
Diffstat (limited to 'src/plugins/directshow/player/directshowiosource.cpp')
-rw-r--r-- | src/plugins/directshow/player/directshowiosource.cpp | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/src/plugins/directshow/player/directshowiosource.cpp b/src/plugins/directshow/player/directshowiosource.cpp index 6dee14fb0..9e71f34d0 100644 --- a/src/plugins/directshow/player/directshowiosource.cpp +++ b/src/plugins/directshow/player/directshowiosource.cpp @@ -41,6 +41,7 @@ #include "directshowglobal.h" #include "directshowmediatype.h" +#include "directshowmediatypeenum.h" #include "directshowpinenum.h" #include <QtCore/qcoreapplication.h> @@ -64,8 +65,6 @@ DirectShowIOSource::DirectShowIOSource(DirectShowEventLoop *loop) , m_peerPin(0) , m_pinId(QLatin1String("Data")) { - QVector<AM_MEDIA_TYPE> mediaTypes; - AM_MEDIA_TYPE type = { MEDIATYPE_Stream, // majortype @@ -83,10 +82,8 @@ DirectShowIOSource::DirectShowIOSource(DirectShowEventLoop *loop) for (int i = 0; i < count; ++i) { type.subtype = directshow_subtypes[i]; - mediaTypes.append(type); + m_supportedMediaTypes.append(type); } - - setMediaTypes(mediaTypes); } DirectShowIOSource::~DirectShowIOSource() @@ -566,7 +563,7 @@ HRESULT DirectShowIOSource::EnumMediaTypes(IEnumMediaTypes **ppEnum) if (!ppEnum) { return E_POINTER; } else { - *ppEnum = createMediaTypeEnum(); + *ppEnum = new DirectShowMediaTypeEnum(m_supportedMediaTypes); return S_OK; } |