diff options
author | Liang Qi <liang.qi@theqtcompany.com> | 2016-03-21 14:26:15 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@theqtcompany.com> | 2016-03-21 14:26:22 +0100 |
commit | e757890f4a5669b396039211902224f31666725a (patch) | |
tree | bb220ff8b9d8d4a64ce5f197a4b39e3e5965da63 /src/plugins/common/evr | |
parent | caf0cbca71231dbb6403108ba41d2117d3ce6c6d (diff) | |
parent | 71a6b1b62041981f894cb2b6589fce92f137bbc4 (diff) |
Merge remote-tracking branch 'origin/5.6' into 5.7
Change-Id: Ieb1a3081907093e31e8c8b7f95993bb3b2173672
Diffstat (limited to 'src/plugins/common/evr')
-rw-r--r-- | src/plugins/common/evr/evrcustompresenter.cpp | 20 | ||||
-rw-r--r-- | src/plugins/common/evr/evrdefs.h | 4 |
2 files changed, 12 insertions, 12 deletions
diff --git a/src/plugins/common/evr/evrcustompresenter.cpp b/src/plugins/common/evr/evrcustompresenter.cpp index 9df08012a..7a26afd10 100644 --- a/src/plugins/common/evr/evrcustompresenter.cpp +++ b/src/plugins/common/evr/evrcustompresenter.cpp @@ -848,8 +848,6 @@ HRESULT EVRCustomPresenter::OnClockStart(MFTIME, LONGLONG clockStartOffset) return hr; } - startSurface(); - // Now try to get new output samples from the mixer. processOutputLoop(); @@ -897,8 +895,6 @@ HRESULT EVRCustomPresenter::OnClockStop(MFTIME) cancelFrameStep(); } - stopSurface(); - return S_OK; } @@ -1406,6 +1402,7 @@ HRESULT EVRCustomPresenter::setMediaType(IMFMediaType *mediaType) // Clearing the media type is allowed in any state (including shutdown). if (!mediaType) { + stopSurface(); qt_evr_safe_release(&m_mediaType); releaseResources(); return S_OK; @@ -1466,6 +1463,8 @@ HRESULT EVRCustomPresenter::setMediaType(IMFMediaType *mediaType) m_mediaType = mediaType; m_mediaType->AddRef(); + startSurface(); + done: if (FAILED(hr)) releaseResources(); @@ -1879,18 +1878,19 @@ float EVRCustomPresenter::getMaxRate(bool thin) bool EVRCustomPresenter::event(QEvent *e) { - if (e->type() == StartSurface) { + switch (int(e->type())) { + case StartSurface: startSurface(); return true; - } else if (e->type() == StopSurface) { + case StopSurface: stopSurface(); return true; - } else if (e->type() == PresentSample) { - PresentSampleEvent *ev = static_cast<PresentSampleEvent *>(e); - presentSample(ev->sample()); + case PresentSample: + presentSample(static_cast<PresentSampleEvent *>(e)->sample()); return true; + default: + break; } - return QObject::event(e); } diff --git a/src/plugins/common/evr/evrdefs.h b/src/plugins/common/evr/evrdefs.h index f939d01a0..f898209b8 100644 --- a/src/plugins/common/evr/evrdefs.h +++ b/src/plugins/common/evr/evrdefs.h @@ -41,12 +41,12 @@ #define EVRDEFS_H #include <d3d9.h> -#include <Evr9.h> +#include <evr9.h> #include <evr.h> #include <dxva2api.h> #include <mfapi.h> #include <mfidl.h> -#include <Mferror.h> +#include <mferror.h> extern const CLSID clsid_EnhancedVideoRenderer; extern const GUID mr_VIDEO_RENDER_SERVICE; |