summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.qmake.conf2
-rw-r--r--config_help.txt1
-rw-r--r--examples/multimedia/audiodevices/audiodevices.pro2
-rw-r--r--examples/multimedia/audioinput/audioinput.pro2
-rw-r--r--examples/multimedia/audiorecorder/audiorecorder.pro2
-rw-r--r--examples/multimedia/declarative-camera/declarative-camera.pro2
-rw-r--r--examples/multimedia/shared/shared.pri (renamed from examples/shared/shared.pri)0
-rw-r--r--examples/multimedia/spectrum/app/app.pro2
-rw-r--r--examples/multimediawidgets/camera/camera.pro2
-rw-r--r--src/gsttools/gsttools.pro8
-rw-r--r--src/gsttools/qgstreamerplayercontrol.cpp (renamed from src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp)4
-rw-r--r--src/gsttools/qgstreamerplayersession.cpp (renamed from src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp)2
-rw-r--r--src/imports/audioengine/audioengine.cpp9
-rw-r--r--src/imports/multimedia/multimedia.cpp9
-rw-r--r--src/multimedia/configure.json1
-rw-r--r--src/multimedia/gsttools_headers/qgstreamerplayercontrol_p.h (renamed from src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.h)32
-rw-r--r--src/multimedia/gsttools_headers/qgstreamerplayersession_p.h (renamed from src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.h)22
-rw-r--r--src/plugins/directshow/player/directshowplayerservice.cpp14
-rw-r--r--src/plugins/directshow/player/directshowvideorenderercontrol.cpp16
-rw-r--r--src/plugins/directshow/player/player.pri2
-rw-r--r--src/plugins/gstreamer/mediaplayer/mediaplayer.pro4
-rw-r--r--src/plugins/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp2
-rw-r--r--src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp4
-rw-r--r--src/plugins/gstreamer/mediaplayer/qgstreamerstreamscontrol.cpp2
-rw-r--r--src/plugins/windowsaudio/qwindowsaudiooutput.cpp16
-rw-r--r--src/plugins/windowsaudio/qwindowsaudiooutput.h1
26 files changed, 91 insertions, 72 deletions
diff --git a/.qmake.conf b/.qmake.conf
index 76c202ab9..097d8b948 100644
--- a/.qmake.conf
+++ b/.qmake.conf
@@ -1,3 +1,3 @@
load(qt_build_config)
-MODULE_VERSION = 5.11.2
+MODULE_VERSION = 5.12.0
diff --git a/config_help.txt b/config_help.txt
index 7dd6b772f..341f53506 100644
--- a/config_help.txt
+++ b/config_help.txt
@@ -7,3 +7,4 @@ Multimedia options:
With no parameter, 1.0 is tried first, then 0.10.
-mediaplayer-backend <name> ... Select media player backend (Windows only)
Supported backends: directshow (default), wmf
+ -evr ................. Enables EVR in DirectShow and WMF [auto]
diff --git a/examples/multimedia/audiodevices/audiodevices.pro b/examples/multimedia/audiodevices/audiodevices.pro
index b5bcf844a..55657202b 100644
--- a/examples/multimedia/audiodevices/audiodevices.pro
+++ b/examples/multimedia/audiodevices/audiodevices.pro
@@ -14,4 +14,4 @@ target.path = $$[QT_INSTALL_EXAMPLES]/multimedia/audiodevices
INSTALLS += target
QT+=widgets
-include(../../shared/shared.pri)
+include(../shared/shared.pri)
diff --git a/examples/multimedia/audioinput/audioinput.pro b/examples/multimedia/audioinput/audioinput.pro
index 029ca7e0f..708d40d93 100644
--- a/examples/multimedia/audioinput/audioinput.pro
+++ b/examples/multimedia/audioinput/audioinput.pro
@@ -10,4 +10,4 @@ SOURCES = audioinput.cpp \
target.path = $$[QT_INSTALL_EXAMPLES]/multimedia/audioinput
INSTALLS += target
-include(../../shared/shared.pri)
+include(../shared/shared.pri)
diff --git a/examples/multimedia/audiorecorder/audiorecorder.pro b/examples/multimedia/audiorecorder/audiorecorder.pro
index 65eecc7b4..dfd0364a4 100644
--- a/examples/multimedia/audiorecorder/audiorecorder.pro
+++ b/examples/multimedia/audiorecorder/audiorecorder.pro
@@ -20,4 +20,4 @@ target.path = $$[QT_INSTALL_EXAMPLES]/multimedia/audiorecorder
INSTALLS += target
QT+=widgets
-include(../../shared/shared.pri)
+include(../shared/shared.pri)
diff --git a/examples/multimedia/declarative-camera/declarative-camera.pro b/examples/multimedia/declarative-camera/declarative-camera.pro
index 6dcf42a40..2d6e2e759 100644
--- a/examples/multimedia/declarative-camera/declarative-camera.pro
+++ b/examples/multimedia/declarative-camera/declarative-camera.pro
@@ -8,4 +8,4 @@ RESOURCES += declarative-camera.qrc
target.path = $$[QT_INSTALL_EXAMPLES]/multimedia/declarative-camera
INSTALLS += target
-include(../../shared/shared.pri)
+include(../shared/shared.pri)
diff --git a/examples/shared/shared.pri b/examples/multimedia/shared/shared.pri
index 26bdf73cf..26bdf73cf 100644
--- a/examples/shared/shared.pri
+++ b/examples/multimedia/shared/shared.pri
diff --git a/examples/multimedia/spectrum/app/app.pro b/examples/multimedia/spectrum/app/app.pro
index 17c850255..726ce2d3f 100644
--- a/examples/multimedia/spectrum/app/app.pro
+++ b/examples/multimedia/spectrum/app/app.pro
@@ -83,4 +83,4 @@ macx {
QMAKE_LFLAGS += -Wl,--rpath=\\\$\$ORIGIN
}
}
-include(../../../shared/shared.pri)
+include(../../shared/shared.pri)
diff --git a/examples/multimediawidgets/camera/camera.pro b/examples/multimediawidgets/camera/camera.pro
index d4f8df5c4..52c511acb 100644
--- a/examples/multimediawidgets/camera/camera.pro
+++ b/examples/multimediawidgets/camera/camera.pro
@@ -25,4 +25,4 @@ target.path = $$[QT_INSTALL_EXAMPLES]/multimediawidgets/camera
INSTALLS += target
QT+=widgets
-include(../../shared/shared.pri)
+include(../../multimedia/shared/shared.pri)
diff --git a/src/gsttools/gsttools.pro b/src/gsttools/gsttools.pro
index f5e3fd96f..ca111b3f2 100644
--- a/src/gsttools/gsttools.pro
+++ b/src/gsttools/gsttools.pro
@@ -36,7 +36,9 @@ PRIVATE_HEADERS += \
qgstreameraudioprobecontrol_p.h \
qgstreamervideowindow_p.h \
qgstreamervideooverlay_p.h \
- qgsttools_global_p.h
+ qgsttools_global_p.h \
+ qgstreamerplayersession_p.h \
+ qgstreamerplayercontrol_p.h
SOURCES += \
qgstreamerbushelper.cpp \
@@ -52,7 +54,9 @@ SOURCES += \
qgstreamervideoprobecontrol.cpp \
qgstreameraudioprobecontrol.cpp \
qgstreamervideowindow.cpp \
- qgstreamervideooverlay.cpp
+ qgstreamervideooverlay.cpp \
+ qgstreamerplayersession.cpp \
+ qgstreamerplayercontrol.cpp
qtHaveModule(widgets) {
QT += multimediawidgets
diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp b/src/gsttools/qgstreamerplayercontrol.cpp
index 0bfe76f2f..91ba39ad9 100644
--- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp
+++ b/src/gsttools/qgstreamerplayercontrol.cpp
@@ -37,8 +37,8 @@
**
****************************************************************************/
-#include "qgstreamerplayercontrol.h"
-#include "qgstreamerplayersession.h"
+#include <private/qgstreamerplayercontrol_p.h>
+#include <private/qgstreamerplayersession_p.h>
#include <private/qmediaplaylistnavigator_p.h>
#include <private/qmediaresourcepolicy_p.h>
diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp b/src/gsttools/qgstreamerplayersession.cpp
index a96da66f8..8ee099590 100644
--- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp
+++ b/src/gsttools/qgstreamerplayersession.cpp
@@ -37,7 +37,7 @@
**
****************************************************************************/
-#include "qgstreamerplayersession.h"
+#include <private/qgstreamerplayersession_p.h>
#include <private/qgstreamerbushelper_p.h>
#include <private/qgstreameraudioprobecontrol_p.h>
diff --git a/src/imports/audioengine/audioengine.cpp b/src/imports/audioengine/audioengine.cpp
index f97928f9d..1d3379b91 100644
--- a/src/imports/audioengine/audioengine.cpp
+++ b/src/imports/audioengine/audioengine.cpp
@@ -51,13 +51,6 @@
#include "qdeclarative_audiosample_p.h"
#include "qdeclarative_attenuationmodel_p.h"
-static void initResources()
-{
-#ifdef QT_STATIC
- Q_INIT_RESOURCE(qmake_QtAudioEngine);
-#endif
-}
-
QT_BEGIN_NAMESPACE
class QAudioEngineDeclarativeModule : public QQmlExtensionPlugin
@@ -66,7 +59,7 @@ class QAudioEngineDeclarativeModule : public QQmlExtensionPlugin
Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
public:
- QAudioEngineDeclarativeModule(QObject *parent = 0) : QQmlExtensionPlugin(parent) { initResources(); }
+ QAudioEngineDeclarativeModule(QObject *parent = 0) : QQmlExtensionPlugin(parent) { }
void registerTypes(const char *uri) override
{
Q_ASSERT(QLatin1String(uri) == QLatin1String("QtAudioEngine"));
diff --git a/src/imports/multimedia/multimedia.cpp b/src/imports/multimedia/multimedia.cpp
index 6d9292221..113e67bfa 100644
--- a/src/imports/multimedia/multimedia.cpp
+++ b/src/imports/multimedia/multimedia.cpp
@@ -63,13 +63,6 @@
QML_DECLARE_TYPE(QSoundEffect)
-static void initResources()
-{
-#ifdef QT_STATIC
- Q_INIT_RESOURCE(qmake_QtMultimedia);
-#endif
-}
-
QT_BEGIN_NAMESPACE
static QObject *multimedia_global_object(QQmlEngine *qmlEngine, QJSEngine *jsEngine)
@@ -84,7 +77,7 @@ class QMultimediaDeclarativeModule : public QQmlExtensionPlugin
Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
public:
- QMultimediaDeclarativeModule(QObject *parent = 0) : QQmlExtensionPlugin(parent) { initResources(); }
+ QMultimediaDeclarativeModule(QObject *parent = 0) : QQmlExtensionPlugin(parent) { }
void registerTypes(const char *uri) override
{
Q_ASSERT(QLatin1String(uri) == QLatin1String("QtMultimedia"));
diff --git a/src/multimedia/configure.json b/src/multimedia/configure.json
index e250f2b9a..9980b0664 100644
--- a/src/multimedia/configure.json
+++ b/src/multimedia/configure.json
@@ -8,6 +8,7 @@
"commandline": {
"options": {
"alsa": "boolean",
+ "evr": { "type": "boolean" },
"gstreamer": { "type": "optionalString", "values": [ "no", "yes", "0.10", "1.0" ] },
"pulseaudio": "boolean",
"mediaplayer-backend": { "type": "string", "values": [ "directshow", "wmf" ] },
diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.h b/src/multimedia/gsttools_headers/qgstreamerplayercontrol_p.h
index 6067a68fc..e2252ea52 100644
--- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.h
+++ b/src/multimedia/gsttools_headers/qgstreamerplayercontrol_p.h
@@ -37,29 +37,29 @@
**
****************************************************************************/
-#ifndef QGSTREAMERPLAYERCONTROL_H
-#define QGSTREAMERPLAYERCONTROL_H
+#ifndef QGSTREAMERPLAYERCONTROL_P_H
+#define QGSTREAMERPLAYERCONTROL_P_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
-#include <QtCore/qobject.h>
#include <QtCore/qstack.h>
-
#include <qmediaplayercontrol.h>
-#include <qmediaplayer.h>
-
-#include <limits.h>
+#include <private/qgsttools_global_p.h>
QT_BEGIN_NAMESPACE
class QMediaPlayerResourceSetInterface;
-
-class QMediaPlaylist;
-class QMediaPlaylistNavigator;
-class QSocketNotifier;
-
class QGstreamerPlayerSession;
-class QGstreamerPlayerService;
-
-class QGstreamerPlayerControl : public QMediaPlayerControl
+class Q_GSTTOOLS_EXPORT QGstreamerPlayerControl : public QMediaPlayerControl
{
Q_OBJECT
@@ -67,6 +67,8 @@ public:
QGstreamerPlayerControl(QGstreamerPlayerSession *session, QObject *parent = 0);
~QGstreamerPlayerControl();
+ QGstreamerPlayerSession *session() { return m_session; }
+
QMediaPlayer::State state() const override;
QMediaPlayer::MediaStatus mediaStatus() const override;
diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.h b/src/multimedia/gsttools_headers/qgstreamerplayersession_p.h
index 7f46e8f41..81c385600 100644
--- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.h
+++ b/src/multimedia/gsttools_headers/qgstreamerplayersession_p.h
@@ -37,14 +37,25 @@
**
****************************************************************************/
-#ifndef QGSTREAMERPLAYERSESSION_H
-#define QGSTREAMERPLAYERSESSION_H
+#ifndef QGSTREAMERPLAYERSESSION_P_H
+#define QGSTREAMERPLAYERSESSION_P_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
#include <QtMultimedia/private/qtmultimediaglobal_p.h>
#include <QObject>
#include <QtCore/qmutex.h>
#include <QtNetwork/qnetworkrequest.h>
-#include "qgstreamerplayercontrol.h"
+#include <private/qgstreamerplayercontrol_p.h>
#include <private/qgstreamerbushelper_p.h>
#include <qmediaplayer.h>
#include <qmediastreamscontrol.h>
@@ -71,8 +82,9 @@ typedef enum {
GST_AUTOPLUG_SELECT_SKIP
} GstAutoplugSelectResult;
-class QGstreamerPlayerSession : public QObject,
- public QGstreamerBusMessageFilter
+class Q_GSTTOOLS_EXPORT QGstreamerPlayerSession
+ : public QObject
+ , public QGstreamerBusMessageFilter
{
Q_OBJECT
Q_INTERFACES(QGstreamerBusMessageFilter)
diff --git a/src/plugins/directshow/player/directshowplayerservice.cpp b/src/plugins/directshow/player/directshowplayerservice.cpp
index b975677a6..63635b059 100644
--- a/src/plugins/directshow/player/directshowplayerservice.cpp
+++ b/src/plugins/directshow/player/directshowplayerservice.cpp
@@ -61,6 +61,8 @@
#if QT_CONFIG(evr)
#include "directshowevrvideowindowcontrol.h"
+#else
+#include <mmreg.h>
#endif
#include "qmediacontent.h"
@@ -217,11 +219,13 @@ QMediaControl *DirectShowPlayerService::requestControl(const char *name)
IBaseFilter *filter;
#if QT_CONFIG(evr)
- DirectShowEvrVideoWindowControl *evrControl = new DirectShowEvrVideoWindowControl;
- if ((filter = evrControl->filter()))
- m_videoWindowControl = evrControl;
- else
- delete evrControl;
+ if (!qgetenv("QT_DIRECTSHOW_NO_EVR").toInt()) {
+ DirectShowEvrVideoWindowControl *evrControl = new DirectShowEvrVideoWindowControl;
+ if ((filter = evrControl->filter()))
+ m_videoWindowControl = evrControl;
+ else
+ delete evrControl;
+ }
#endif
// Fall back to the VMR9 if the EVR is not available
if (!m_videoWindowControl) {
diff --git a/src/plugins/directshow/player/directshowvideorenderercontrol.cpp b/src/plugins/directshow/player/directshowvideorenderercontrol.cpp
index ee7f5ec9e..88b5a51eb 100644
--- a/src/plugins/directshow/player/directshowvideorenderercontrol.cpp
+++ b/src/plugins/directshow/player/directshowvideorenderercontrol.cpp
@@ -98,13 +98,15 @@ void DirectShowVideoRendererControl::setSurface(QAbstractVideoSurface *surface)
if (m_surface) {
#if QT_CONFIG(evr)
- m_filter = com_new<IBaseFilter>(clsid_EnhancedVideoRenderer);
- m_evrPresenter = new EVRCustomPresenter(m_surface);
- if (!m_evrPresenter->isValid() || !qt_evr_setCustomPresenter(m_filter, m_evrPresenter)) {
- m_filter->Release();
- m_filter = 0;
- m_evrPresenter->Release();
- m_evrPresenter = 0;
+ if (!qgetenv("QT_DIRECTSHOW_NO_EVR").toInt()) {
+ m_filter = com_new<IBaseFilter>(clsid_EnhancedVideoRenderer);
+ m_evrPresenter = new EVRCustomPresenter(m_surface);
+ if (!m_evrPresenter->isValid() || !qt_evr_setCustomPresenter(m_filter, m_evrPresenter)) {
+ m_filter->Release();
+ m_filter = 0;
+ m_evrPresenter->Release();
+ m_evrPresenter = 0;
+ }
}
if (!m_filter)
diff --git a/src/plugins/directshow/player/player.pri b/src/plugins/directshow/player/player.pri
index 9111cc545..ec1066db7 100644
--- a/src/plugins/directshow/player/player.pri
+++ b/src/plugins/directshow/player/player.pri
@@ -37,6 +37,8 @@ qtConfig(evr) {
SOURCES += \
$$PWD/directshowevrvideowindowcontrol.cpp
+} else {
+ LIBS += -lwinmm
}
qtConfig(wshellitem): \
diff --git a/src/plugins/gstreamer/mediaplayer/mediaplayer.pro b/src/plugins/gstreamer/mediaplayer/mediaplayer.pro
index 5ccf89bfd..8150d8f5b 100644
--- a/src/plugins/gstreamer/mediaplayer/mediaplayer.pro
+++ b/src/plugins/gstreamer/mediaplayer/mediaplayer.pro
@@ -5,18 +5,14 @@ include(../common.pri)
INCLUDEPATH += $$PWD
HEADERS += \
- $$PWD/qgstreamerplayercontrol.h \
$$PWD/qgstreamerplayerservice.h \
- $$PWD/qgstreamerplayersession.h \
$$PWD/qgstreamerstreamscontrol.h \
$$PWD/qgstreamermetadataprovider.h \
$$PWD/qgstreameravailabilitycontrol.h \
$$PWD/qgstreamerplayerserviceplugin.h
SOURCES += \
- $$PWD/qgstreamerplayercontrol.cpp \
$$PWD/qgstreamerplayerservice.cpp \
- $$PWD/qgstreamerplayersession.cpp \
$$PWD/qgstreamerstreamscontrol.cpp \
$$PWD/qgstreamermetadataprovider.cpp \
$$PWD/qgstreameravailabilitycontrol.cpp \
diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp
index b9e29245f..50ab0256b 100644
--- a/src/plugins/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp
+++ b/src/plugins/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp
@@ -38,7 +38,7 @@
****************************************************************************/
#include "qgstreamermetadataprovider.h"
-#include "qgstreamerplayersession.h"
+#include <private/qgstreamerplayersession_p.h>
#include <QDebug>
#include <QtMultimedia/qmediametadata.h>
diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp
index 2c2de1bbc..0712f6e6c 100644
--- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp
+++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayerservice.cpp
@@ -46,8 +46,6 @@
#endif
#include "qgstreamerplayerservice.h"
-#include "qgstreamerplayercontrol.h"
-#include "qgstreamerplayersession.h"
#include "qgstreamermetadataprovider.h"
#include "qgstreameravailabilitycontrol.h"
@@ -64,6 +62,8 @@
#include "qgstreamerstreamscontrol.h"
#include <private/qgstreameraudioprobecontrol_p.h>
#include <private/qgstreamervideoprobecontrol_p.h>
+#include <private/qgstreamerplayersession_p.h>
+#include <private/qgstreamerplayercontrol_p.h>
#include <private/qmediaplaylistnavigator_p.h>
#include <qmediaplaylist.h>
diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerstreamscontrol.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamerstreamscontrol.cpp
index 99caa2ae0..4f5c3f0b2 100644
--- a/src/plugins/gstreamer/mediaplayer/qgstreamerstreamscontrol.cpp
+++ b/src/plugins/gstreamer/mediaplayer/qgstreamerstreamscontrol.cpp
@@ -38,7 +38,7 @@
****************************************************************************/
#include "qgstreamerstreamscontrol.h"
-#include "qgstreamerplayersession.h"
+#include <private/qgstreamerplayersession_p.h>
QGstreamerStreamsControl::QGstreamerStreamsControl(QGstreamerPlayerSession *session, QObject *parent)
:QMediaStreamsControl(parent), m_session(session)
diff --git a/src/plugins/windowsaudio/qwindowsaudiooutput.cpp b/src/plugins/windowsaudio/qwindowsaudiooutput.cpp
index d1c0b475f..26eecb768 100644
--- a/src/plugins/windowsaudio/qwindowsaudiooutput.cpp
+++ b/src/plugins/windowsaudio/qwindowsaudiooutput.cpp
@@ -295,11 +295,22 @@ bool QWindowsAudioOutput::open()
return true;
}
+void QWindowsAudioOutput::pauseAndSleep()
+{
+ waveOutPause(hWaveOut);
+ int bitrate = settings.sampleRate() * settings.channelCount() * settings.sampleSize() / 8;
+ // Time of written data.
+ int delay = (buffer_size - bytesFree()) * 1000 / bitrate;
+ Sleep(delay + 10);
+}
+
void QWindowsAudioOutput::close()
{
if(deviceState == QAudio::StoppedState)
return;
+ // Pause playback before reset to avoid uneeded crackling at the end.
+ pauseAndSleep();
deviceState = QAudio::StoppedState;
errorState = QAudio::NoError;
waveOutReset(hWaveOut);
@@ -455,10 +466,7 @@ void QWindowsAudioOutput::resume()
void QWindowsAudioOutput::suspend()
{
if(deviceState == QAudio::ActiveState || deviceState == QAudio::IdleState) {
- int delay = (buffer_size-bytesFree())*1000/(settings.sampleRate()
- *settings.channelCount()*(settings.sampleSize()/8));
- waveOutPause(hWaveOut);
- Sleep(delay+10);
+ pauseAndSleep();
deviceState = QAudio::SuspendedState;
errorState = QAudio::NoError;
emit stateChanged(deviceState);
diff --git a/src/plugins/windowsaudio/qwindowsaudiooutput.h b/src/plugins/windowsaudio/qwindowsaudiooutput.h
index f25475b02..b71f00e98 100644
--- a/src/plugins/windowsaudio/qwindowsaudiooutput.h
+++ b/src/plugins/windowsaudio/qwindowsaudiooutput.h
@@ -115,6 +115,7 @@ private slots:
bool deviceReady();
private:
+ void pauseAndSleep();
QByteArray m_device;
int bytesAvailable;
QTime timeStamp;