summaryrefslogtreecommitdiff
path: root/src/plugins/wmf/player
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/wmf/player')
-rw-r--r--src/plugins/wmf/player/evr9videowindowcontrol.cpp367
-rw-r--r--src/plugins/wmf/player/mfevrvideowindowcontrol.cpp85
-rw-r--r--src/plugins/wmf/player/mfevrvideowindowcontrol.h (renamed from src/plugins/wmf/player/evr9videowindowcontrol.h)65
-rw-r--r--src/plugins/wmf/player/mfplayerservice.cpp22
-rw-r--r--src/plugins/wmf/player/mfplayerservice.h12
-rw-r--r--src/plugins/wmf/player/mfplayersession.cpp12
-rw-r--r--src/plugins/wmf/player/mfplayersession.h2
-rw-r--r--src/plugins/wmf/player/player.pri11
8 files changed, 107 insertions, 469 deletions
diff --git a/src/plugins/wmf/player/evr9videowindowcontrol.cpp b/src/plugins/wmf/player/evr9videowindowcontrol.cpp
deleted file mode 100644
index e94918dba..000000000
--- a/src/plugins/wmf/player/evr9videowindowcontrol.cpp
+++ /dev/null
@@ -1,367 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2015 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
-**
-** This file is part of the Qt Mobility Components.
-**
-** $QT_BEGIN_LICENSE:LGPL21$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 or version 3 as published by the Free
-** Software Foundation and appearing in the file LICENSE.LGPLv21 and
-** LICENSE.LGPLv3 included in the packaging of this file. Please review the
-** following information to ensure the GNU Lesser General Public License
-** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** As a special exception, The Qt Company gives you certain additional
-** rights. These rights are described in The Qt Company LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "evr9videowindowcontrol.h"
-#include <QtWidgets/qwidget.h>
-#include <QtCore/qdebug.h>
-#include <QtCore/qglobal.h>
-
-Evr9VideoWindowControl::Evr9VideoWindowControl(QObject *parent)
- : QVideoWindowControl(parent)
- , m_windowId(0)
- , m_dirtyValues(0)
- , m_aspectRatioMode(Qt::KeepAspectRatio)
- , m_brightness(0)
- , m_contrast(0)
- , m_hue(0)
- , m_saturation(0)
- , m_fullScreen(false)
- , m_currentActivate(0)
- , m_evrSink(0)
- , m_displayControl(0)
- , m_processor(0)
-{
-}
-
-Evr9VideoWindowControl::~Evr9VideoWindowControl()
-{
- clear();
-}
-
-void Evr9VideoWindowControl::clear()
-{
- if (m_processor)
- m_processor->Release();
- if (m_displayControl)
- m_displayControl->Release();
- if (m_evrSink)
- m_evrSink->Release();
- if (m_currentActivate) {
- m_currentActivate->ShutdownObject();
- m_currentActivate->Release();
- }
-
- m_processor = NULL;
- m_displayControl = NULL;
- m_evrSink = NULL;
- m_currentActivate = NULL;
-}
-
-void Evr9VideoWindowControl::releaseActivate()
-{
- clear();
-}
-
-WId Evr9VideoWindowControl::winId() const
-{
- return m_windowId;
-}
-
-void Evr9VideoWindowControl::setWinId(WId id)
-{
- m_windowId = id;
-
- if (QWidget *widget = QWidget::find(m_windowId)) {
- const QColor color = widget->palette().color(QPalette::Window);
-
- m_windowColor = RGB(color.red(), color.green(), color.blue());
- }
-
- if (m_displayControl) {
- m_displayControl->SetVideoWindow(HWND(m_windowId));
- }
-}
-
-QRect Evr9VideoWindowControl::displayRect() const
-{
- return m_displayRect;
-}
-
-void Evr9VideoWindowControl::setDisplayRect(const QRect &rect)
-{
- m_displayRect = rect;
-
- if (m_displayControl) {
- RECT displayRect = { rect.left(), rect.top(), rect.right() + 1, rect.bottom() + 1 };
- QSize sourceSize = nativeSize();
-
- RECT sourceRect = { 0, 0, sourceSize.width(), sourceSize.height() };
-
- if (m_aspectRatioMode == Qt::KeepAspectRatioByExpanding) {
- QSize clippedSize = rect.size();
- clippedSize.scale(sourceRect.right, sourceRect.bottom, Qt::KeepAspectRatio);
-
- sourceRect.left = (sourceRect.right - clippedSize.width()) / 2;
- sourceRect.top = (sourceRect.bottom - clippedSize.height()) / 2;
- sourceRect.right = sourceRect.left + clippedSize.width();
- sourceRect.bottom = sourceRect.top + clippedSize.height();
- }
-
- if (sourceSize.width() > 0 && sourceSize.height() > 0) {
- MFVideoNormalizedRect sourceNormRect;
- sourceNormRect.left = float(sourceRect.left) / float(sourceRect.right);
- sourceNormRect.top = float(sourceRect.top) / float(sourceRect.bottom);
- sourceNormRect.right = float(sourceRect.right) / float(sourceRect.right);
- sourceNormRect.bottom = float(sourceRect.bottom) / float(sourceRect.bottom);
- m_displayControl->SetVideoPosition(&sourceNormRect, &displayRect);
- } else {
- m_displayControl->SetVideoPosition(NULL, &displayRect);
- }
- }
-}
-
-bool Evr9VideoWindowControl::isFullScreen() const
-{
- return m_fullScreen;
-}
-
-void Evr9VideoWindowControl::setFullScreen(bool fullScreen)
-{
- if (m_fullScreen == fullScreen)
- return;
- emit fullScreenChanged(m_fullScreen = fullScreen);
-}
-
-void Evr9VideoWindowControl::repaint()
-{
- QSize size = nativeSize();
- if (size.width() > 0 && size.height() > 0
- && m_displayControl
- && SUCCEEDED(m_displayControl->RepaintVideo())) {
- return;
- }
-
- PAINTSTRUCT paint;
- if (HDC dc = ::BeginPaint(HWND(m_windowId), &paint)) {
- HPEN pen = ::CreatePen(PS_SOLID, 1, m_windowColor);
- HBRUSH brush = ::CreateSolidBrush(m_windowColor);
- ::SelectObject(dc, pen);
- ::SelectObject(dc, brush);
-
- ::Rectangle(
- dc,
- m_displayRect.left(),
- m_displayRect.top(),
- m_displayRect.right() + 1,
- m_displayRect.bottom() + 1);
-
- ::DeleteObject(pen);
- ::DeleteObject(brush);
- ::EndPaint(HWND(m_windowId), &paint);
- }
-}
-
-QSize Evr9VideoWindowControl::nativeSize() const
-{
- QSize size;
- if (m_displayControl) {
- SIZE sourceSize;
- if (SUCCEEDED(m_displayControl->GetNativeVideoSize(&sourceSize, 0)))
- size = QSize(sourceSize.cx, sourceSize.cy);
- }
- return size;
-}
-
-Qt::AspectRatioMode Evr9VideoWindowControl::aspectRatioMode() const
-{
- return m_aspectRatioMode;
-}
-
-void Evr9VideoWindowControl::setAspectRatioMode(Qt::AspectRatioMode mode)
-{
- m_aspectRatioMode = mode;
-
- if (m_displayControl) {
- switch (mode) {
- case Qt::IgnoreAspectRatio:
- //comment from MSDN: Do not maintain the aspect ratio of the video. Stretch the video to fit the output rectangle.
- m_displayControl->SetAspectRatioMode(MFVideoARMode_None);
- break;
- case Qt::KeepAspectRatio:
- //comment from MSDN: Preserve the aspect ratio of the video by letterboxing or within the output rectangle.
- m_displayControl->SetAspectRatioMode(MFVideoARMode_PreservePicture);
- break;
- case Qt::KeepAspectRatioByExpanding:
- //for this mode, more adjustment will be done in setDisplayRect
- m_displayControl->SetAspectRatioMode(MFVideoARMode_PreservePicture);
- break;
- default:
- break;
- }
- setDisplayRect(m_displayRect);
- }
-}
-
-int Evr9VideoWindowControl::brightness() const
-{
- return m_brightness;
-}
-
-void Evr9VideoWindowControl::setBrightness(int brightness)
-{
- if (m_brightness == brightness)
- return;
-
- m_brightness = brightness;
-
- m_dirtyValues |= DXVA2_ProcAmp_Brightness;
-
- setProcAmpValues();
-
- emit brightnessChanged(brightness);
-}
-
-int Evr9VideoWindowControl::contrast() const
-{
- return m_contrast;
-}
-
-void Evr9VideoWindowControl::setContrast(int contrast)
-{
- if (m_contrast == contrast)
- return;
-
- m_contrast = contrast;
-
- m_dirtyValues |= DXVA2_ProcAmp_Contrast;
-
- setProcAmpValues();
-
- emit contrastChanged(contrast);
-}
-
-int Evr9VideoWindowControl::hue() const
-{
- return m_hue;
-}
-
-void Evr9VideoWindowControl::setHue(int hue)
-{
- if (m_hue == hue)
- return;
-
- m_hue = hue;
-
- m_dirtyValues |= DXVA2_ProcAmp_Hue;
-
- setProcAmpValues();
-
- emit hueChanged(hue);
-}
-
-int Evr9VideoWindowControl::saturation() const
-{
- return m_saturation;
-}
-
-void Evr9VideoWindowControl::setSaturation(int saturation)
-{
- if (m_saturation == saturation)
- return;
-
- m_saturation = saturation;
-
- m_dirtyValues |= DXVA2_ProcAmp_Saturation;
-
- setProcAmpValues();
-
- emit saturationChanged(saturation);
-}
-
-IMFActivate* Evr9VideoWindowControl::createActivate()
-{
- clear();
-
- if (FAILED(MFCreateVideoRendererActivate(0, &m_currentActivate))) {
- qWarning() << "Failed to create evr video renderer activate!";
- return 0;
- }
- if (FAILED(m_currentActivate->ActivateObject(IID_IMFMediaSink, (LPVOID*)(&m_evrSink)))) {
- qWarning() << "Failed to activate evr media sink!";
- return 0;
- }
- if (FAILED(MFGetService(m_evrSink, MR_VIDEO_RENDER_SERVICE, IID_PPV_ARGS(&m_displayControl)))) {
- qWarning() << "Failed to get display control from evr media sink!";
- return 0;
- }
- if (FAILED(MFGetService(m_evrSink, MR_VIDEO_MIXER_SERVICE, IID_PPV_ARGS(&m_processor)))) {
- qWarning() << "Failed to get video processor from evr media sink!";
- return 0;
- }
-
- setWinId(m_windowId);
- setDisplayRect(m_displayRect);
- setAspectRatioMode(m_aspectRatioMode);
- m_dirtyValues = DXVA2_ProcAmp_Brightness | DXVA2_ProcAmp_Contrast | DXVA2_ProcAmp_Hue | DXVA2_ProcAmp_Saturation;
-
- return m_currentActivate;
-}
-
-void Evr9VideoWindowControl::setProcAmpValues()
-{
- if (m_processor) {
- DXVA2_ProcAmpValues values;
- if (m_dirtyValues & DXVA2_ProcAmp_Brightness) {
- values.Brightness = scaleProcAmpValue(DXVA2_ProcAmp_Brightness, m_brightness);
- }
- if (m_dirtyValues & DXVA2_ProcAmp_Contrast) {
- values.Contrast = scaleProcAmpValue(DXVA2_ProcAmp_Contrast, m_contrast);
- }
- if (m_dirtyValues & DXVA2_ProcAmp_Hue) {
- values.Hue = scaleProcAmpValue(DXVA2_ProcAmp_Hue, m_hue);
- }
- if (m_dirtyValues & DXVA2_ProcAmp_Saturation) {
- values.Saturation = scaleProcAmpValue(DXVA2_ProcAmp_Saturation, m_saturation);
- }
-
- if (SUCCEEDED(m_processor->SetProcAmpValues(m_dirtyValues, &values))) {
- m_dirtyValues = 0;
- }
- }
-}
-
-DXVA2_Fixed32 Evr9VideoWindowControl::scaleProcAmpValue(DWORD prop, int value) const
-{
- float scaledValue = 0.0;
-
- DXVA2_ValueRange range;
- if (SUCCEEDED(m_processor->GetProcAmpRange(prop, &range))) {
- scaledValue = DXVA2FixedToFloat(range.DefaultValue);
- if (value > 0)
- scaledValue += float(value) * (DXVA2FixedToFloat(range.MaxValue) - DXVA2FixedToFloat(range.DefaultValue)) / 100;
- else if (value < 0)
- scaledValue -= float(value) * (DXVA2FixedToFloat(range.MinValue) - DXVA2FixedToFloat(range.DefaultValue)) / 100;
- }
-
- return DXVA2FloatToFixed(scaledValue);
-}
diff --git a/src/plugins/wmf/player/mfevrvideowindowcontrol.cpp b/src/plugins/wmf/player/mfevrvideowindowcontrol.cpp
new file mode 100644
index 000000000..404f38125
--- /dev/null
+++ b/src/plugins/wmf/player/mfevrvideowindowcontrol.cpp
@@ -0,0 +1,85 @@
+/****************************************************************************
+**
+** Copyright (C) 2015 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** As a special exception, The Qt Company gives you certain additional
+** rights. These rights are described in The Qt Company LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "mfevrvideowindowcontrol.h"
+
+#include <qdebug.h>
+
+MFEvrVideoWindowControl::MFEvrVideoWindowControl(QObject *parent)
+ : EvrVideoWindowControl(parent)
+ , m_currentActivate(NULL)
+ , m_evrSink(NULL)
+{
+}
+
+MFEvrVideoWindowControl::~MFEvrVideoWindowControl()
+{
+ clear();
+}
+
+void MFEvrVideoWindowControl::clear()
+{
+ setEvr(NULL);
+
+ if (m_evrSink)
+ m_evrSink->Release();
+ if (m_currentActivate) {
+ m_currentActivate->ShutdownObject();
+ m_currentActivate->Release();
+ }
+ m_evrSink = NULL;
+ m_currentActivate = NULL;
+}
+
+IMFActivate* MFEvrVideoWindowControl::createActivate()
+{
+ clear();
+
+ if (FAILED(MFCreateVideoRendererActivate(0, &m_currentActivate))) {
+ qWarning() << "Failed to create evr video renderer activate!";
+ return NULL;
+ }
+ if (FAILED(m_currentActivate->ActivateObject(IID_IMFMediaSink, (LPVOID*)(&m_evrSink)))) {
+ qWarning() << "Failed to activate evr media sink!";
+ return NULL;
+ }
+ if (!setEvr(m_evrSink))
+ return NULL;
+
+ return m_currentActivate;
+}
+
+void MFEvrVideoWindowControl::releaseActivate()
+{
+ clear();
+}
diff --git a/src/plugins/wmf/player/evr9videowindowcontrol.h b/src/plugins/wmf/player/mfevrvideowindowcontrol.h
index 05486f987..e5a38f27d 100644
--- a/src/plugins/wmf/player/evr9videowindowcontrol.h
+++ b/src/plugins/wmf/player/mfevrvideowindowcontrol.h
@@ -3,7 +3,7 @@
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
-** This file is part of the Qt Mobility Components.
+** This file is part of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL21$
** Commercial License Usage
@@ -31,76 +31,27 @@
**
****************************************************************************/
-#ifndef EVR9VIDEOWINDOWCONTROL_H
-#define EVR9VIDEOWINDOWCONTROL_H
+#ifndef MFEVRVIDEOWINDOWCONTROL_H
+#define MFEVRVIDEOWINDOWCONTROL_H
-#include "qvideowindowcontrol.h"
-
-#include <Mfidl.h>
-#include <d3d9.h>
-#include <Evr9.h>
+#include "evrvideowindowcontrol.h"
QT_USE_NAMESPACE
-class Evr9VideoWindowControl : public QVideoWindowControl
+class MFEvrVideoWindowControl : public EvrVideoWindowControl
{
- Q_OBJECT
public:
- Evr9VideoWindowControl(QObject *parent = 0);
- ~Evr9VideoWindowControl();
-
- WId winId() const;
- void setWinId(WId id);
-
- QRect displayRect() const;
- void setDisplayRect(const QRect &rect);
-
- bool isFullScreen() const;
- void setFullScreen(bool fullScreen);
-
- void repaint();
-
- QSize nativeSize() const;
-
- Qt::AspectRatioMode aspectRatioMode() const;
- void setAspectRatioMode(Qt::AspectRatioMode mode);
-
- int brightness() const;
- void setBrightness(int brightness);
-
- int contrast() const;
- void setContrast(int contrast);
-
- int hue() const;
- void setHue(int hue);
-
- int saturation() const;
- void setSaturation(int saturation);
+ MFEvrVideoWindowControl(QObject *parent = 0);
+ ~MFEvrVideoWindowControl();
IMFActivate* createActivate();
void releaseActivate();
- void setProcAmpValues();
-
private:
void clear();
- DXVA2_Fixed32 scaleProcAmpValue(DWORD prop, int value) const;
-
- WId m_windowId;
- COLORREF m_windowColor;
- DWORD m_dirtyValues;
- Qt::AspectRatioMode m_aspectRatioMode;
- QRect m_displayRect;
- int m_brightness;
- int m_contrast;
- int m_hue;
- int m_saturation;
- bool m_fullScreen;
IMFActivate *m_currentActivate;
IMFMediaSink *m_evrSink;
- IMFVideoDisplayControl *m_displayControl;
- IMFVideoProcessor *m_processor;
};
-#endif
+#endif // MFEVRVIDEOWINDOWCONTROL_H
diff --git a/src/plugins/wmf/player/mfplayerservice.cpp b/src/plugins/wmf/player/mfplayerservice.cpp
index 4e88b0498..99c6abb3e 100644
--- a/src/plugins/wmf/player/mfplayerservice.cpp
+++ b/src/plugins/wmf/player/mfplayerservice.cpp
@@ -36,9 +36,7 @@
#include <QtCore/qdebug.h>
#include "mfplayercontrol.h"
-#if defined(HAVE_WIDGETS) && !defined(Q_WS_SIMULATOR)
-#include "evr9videowindowcontrol.h"
-#endif
+#include "mfevrvideowindowcontrol.h"
#include "mfvideorenderercontrol.h"
#include "mfaudioendpointcontrol.h"
#include "mfaudioprobecontrol.h"
@@ -50,9 +48,7 @@
MFPlayerService::MFPlayerService(QObject *parent)
: QMediaService(parent)
, m_session(0)
-#if defined(HAVE_WIDGETS) && !defined(Q_WS_SIMULATOR)
, m_videoWindowControl(0)
-#endif
, m_videoRendererControl(0)
{
m_audioEndpointControl = new MFAudioEndpointControl(this);
@@ -65,10 +61,8 @@ MFPlayerService::~MFPlayerService()
{
m_session->close();
-#if defined(HAVE_WIDGETS) && !defined(Q_WS_SIMULATOR)
if (m_videoWindowControl)
delete m_videoWindowControl;
-#endif
if (m_videoRendererControl)
delete m_videoRendererControl;
@@ -85,21 +79,15 @@ QMediaControl* MFPlayerService::requestControl(const char *name)
} else if (qstrcmp(name, QMetaDataReaderControl_iid) == 0) {
return m_metaDataControl;
} else if (qstrcmp(name, QVideoRendererControl_iid) == 0) {
-#if defined(HAVE_WIDGETS) && !defined(Q_WS_SIMULATOR)
if (!m_videoRendererControl && !m_videoWindowControl) {
-#else
- if (!m_videoRendererControl) {
-#endif
m_videoRendererControl = new MFVideoRendererControl;
return m_videoRendererControl;
}
-#if defined(HAVE_WIDGETS) && !defined(Q_WS_SIMULATOR)
} else if (qstrcmp(name, QVideoWindowControl_iid) == 0) {
if (!m_videoRendererControl && !m_videoWindowControl) {
- m_videoWindowControl = new Evr9VideoWindowControl;
+ m_videoWindowControl = new MFEvrVideoWindowControl;
return m_videoWindowControl;
}
-#endif
} else if (qstrcmp(name,QMediaAudioProbeControl_iid) == 0) {
if (m_session) {
MFAudioProbeControl *probe = new MFAudioProbeControl(this);
@@ -129,12 +117,10 @@ void MFPlayerService::releaseControl(QMediaControl *control)
delete m_videoRendererControl;
m_videoRendererControl = 0;
return;
-#if defined(HAVE_WIDGETS) && !defined(Q_WS_SIMULATOR)
} else if (control == m_videoWindowControl) {
delete m_videoWindowControl;
m_videoWindowControl = 0;
return;
-#endif
}
MFAudioProbeControl* audioProbe = qobject_cast<MFAudioProbeControl*>(control);
@@ -164,12 +150,10 @@ MFVideoRendererControl* MFPlayerService::videoRendererControl() const
return m_videoRendererControl;
}
-#if defined(HAVE_WIDGETS) && !defined(Q_WS_SIMULATOR)
-Evr9VideoWindowControl* MFPlayerService::videoWindowControl() const
+MFEvrVideoWindowControl* MFPlayerService::videoWindowControl() const
{
return m_videoWindowControl;
}
-#endif
MFMetaDataControl* MFPlayerService::metaDataControl() const
{
diff --git a/src/plugins/wmf/player/mfplayerservice.h b/src/plugins/wmf/player/mfplayerservice.h
index 62eb6b640..b3db70799 100644
--- a/src/plugins/wmf/player/mfplayerservice.h
+++ b/src/plugins/wmf/player/mfplayerservice.h
@@ -48,9 +48,7 @@ QT_END_NAMESPACE
QT_USE_NAMESPACE
-#if defined(HAVE_WIDGETS) && !defined(Q_WS_SIMULATOR)
-class Evr9VideoWindowControl;
-#endif
+class MFEvrVideoWindowControl;
class MFAudioEndpointControl;
class MFVideoRendererControl;
class MFPlayerControl;
@@ -69,18 +67,14 @@ public:
MFAudioEndpointControl* audioEndpointControl() const;
MFVideoRendererControl* videoRendererControl() const;
-#if defined(HAVE_WIDGETS) && !defined(Q_WS_SIMULATOR)
- Evr9VideoWindowControl* videoWindowControl() const;
-#endif
+ MFEvrVideoWindowControl* videoWindowControl() const;
MFMetaDataControl* metaDataControl() const;
private:
MFPlayerSession *m_session;
MFVideoRendererControl *m_videoRendererControl;
MFAudioEndpointControl *m_audioEndpointControl;
-#if defined(HAVE_WIDGETS) && !defined(Q_WS_SIMULATOR)
- Evr9VideoWindowControl *m_videoWindowControl;
-#endif
+ MFEvrVideoWindowControl *m_videoWindowControl;
MFPlayerControl *m_player;
MFMetaDataControl *m_metaDataControl;
};
diff --git a/src/plugins/wmf/player/mfplayersession.cpp b/src/plugins/wmf/player/mfplayersession.cpp
index 283853def..e4c498b76 100644
--- a/src/plugins/wmf/player/mfplayersession.cpp
+++ b/src/plugins/wmf/player/mfplayersession.cpp
@@ -43,9 +43,7 @@
#include <QtCore/qbuffer.h>
#include "mfplayercontrol.h"
-#if defined(HAVE_WIDGETS) && !defined(Q_WS_SIMULATOR)
-#include "evr9videowindowcontrol.h"
-#endif
+#include "mfevrvideowindowcontrol.h"
#include "mfvideorenderercontrol.h"
#include "mfaudioendpointcontrol.h"
@@ -140,10 +138,8 @@ void MFPlayerSession::close()
if (m_playerService->videoRendererControl()) {
m_playerService->videoRendererControl()->releaseActivate();
-#if defined(HAVE_WIDGETS) && !defined(Q_WS_SIMULATOR)
} else if (m_playerService->videoWindowControl()) {
m_playerService->videoWindowControl()->releaseActivate();
-#endif
}
if (m_session)
@@ -404,10 +400,8 @@ IMFTopologyNode* MFPlayerSession::addOutputNode(IMFStreamDescriptor *streamDesc,
mediaType = Video;
if (m_playerService->videoRendererControl()) {
activate = m_playerService->videoRendererControl()->createActivate();
-#if defined(HAVE_WIDGETS) && !defined(Q_WS_SIMULATOR)
} else if (m_playerService->videoWindowControl()) {
activate = m_playerService->videoWindowControl()->createActivate();
-#endif
} else {
qWarning() << "no videoWindowControl or videoRendererControl, unable to add output node for video data";
}
@@ -1580,13 +1574,11 @@ void MFPlayerSession::handleSessionEvent(IMFMediaEvent *sessionEvent)
}
updatePendingCommands(CmdStart);
-#if defined(HAVE_WIDGETS) && !defined(Q_WS_SIMULATOR)
// playback started, we can now set again the procAmpValues if they have been
// changed previously (these are lost when loading a new media)
if (m_playerService->videoWindowControl()) {
- m_playerService->videoWindowControl()->setProcAmpValues();
+ m_playerService->videoWindowControl()->applyImageControls();
}
-#endif
break;
case MESessionStopped:
if (m_status != QMediaPlayer::EndOfMedia) {
diff --git a/src/plugins/wmf/player/mfplayersession.h b/src/plugins/wmf/player/mfplayersession.h
index effb36fa2..1d136ba55 100644
--- a/src/plugins/wmf/player/mfplayersession.h
+++ b/src/plugins/wmf/player/mfplayersession.h
@@ -57,7 +57,7 @@ QT_USE_NAMESPACE
class SourceResolver;
#ifndef Q_WS_SIMULATOR
-class Evr9VideoWindowControl;
+class EvrVideoWindowControl;
#endif
class MFAudioEndpointControl;
class MFVideoRendererControl;
diff --git a/src/plugins/wmf/player/player.pri b/src/plugins/wmf/player/player.pri
index dd5c9dc12..c24370eea 100644
--- a/src/plugins/wmf/player/player.pri
+++ b/src/plugins/wmf/player/player.pri
@@ -12,7 +12,8 @@ HEADERS += \
$$PWD/mfaudioendpointcontrol.h \
$$PWD/mfmetadatacontrol.h \
$$PWD/mfaudioprobecontrol.h \
- $$PWD/mfvideoprobecontrol.h
+ $$PWD/mfvideoprobecontrol.h \
+ $$PWD/mfevrvideowindowcontrol.h
SOURCES += \
$$PWD/mfplayerservice.cpp \
@@ -22,9 +23,7 @@ SOURCES += \
$$PWD/mfaudioendpointcontrol.cpp \
$$PWD/mfmetadatacontrol.cpp \
$$PWD/mfaudioprobecontrol.cpp \
- $$PWD/mfvideoprobecontrol.cpp
+ $$PWD/mfvideoprobecontrol.cpp \
+ $$PWD/mfevrvideowindowcontrol.cpp
-qtHaveModule(widgets):!simulator {
- HEADERS += $$PWD/evr9videowindowcontrol.h
- SOURCES += $$PWD/evr9videowindowcontrol.cpp
-}
+include($$PWD/../../common/evr.pri)