diff options
author | Lars Knoll <lars.knoll@qt.io> | 2021-04-07 15:18:17 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2021-04-08 12:19:52 +0000 |
commit | 77acd3cb4a1974d88e795a3369d74eccfd730e4f (patch) | |
tree | 90c20769b3c2e3f8e37544f91bd476d7b84768ab | |
parent | 1730f47fe18772f48b42b8e4dbec527889ae2ef3 (diff) |
Remove the notifyInterval() functionality
This was nothing else than a timer, something you can
just as well implement on top of Qt Multimedia if required.
Change-Id: I1ef362f1f4ad5a5f85e92bfbb1d73b7710271e5c
Reviewed-by: Doris Verria <doris.verria@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
49 files changed, 47 insertions, 995 deletions
diff --git a/examples/multimedia/spectrum/app/engine.cpp b/examples/multimedia/spectrum/app/engine.cpp index 6451e940c..81cc104c1 100644 --- a/examples/multimedia/spectrum/app/engine.cpp +++ b/examples/multimedia/spectrum/app/engine.cpp @@ -133,6 +133,11 @@ Engine::Engine(QObject *parent) #ifdef DUMP_SPECTRUM m_spectrumAnalyser.setOutputPath(outputPath()); #endif + + m_notifyTimer = new QTimer(this); + m_notifyTimer->setInterval(1000); + connect(m_notifyTimer, &QTimer::timeout, this, &Engine::audioNotify); + } Engine::~Engine() = default; @@ -243,8 +248,6 @@ void Engine::startRecording() m_mode = QAudio::AudioInput; connect(m_audioInput, &QAudioInput::stateChanged, this, &Engine::audioStateChanged); - connect(m_audioInput, &QAudioInput::notify, - this, &Engine::audioNotify); m_count = 0; m_dataLength = 0; @@ -253,6 +256,7 @@ void Engine::startRecording() connect(m_audioInputIODevice, &QIODevice::readyRead, this, &Engine::audioDataReady); } + m_notifyTimer->start(); } } @@ -276,8 +280,6 @@ void Engine::startPlayback() m_mode = QAudio::AudioOutput; connect(m_audioOutput, &QAudioOutput::stateChanged, this, &Engine::audioStateChanged); - connect(m_audioOutput, &QAudioOutput::notify, - this, &Engine::audioNotify); m_count = 0; if (m_file) { @@ -292,6 +294,7 @@ void Engine::startPlayback() m_audioOutput->start(&m_audioOutputIODevice); } } + m_notifyTimer->start(); } } @@ -307,6 +310,7 @@ void Engine::suspend() m_audioOutput->suspend(); break; } + m_notifyTimer->stop(); } } @@ -515,12 +519,10 @@ bool Engine::initialize() } else { emit bufferChanged(0, 0, m_buffer); m_audioInput = new QAudioInput(m_audioInputDevice, m_format, this); - m_audioInput->setNotifyInterval(NotifyIntervalMs); result = true; } } m_audioOutput = new QAudioOutput(m_audioOutputDevice, m_format, this); - m_audioOutput->setNotifyInterval(NotifyIntervalMs); m_audioOutput->setCategory(m_audioOutputCategory); } } else { diff --git a/examples/multimedia/spectrum/app/engine.h b/examples/multimedia/spectrum/app/engine.h index 5884860c3..f403afb80 100644 --- a/examples/multimedia/spectrum/app/engine.h +++ b/examples/multimedia/spectrum/app/engine.h @@ -63,6 +63,7 @@ #include <QObject> #include <QMediaDeviceManager> #include <QWaveDecoder> +#include <QTimer> #ifdef DUMP_CAPTURED_AUDIO #define DUMP_DATA @@ -318,6 +319,7 @@ private: qint64 m_spectrumPosition; int m_count; + QTimer *m_notifyTimer = nullptr; #ifdef DUMP_DATA QDir m_outputDir; diff --git a/src/imports/multimedia/Video.qml b/src/imports/multimedia/Video.qml index 45e0ec7e8..929fdda98 100644 --- a/src/imports/multimedia/Video.qml +++ b/src/imports/multimedia/Video.qml @@ -388,19 +388,6 @@ Item { property alias autoPlay: player.autoPlay /*! - \qmlproperty int Video::notifyInterval - - The interval at which notifiable properties will update. - - The notifiable properties are \l position and \l bufferProgress. - - The interval is expressed in milliseconds, the default value is 1000. - - \since 5.9 - */ - property alias notifyInterval: player.notifyInterval - - /*! \qmlproperty int Video::loops This property holds the number of times the media is played. A value of \c 0 or \c 1 means diff --git a/src/imports/multimedia/plugins.qmltypes b/src/imports/multimedia/plugins.qmltypes index a386e73b0..6bd4664c5 100644 --- a/src/imports/multimedia/plugins.qmltypes +++ b/src/imports/multimedia/plugins.qmltypes @@ -462,7 +462,6 @@ Module { } Property { name: "availability"; type: "Availability"; isReadonly: true } Property { name: "audioRole"; revision: 1; type: "AudioRole" } - Property { name: "notifyInterval"; revision: 2; type: "int" } Property { name: "videoOutput"; revision: 15; type: "QVariant" } Signal { name: "playlistChanged"; revision: 1 } Signal { name: "loopCountChanged" } @@ -475,7 +474,6 @@ Module { Parameter { name: "error"; type: "QDeclarativeAudio::Error" } Parameter { name: "errorString"; type: "string" } } - Signal { name: "notifyIntervalChanged"; revision: 2 } Signal { name: "videoOutputChanged"; revision: 15 } Method { name: "play" } Method { name: "pause" } diff --git a/src/imports/multimedia/qdeclarativeaudio.cpp b/src/imports/multimedia/qdeclarativeaudio.cpp index 1c83dfd83..7fe96666c 100644 --- a/src/imports/multimedia/qdeclarativeaudio.cpp +++ b/src/imports/multimedia/qdeclarativeaudio.cpp @@ -108,7 +108,6 @@ QDeclarativeAudio::QDeclarativeAudio(QObject *parent) , m_status(QMediaPlayer::NoMedia) , m_error(QMediaPlayer::ServiceMissingError) , m_player(nullptr) - , m_notifyInterval(1000) { } @@ -233,34 +232,6 @@ void QDeclarativeAudio::setAudioRole(QDeclarativeAudio::AudioRole audioRole) } /*! - \qmlproperty int QtMultimedia::Audio::notifyInterval - - The interval at which notifiable properties will update. - - The notifiable properties are \l position and \l bufferProgress. - - The interval is expressed in milliseconds, the default value is 1000. - - \since 5.9 -*/ -int QDeclarativeAudio::notifyInterval() const -{ - return m_complete ? m_player->notifyInterval() : m_notifyInterval; -} - -void QDeclarativeAudio::setNotifyInterval(int value) -{ - if (notifyInterval() == value) - return; - if (m_complete) { - m_player->setNotifyInterval(value); - return; - } - m_notifyInterval = value; - emit notifyIntervalChanged(); -} - -/*! \qmlmethod list<int> QtMultimedia::Audio::supportedAudioRoles() Returns a list of supported audio roles. @@ -824,8 +795,6 @@ void QDeclarativeAudio::classBegin() this, SIGNAL(hasVideoChanged())); connect(m_player, SIGNAL(audioRoleChanged(QAudio::Role)), this, SIGNAL(audioRoleChanged())); - connect(m_player, SIGNAL(notifyIntervalChanged(int)), - this, SIGNAL(notifyIntervalChanged())); m_error = !m_player->isAvailable() ? QMediaPlayer::ServiceMissingError : QMediaPlayer::NoError; @@ -845,8 +814,6 @@ void QDeclarativeAudio::componentComplete() m_player->setPlaybackRate(m_playbackRate); if (m_audioRole != UnknownRole) m_player->setAudioRole(QAudio::Role(m_audioRole)); - if (m_notifyInterval != m_player->notifyInterval()) - m_player->setNotifyInterval(m_notifyInterval); if (!m_source.isEmpty() && (m_autoLoad || m_autoPlay)) { m_player->setMedia(m_source, nullptr); @@ -1162,18 +1129,6 @@ void QDeclarativeAudio::_q_mediaChanged(const QUrl &) */ /*! - \qmlproperty int QtMultimedia::MediaPlayer::notifyInterval - - The interval at which notifiable properties will update. - - The notifiable properties are \l position and \l bufferProgress. - - The interval is expressed in milliseconds, the default value is 1000. - - \since 5.9 -*/ - -/*! \qmlmethod QtMultimedia::MediaPlayer::play() Starts playback of the media. diff --git a/src/imports/multimedia/qdeclarativeaudio_p.h b/src/imports/multimedia/qdeclarativeaudio_p.h index da6db0885..085d7e60a 100644 --- a/src/imports/multimedia/qdeclarativeaudio_p.h +++ b/src/imports/multimedia/qdeclarativeaudio_p.h @@ -87,7 +87,6 @@ class QDeclarativeAudio : public QObject, public QQmlParserStatus Q_PROPERTY(QString errorString READ errorString NOTIFY errorChanged) Q_PROPERTY(QDeclarativeMediaMetaData *metaData READ metaData CONSTANT) Q_PROPERTY(AudioRole audioRole READ audioRole WRITE setAudioRole NOTIFY audioRoleChanged REVISION 1) - Q_PROPERTY(int notifyInterval READ notifyInterval WRITE setNotifyInterval NOTIFY notifyIntervalChanged REVISION 2) Q_PROPERTY(QVariant videoOutput READ videoOutput WRITE setVideoOutput NOTIFY videoOutputChanged REVISION 15) Q_ENUMS(Status) Q_ENUMS(Error) @@ -198,8 +197,6 @@ public: bool autoPlay() const; void setAutoPlay(bool autoplay); - int notifyInterval() const; - void setNotifyInterval(int); public Q_SLOTS: void play(); @@ -241,7 +238,6 @@ Q_SIGNALS: void errorChanged(); void error(QDeclarativeAudio::Error error, const QString &errorString); - Q_REVISION(2) void notifyIntervalChanged(); Q_REVISION(15) void videoOutputChanged(); private Q_SLOTS: @@ -273,7 +269,6 @@ private: QScopedPointer<QDeclarativeMediaMetaData> m_metaData; QMediaPlayer *m_player; - int m_notifyInterval; QVariant m_videoOutput; friend class QDeclarativeMediaBaseAnimation; diff --git a/src/multimedia/audio/qaudioinput.cpp b/src/multimedia/audio/qaudioinput.cpp index c36092495..673133eab 100644 --- a/src/multimedia/audio/qaudioinput.cpp +++ b/src/multimedia/audio/qaudioinput.cpp @@ -305,29 +305,6 @@ int QAudioInput::periodSize() const } /*! - Sets the interval for notify() signal to be emitted. - This is based on the \a ms of audio data processed - not on actual real-time. - The minimum resolution of the timer is platform specific and values - should be checked with notifyInterval() to confirm actual value - being used. -*/ - -void QAudioInput::setNotifyInterval(int ms) -{ - d->setNotifyInterval(ms); -} - -/*! - Returns the notify interval in milliseconds. -*/ - -int QAudioInput::notifyInterval() const -{ - return d->notifyInterval(); -} - -/*! Sets the input volume to \a volume. The volume is scaled linearly from \c 0.0 (silence) to \c 1.0 (full volume). Values outside this @@ -401,12 +378,6 @@ QAudio::State QAudioInput::state() const This signal is emitted when the device \a state has changed. */ -/*! - \fn QAudioInput::notify() - This signal is emitted when x ms of audio data has been processed - the interval set by setNotifyInterval(x). -*/ - QT_END_NAMESPACE #include "moc_qaudioinput.cpp" diff --git a/src/multimedia/audio/qaudioinput.h b/src/multimedia/audio/qaudioinput.h index df7a52b90..8db964866 100644 --- a/src/multimedia/audio/qaudioinput.h +++ b/src/multimedia/audio/qaudioinput.h @@ -83,9 +83,6 @@ public: int bytesReady() const; int periodSize() const; - void setNotifyInterval(int milliSeconds); - int notifyInterval() const; - void setVolume(qreal volume); qreal volume() const; @@ -97,7 +94,6 @@ public: Q_SIGNALS: void stateChanged(QAudio::State state); - void notify(); private: Q_DISABLE_COPY(QAudioInput) diff --git a/src/multimedia/audio/qaudiooutput.cpp b/src/multimedia/audio/qaudiooutput.cpp index bf6d5e0e0..e15dee4bf 100644 --- a/src/multimedia/audio/qaudiooutput.cpp +++ b/src/multimedia/audio/qaudiooutput.cpp @@ -91,16 +91,6 @@ QT_BEGIN_NAMESPACE a \c { play/pause } button. You request a state change directly with suspend(), stop(), reset(), resume(), and start(). - While the stream is playing, you can set a notify interval in - milliseconds with setNotifyInterval(). This interval specifies the - time between two emissions of the notify() signal. This is - relative to the position in the stream, i.e., if the QAudioOutput - is in the SuspendedState or the IdleState, the notify() signal is - not emitted. A typical use-case would be to update a - \l{QSlider}{slider} that allows seeking in the stream. - If you want the time since playback started regardless of which - states the audio output has been in, elapsedUSecs() is the function for you. - If an error occurs, you can fetch the \l{QAudio::Error}{error type} with the error() function. Please see the QAudio::Error enum for a description of the possible errors that are reported. When @@ -293,27 +283,6 @@ int QAudioOutput::bufferSize() const } /*! - Sets the interval for notify() signal to be emitted. - This is based on the \a ms of audio data processed, - not on wall clock time. - The minimum resolution of the timer is platform specific and values - should be checked with notifyInterval() to confirm the actual value - being used. -*/ -void QAudioOutput::setNotifyInterval(int ms) -{ - d->setNotifyInterval(ms); -} - -/*! - Returns the notify interval in milliseconds. -*/ -int QAudioOutput::notifyInterval() const -{ - return d->notifyInterval(); -} - -/*! Returns the amount of audio data processed since start() was called (in microseconds). */ @@ -416,13 +385,6 @@ void QAudioOutput::setCategory(const QString &category) This is the current state of the audio output. */ -/*! - \fn QAudioOutput::notify() - This signal is emitted when a certain interval of milliseconds - of audio data has been processed. The interval is set by - setNotifyInterval(). -*/ - QT_END_NAMESPACE #include "moc_qaudiooutput.cpp" diff --git a/src/multimedia/audio/qaudiooutput.h b/src/multimedia/audio/qaudiooutput.h index bcb76487f..f361af211 100644 --- a/src/multimedia/audio/qaudiooutput.h +++ b/src/multimedia/audio/qaudiooutput.h @@ -83,9 +83,6 @@ public: int bytesFree() const; int periodSize() const; - void setNotifyInterval(int milliSeconds); - int notifyInterval() const; - qint64 processedUSecs() const; qint64 elapsedUSecs() const; @@ -100,7 +97,6 @@ public: Q_SIGNALS: void stateChanged(QAudio::State state); - void notify(); private: Q_DISABLE_COPY(QAudioOutput) diff --git a/src/multimedia/audio/qaudiosystem.cpp b/src/multimedia/audio/qaudiosystem.cpp index c0ab776ff..f37c35c15 100644 --- a/src/multimedia/audio/qaudiosystem.cpp +++ b/src/multimedia/audio/qaudiosystem.cpp @@ -174,18 +174,6 @@ QT_BEGIN_NAMESPACE */ /*! - \fn virtual void QAbstractAudioOutput::setNotifyInterval(int ms) - Sets the interval for notify() signal to be emitted. This is based on the \a ms - of audio data processed not on actual real-time. The resolution of the timer - is platform specific. -*/ - -/*! - \fn virtual int QAbstractAudioOutput::notifyInterval() const - Returns the notify interval in milliseconds. -*/ - -/*! \fn virtual qint64 QAbstractAudioOutput::processedUSecs() const Returns the amount of audio data processed since start() was called in milliseconds. */ @@ -238,13 +226,6 @@ QT_BEGIN_NAMESPACE */ /*! - \fn QAbstractAudioOutput::notify() - This signal is emitted when x ms of audio data has been processed - the interval set by setNotifyInterval(x). -*/ - - -/*! \class QAbstractAudioInput \brief The QAbstractAudioInput class provides access for QAudioInput to access the audio device provided by the plugin. @@ -313,18 +294,6 @@ QT_BEGIN_NAMESPACE */ /*! - \fn virtual void QAbstractAudioInput::setNotifyInterval(int ms) - Sets the interval for notify() signal to be emitted. This is based - on the \a ms of audio data processed not on actual real-time. - The resolution of the timer is platform specific. -*/ - -/*! - \fn virtual int QAbstractAudioInput::notifyInterval() const - Returns the notify interval in milliseconds. -*/ - -/*! \fn virtual qint64 QAbstractAudioInput::processedUSecs() const Returns the amount of audio data processed since start() was called in milliseconds. */ @@ -365,12 +334,6 @@ QT_BEGIN_NAMESPACE This signal is emitted when the device \a state has changed. */ -/*! - \fn QAbstractAudioInput::notify() - This signal is emitted when x ms of audio data has been processed - the interval set by setNotifyInterval(x). -*/ - QT_END_NAMESPACE #include "moc_qaudiosystem_p.cpp" diff --git a/src/multimedia/audio/qaudiosystem_p.h b/src/multimedia/audio/qaudiosystem_p.h index 41c63ea5a..24c43af82 100644 --- a/src/multimedia/audio/qaudiosystem_p.h +++ b/src/multimedia/audio/qaudiosystem_p.h @@ -76,8 +76,6 @@ public: virtual int periodSize() const = 0; virtual void setBufferSize(int value) = 0; virtual int bufferSize() const = 0; - virtual void setNotifyInterval(int milliSeconds) = 0; - virtual int notifyInterval() const = 0; virtual qint64 processedUSecs() const = 0; virtual qint64 elapsedUSecs() const = 0; virtual QAudio::Error error() const = 0; @@ -92,7 +90,6 @@ public: Q_SIGNALS: void errorChanged(QAudio::Error error); void stateChanged(QAudio::State state); - void notify(); }; class QAbstractAudioInput : public QObject @@ -110,8 +107,6 @@ public: virtual int periodSize() const = 0; virtual void setBufferSize(int value) = 0; virtual int bufferSize() const = 0; - virtual void setNotifyInterval(int milliSeconds) = 0; - virtual int notifyInterval() const = 0; virtual qint64 processedUSecs() const = 0; virtual qint64 elapsedUSecs() const = 0; virtual QAudio::Error error() const = 0; @@ -124,7 +119,6 @@ public: Q_SIGNALS: void errorChanged(QAudio::Error error); void stateChanged(QAudio::State state); - void notify(); }; QT_END_NAMESPACE diff --git a/src/multimedia/platform/alsa/qalsaaudioinput.cpp b/src/multimedia/platform/alsa/qalsaaudioinput.cpp index 2b4815188..3035bff55 100644 --- a/src/multimedia/platform/alsa/qalsaaudioinput.cpp +++ b/src/multimedia/platform/alsa/qalsaaudioinput.cpp @@ -69,7 +69,6 @@ QAlsaAudioInput::QAlsaAudioInput(const QByteArray &device) buffer_time = 100000; period_time = 20000; totalTimeValue = 0; - intervalTime = 1000; errorState = QAudio::NoError; deviceState = QAudio::StoppedState; audioSource = 0; @@ -262,7 +261,6 @@ bool QAlsaAudioInput::open() qDebug()<<now.second()<<"s "<<now.msec()<<"ms :open()"; #endif clockStamp.restart(); - timeStamp.restart(); elapsedTimeOffset = 0; int dir; @@ -641,16 +639,6 @@ int QAlsaAudioInput::periodSize() const return period_size; } -void QAlsaAudioInput::setNotifyInterval(int ms) -{ - intervalTime = qMax(0, ms); -} - -int QAlsaAudioInput::notifyInterval() const -{ - return intervalTime; -} - qint64 QAlsaAudioInput::processedUSecs() const { qint64 result = qint64(1000000) * totalTimeValue / @@ -710,11 +698,6 @@ bool QAlsaAudioInput::deviceReady() } } - if(intervalTime && (timeStamp.elapsed() + elapsedTimeOffset) > intervalTime) { - emit notify(); - elapsedTimeOffset = timeStamp.elapsed() + elapsedTimeOffset - intervalTime; - timeStamp.restart(); - } return true; } diff --git a/src/multimedia/platform/alsa/qalsaaudioinput_p.h b/src/multimedia/platform/alsa/qalsaaudioinput_p.h index ee7d5f37c..15e1f5b66 100644 --- a/src/multimedia/platform/alsa/qalsaaudioinput_p.h +++ b/src/multimedia/platform/alsa/qalsaaudioinput_p.h @@ -113,8 +113,6 @@ public: int periodSize() const override; void setBufferSize(int value) override; int bufferSize() const override; - void setNotifyInterval(int milliSeconds) override; - int notifyInterval() const override; qint64 processedUSecs() const override; qint64 elapsedUSecs() const override; QAudio::Error error() const override; @@ -144,10 +142,8 @@ private: void drain(); QTimer* timer; - QElapsedTimer timeStamp; QElapsedTimer clockStamp; qint64 elapsedTimeOffset; - int intervalTime; RingBuffer ringBuffer; int bytesAvailable; QByteArray m_device; diff --git a/src/multimedia/platform/alsa/qalsaaudiooutput.cpp b/src/multimedia/platform/alsa/qalsaaudiooutput.cpp index 0589c254c..d3682b429 100644 --- a/src/multimedia/platform/alsa/qalsaaudiooutput.cpp +++ b/src/multimedia/platform/alsa/qalsaaudiooutput.cpp @@ -73,7 +73,6 @@ QAlsaAudioOutput::QAlsaAudioOutput(const QByteArray &device) buffer_time = 100000; period_time = 20000; totalTimeValue = 0; - intervalTime = 1000; audioBuffer = 0; errorState = QAudio::NoError; deviceState = QAudio::StoppedState; @@ -572,16 +571,6 @@ int QAlsaAudioOutput::bufferSize() const return buffer_size; } -void QAlsaAudioOutput::setNotifyInterval(int ms) -{ - intervalTime = qMax(0, ms); -} - -int QAlsaAudioOutput::notifyInterval() const -{ - return intervalTime; -} - qint64 QAlsaAudioOutput::processedUSecs() const { return qint64(1000000) * totalTimeValue / settings.sampleRate(); @@ -716,11 +705,6 @@ bool QAlsaAudioOutput::deviceReady() if(deviceState != QAudio::ActiveState) return true; - if(intervalTime && (timeStamp.elapsed() + elapsedTimeOffset) > intervalTime) { - emit notify(); - elapsedTimeOffset = timeStamp.elapsed() + elapsedTimeOffset - intervalTime; - timeStamp.restart(); - } return true; } diff --git a/src/multimedia/platform/alsa/qalsaaudiooutput_p.h b/src/multimedia/platform/alsa/qalsaaudiooutput_p.h index df76aba30..2dff0d7a3 100644 --- a/src/multimedia/platform/alsa/qalsaaudiooutput_p.h +++ b/src/multimedia/platform/alsa/qalsaaudiooutput_p.h @@ -87,8 +87,6 @@ public: int periodSize() const override; void setBufferSize(int value) override; int bufferSize() const override; - void setNotifyInterval(int milliSeconds) override; - int notifyInterval() const override; qint64 processedUSecs() const override; qint64 elapsedUSecs() const override; QAudio::Error error() const override; @@ -117,7 +115,6 @@ private: bool resuming; int buffer_size; int period_size; - int intervalTime; qint64 totalTimeValue; unsigned int buffer_time; unsigned int period_time; @@ -132,7 +129,6 @@ private: QTimer* timer; QByteArray m_device; int bytesAvailable; - QElapsedTimer timeStamp; QElapsedTimer clockStamp; qint64 elapsedTimeOffset; char* audioBuffer; diff --git a/src/multimedia/platform/android/audio/qopenslesaudioinput.cpp b/src/multimedia/platform/android/audio/qopenslesaudioinput.cpp index 5afb4ffca..f815bcd6b 100644 --- a/src/multimedia/platform/android/audio/qopenslesaudioinput.cpp +++ b/src/multimedia/platform/android/audio/qopenslesaudioinput.cpp @@ -108,7 +108,6 @@ QOpenSLESAudioInput::QOpenSLESAudioInput(const QByteArray &device) , m_volume(1.0) , m_bufferSize(0) , m_periodSize(0) - , m_intervalTime(1000) , m_buffers(new QByteArray[NUM_BUFFERS]) , m_currentBuffer(0) { @@ -460,13 +459,6 @@ void QOpenSLESAudioInput::writeDataToDevice(const char *data, int size) Q_EMIT m_bufferIODevice->readyRead(); } } - - // Send notify signal if needed - qint64 processedMsecs = processedUSecs() / 1000; - if (m_intervalTime && (processedMsecs - m_lastNotifyTime) >= m_intervalTime) { - Q_EMIT notify(); - m_lastNotifyTime = processedMsecs; - } } void QOpenSLESAudioInput::flushBuffers() @@ -507,16 +499,6 @@ int QOpenSLESAudioInput::periodSize() const return m_periodSize; } -void QOpenSLESAudioInput::setNotifyInterval(int ms) -{ - m_intervalTime = qMax(0, ms); -} - -int QOpenSLESAudioInput::notifyInterval() const -{ - return m_intervalTime; -} - qint64 QOpenSLESAudioInput::processedUSecs() const { return m_format.durationForBytes(m_processedBytes); diff --git a/src/multimedia/platform/android/audio/qopenslesaudioinput_p.h b/src/multimedia/platform/android/audio/qopenslesaudioinput_p.h index 168dca361..61492f6f1 100644 --- a/src/multimedia/platform/android/audio/qopenslesaudioinput_p.h +++ b/src/multimedia/platform/android/audio/qopenslesaudioinput_p.h @@ -89,8 +89,6 @@ public: int periodSize() const; void setBufferSize(int value); int bufferSize() const; - void setNotifyInterval(int milliSeconds); - int notifyInterval() const; qint64 processedUSecs() const; qint64 elapsedUSecs() const; QAudio::Error error() const; @@ -134,7 +132,6 @@ private: qreal m_volume; int m_bufferSize; int m_periodSize; - int m_intervalTime; QByteArray *m_buffers; int m_currentBuffer; }; diff --git a/src/multimedia/platform/android/audio/qopenslesaudiooutput.cpp b/src/multimedia/platform/android/audio/qopenslesaudiooutput.cpp index 81a2af791..7f4125b2b 100644 --- a/src/multimedia/platform/android/audio/qopenslesaudiooutput.cpp +++ b/src/multimedia/platform/android/audio/qopenslesaudiooutput.cpp @@ -81,7 +81,6 @@ QOpenSLESAudioOutput::QOpenSLESAudioOutput(const QByteArray &device) m_pullMode(false), m_nextBuffer(0), m_bufferSize(0), - m_notifyInterval(1000), m_periodSize(0), m_elapsedTime(0), m_processedBytes(0), @@ -209,42 +208,6 @@ int QOpenSLESAudioOutput::bufferSize() const return m_bufferSize; } -void QOpenSLESAudioOutput::setNotifyInterval(int ms) -{ - const int newInterval = ms > 0 ? ms : 0; - - if (newInterval == m_notifyInterval) - return; - - const SLuint32 newEvenMask = newInterval == 0 ? m_eventMask & ~SL_PLAYEVENT_HEADATNEWPOS - : m_eventMask & SL_PLAYEVENT_HEADATNEWPOS; - - if (m_state == QAudio::StoppedState) { - m_eventMask = newEvenMask; - m_notifyInterval = newInterval; - return; - } - - if (newEvenMask != m_eventMask - && SL_RESULT_SUCCESS != (*m_playItf)->SetCallbackEventsMask(m_playItf, newEvenMask)) { - return; - } - - m_eventMask = newEvenMask; - - if (newInterval && SL_RESULT_SUCCESS != (*m_playItf)->SetPositionUpdatePeriod(m_playItf, - newInterval)) { - return; - } - - m_notifyInterval = newInterval; -} - -int QOpenSLESAudioOutput::notifyInterval() const -{ - return m_notifyInterval; -} - qint64 QOpenSLESAudioOutput::processedUSecs() const { if (m_state == QAudio::IdleState || m_state == QAudio::SuspendedState) @@ -547,11 +510,6 @@ bool QOpenSLESAudioOutput::preparePlayer() return false; } - if (m_notifyInterval && SL_RESULT_SUCCESS == (*m_playItf)->SetPositionUpdatePeriod(m_playItf, - m_notifyInterval)) { - m_eventMask |= SL_PLAYEVENT_HEADATNEWPOS; - } - if (SL_RESULT_SUCCESS != (*m_playItf)->SetCallbackEventsMask(m_playItf, m_eventMask)) { setError(QAudio::FatalError); return false; diff --git a/src/multimedia/platform/android/audio/qopenslesaudiooutput_p.h b/src/multimedia/platform/android/audio/qopenslesaudiooutput_p.h index f5c995903..a1042af42 100644 --- a/src/multimedia/platform/android/audio/qopenslesaudiooutput_p.h +++ b/src/multimedia/platform/android/audio/qopenslesaudiooutput_p.h @@ -78,8 +78,6 @@ public: int periodSize() const override; void setBufferSize(int value) override; int bufferSize() const override; - void setNotifyInterval(int milliSeconds) override; - int notifyInterval() const override; qint64 processedUSecs() const override; qint64 elapsedUSecs() const override; QAudio::Error error() const override; @@ -128,7 +126,6 @@ private: bool m_pullMode; int m_nextBuffer; int m_bufferSize; - int m_notifyInterval; int m_periodSize; qint64 m_elapsedTime; qint64 m_processedBytes; diff --git a/src/multimedia/platform/darwin/audio/qcoreaudioinput.mm b/src/multimedia/platform/darwin/audio/qcoreaudioinput.mm index fea9c2d6c..74788cf9f 100644 --- a/src/multimedia/platform/darwin/audio/qcoreaudioinput.mm +++ b/src/multimedia/platform/darwin/audio/qcoreaudioinput.mm @@ -470,10 +470,6 @@ CoreAudioInput::CoreAudioInput(const QAudioDeviceInfo &device) m_audioDeviceId = info->deviceID(); #endif m_device = di.id(); - - m_intervalTimer = new QTimer(this); - m_intervalTimer->setInterval(1000); - connect(m_intervalTimer, SIGNAL(timeout()), this, SIGNAL(notify())); } @@ -828,25 +824,6 @@ int CoreAudioInput::bufferSize() const return m_internalBufferSize; } - -void CoreAudioInput::setNotifyInterval(int milliSeconds) -{ - if (m_intervalTimer->interval() == milliSeconds) - return; - - if (milliSeconds <= 0) - milliSeconds = 0; - - m_intervalTimer->setInterval(milliSeconds); -} - - -int CoreAudioInput::notifyInterval() const -{ - return m_intervalTimer->interval(); -} - - qint64 CoreAudioInput::processedUSecs() const { return m_totalFrames * 1000000 / m_audioFormat.sampleRate(); @@ -961,14 +938,11 @@ void CoreAudioInput::audioDeviceError() void CoreAudioInput::startTimers() { m_audioBuffer->startFlushTimer(); - if (m_intervalTimer->interval() > 0) - m_intervalTimer->start(); } void CoreAudioInput::stopTimers() { m_audioBuffer->stopFlushTimer(); - m_intervalTimer->stop(); } OSStatus CoreAudioInput::inputCallback(void *inRefCon, AudioUnitRenderActionFlags *ioActionFlags, const AudioTimeStamp *inTimeStamp, UInt32 inBusNumber, UInt32 inNumberFrames, AudioBufferList *ioData) diff --git a/src/multimedia/platform/darwin/audio/qcoreaudioinput_p.h b/src/multimedia/platform/darwin/audio/qcoreaudioinput_p.h index 3931d9022..1a66791ef 100644 --- a/src/multimedia/platform/darwin/audio/qcoreaudioinput_p.h +++ b/src/multimedia/platform/darwin/audio/qcoreaudioinput_p.h @@ -205,8 +205,6 @@ public: int periodSize() const; void setBufferSize(int value); int bufferSize() const; - void setNotifyInterval(int milliSeconds); - int notifyInterval() const; qint64 processedUSecs() const; qint64 elapsedUSecs() const; QAudio::Error error() const; @@ -268,7 +266,6 @@ private: QMutex m_mutex; QWaitCondition m_threadFinished; QAtomicInt m_audioThreadState; - QTimer *m_intervalTimer; AudioStreamBasicDescription m_streamFormat; AudioStreamBasicDescription m_deviceFormat; qreal m_volume; diff --git a/src/multimedia/platform/darwin/audio/qcoreaudiooutput.mm b/src/multimedia/platform/darwin/audio/qcoreaudiooutput.mm index f79bce38c..16e333513 100644 --- a/src/multimedia/platform/darwin/audio/qcoreaudiooutput.mm +++ b/src/multimedia/platform/darwin/audio/qcoreaudiooutput.mm @@ -248,10 +248,6 @@ QCoreAudioOutput::QCoreAudioOutput(const QAudioDeviceInfo &device) m_clockFrequency = CoreAudioUtils::frequency() / 1000; m_audioThreadState.storeRelaxed(Stopped); - - m_intervalTimer = new QTimer(this); - m_intervalTimer->setInterval(1000); - connect(m_intervalTimer, SIGNAL(timeout()), this, SIGNAL(notify())); } QCoreAudioOutput::~QCoreAudioOutput() @@ -386,22 +382,6 @@ int QCoreAudioOutput::bufferSize() const return m_internalBufferSize; } -void QCoreAudioOutput::setNotifyInterval(int milliSeconds) -{ - if (m_intervalTimer->interval() == milliSeconds) - return; - - if (milliSeconds <= 0) - milliSeconds = 0; - - m_intervalTimer->setInterval(milliSeconds); -} - -int QCoreAudioOutput::notifyInterval() const -{ - return m_intervalTimer->interval(); -} - qint64 QCoreAudioOutput::processedUSecs() const { return m_totalFrames * 1000000 / m_audioFormat.sampleRate(); @@ -471,7 +451,6 @@ QString QCoreAudioOutput::category() const void QCoreAudioOutput::deviceStopped() { - m_intervalTimer->stop(); emit stateChanged(m_stateCode); } @@ -739,14 +718,11 @@ void QCoreAudioOutput::audioDeviceError() void QCoreAudioOutput::startTimers() { m_audioBuffer->startFillTimer(); - if (m_intervalTimer->interval() > 0) - m_intervalTimer->start(); } void QCoreAudioOutput::stopTimers() { m_audioBuffer->stopFillTimer(); - m_intervalTimer->stop(); } QT_END_NAMESPACE diff --git a/src/multimedia/platform/darwin/audio/qcoreaudiooutput_p.h b/src/multimedia/platform/darwin/audio/qcoreaudiooutput_p.h index 0a75ed793..b37a3f3d3 100644 --- a/src/multimedia/platform/darwin/audio/qcoreaudiooutput_p.h +++ b/src/multimedia/platform/darwin/audio/qcoreaudiooutput_p.h @@ -138,8 +138,6 @@ public: int periodSize() const; void setBufferSize(int value); int bufferSize() const; - void setNotifyInterval(int milliSeconds); - int notifyInterval() const; qint64 processedUSecs() const; qint64 elapsedUSecs() const; QAudio::Error error() const; @@ -203,7 +201,6 @@ private: QAtomicInt m_audioThreadState; QWaitCondition m_threadFinished; QMutex m_mutex; - QTimer *m_intervalTimer; qreal m_cachedVolume; qreal m_volume; bool m_pullMode; diff --git a/src/multimedia/platform/gstreamer/audio/qaudioinput_gstreamer.cpp b/src/multimedia/platform/gstreamer/audio/qaudioinput_gstreamer.cpp index 99eaf3e63..eec61995b 100644 --- a/src/multimedia/platform/gstreamer/audio/qaudioinput_gstreamer.cpp +++ b/src/multimedia/platform/gstreamer/audio/qaudioinput_gstreamer.cpp @@ -297,16 +297,6 @@ int QGStreamerAudioInput::periodSize() const return m_periodSize; } -void QGStreamerAudioInput::setNotifyInterval(int ms) -{ - m_intervalTime = qMax(0, ms); -} - -int QGStreamerAudioInput::notifyInterval() const -{ - return m_intervalTime; -} - qint64 QGStreamerAudioInput::processedUSecs() const { return 0; diff --git a/src/multimedia/platform/gstreamer/audio/qaudioinput_gstreamer_p.h b/src/multimedia/platform/gstreamer/audio/qaudioinput_gstreamer_p.h index d8fa577e4..ce84c7b9a 100644 --- a/src/multimedia/platform/gstreamer/audio/qaudioinput_gstreamer_p.h +++ b/src/multimedia/platform/gstreamer/audio/qaudioinput_gstreamer_p.h @@ -89,8 +89,6 @@ public: int periodSize() const override; void setBufferSize(int value) override; int bufferSize() const override; - void setNotifyInterval(int milliSeconds) override; - int notifyInterval() const override; qint64 processedUSecs() const override; qint64 elapsedUSecs() const override; QAudio::Error error() const override; @@ -127,7 +125,6 @@ private: int m_bytesAvailable = 0; int m_bufferSize = 0; int m_periodSize = 0; - int m_intervalTime = 1000; qint64 m_elapsedTimeOffset = 0; QElapsedTimer m_timeStamp; QElapsedTimer m_clockStamp; diff --git a/src/multimedia/platform/gstreamer/audio/qaudiooutput_gstreamer.cpp b/src/multimedia/platform/gstreamer/audio/qaudiooutput_gstreamer.cpp index 325975cb0..9a92d3935 100644 --- a/src/multimedia/platform/gstreamer/audio/qaudiooutput_gstreamer.cpp +++ b/src/multimedia/platform/gstreamer/audio/qaudiooutput_gstreamer.cpp @@ -293,16 +293,6 @@ int QGStreamerAudioOutput::bufferSize() const return m_bufferSize; } -void QGStreamerAudioOutput::setNotifyInterval(int ms) -{ - m_notifyInterval = qMax(0, ms); -} - -int QGStreamerAudioOutput::notifyInterval() const -{ - return m_notifyInterval; -} - qint64 QGStreamerAudioOutput::processedUSecs() const { qint64 result = qint64(1000000) * m_totalTimeValue / diff --git a/src/multimedia/platform/gstreamer/audio/qaudiooutput_gstreamer_p.h b/src/multimedia/platform/gstreamer/audio/qaudiooutput_gstreamer_p.h index 7d3d5bf5b..a756fa584 100644 --- a/src/multimedia/platform/gstreamer/audio/qaudiooutput_gstreamer_p.h +++ b/src/multimedia/platform/gstreamer/audio/qaudiooutput_gstreamer_p.h @@ -89,8 +89,6 @@ public: int periodSize() const override; void setBufferSize(int value) override; int bufferSize() const override; - void setNotifyInterval(int milliSeconds) override; - int notifyInterval() const override; qint64 processedUSecs() const override; qint64 elapsedUSecs() const override; QAudio::Error error() const override; @@ -124,7 +122,6 @@ private: QIODevice *m_audioSource = nullptr; QRingBuffer m_buffer; QTimer m_periodTimer; - int m_notifyInterval = 1000; int m_bufferSize = 0; QElapsedTimer m_clockStamp; qint64 m_totalTimeValue = 0; diff --git a/src/multimedia/platform/gstreamer/common/qgstvideorenderersink.cpp b/src/multimedia/platform/gstreamer/common/qgstvideorenderersink.cpp index ebe870779..5c2479da5 100644 --- a/src/multimedia/platform/gstreamer/common/qgstvideorenderersink.cpp +++ b/src/multimedia/platform/gstreamer/common/qgstvideorenderersink.cpp @@ -95,7 +95,7 @@ QGstMutableCaps QGstVideoRenderer::getCaps() // All the formats that both we and gstreamer support #if QT_CONFIG(gstreamer_gl) QRhi *rhi = m_sink->rhi(); - if (rhi->backend() == QRhi::OpenGLES2) { + if (rhi && rhi->backend() == QRhi::OpenGLES2) { auto formats = QList<QVideoSurfaceFormat::PixelFormat>() // << QVideoSurfaceFormat::Format_YUV420P // << QVideoSurfaceFormat::Format_YUV422P diff --git a/src/multimedia/platform/pulseaudio/qaudioinput_pulse.cpp b/src/multimedia/platform/pulseaudio/qaudioinput_pulse.cpp index 5c602f9af..0efef06f4 100644 --- a/src/multimedia/platform/pulseaudio/qaudioinput_pulse.cpp +++ b/src/multimedia/platform/pulseaudio/qaudioinput_pulse.cpp @@ -136,7 +136,6 @@ QPulseAudioInput::QPulseAudioInput(const QByteArray &device) , m_bytesAvailable(0) , m_bufferSize(0) , m_periodSize(0) - , m_intervalTime(1000) , m_periodTime(PeriodTimeMs) , m_stream(nullptr) , m_device(device) @@ -344,7 +343,6 @@ bool QPulseAudioInput::open() m_timer->start(m_periodTime); m_clockStamp.restart(); - m_timeStamp.restart(); m_elapsedTimeOffset = 0; m_totalTimeValue = 0; @@ -486,12 +484,6 @@ qint64 QPulseAudioInput::read(char *data, qint64 len) if (!m_pullMode && readBytes >= len) break; - - if (m_intervalTime && (m_timeStamp.elapsed() + m_elapsedTimeOffset) > m_intervalTime) { - emit notify(); - m_elapsedTimeOffset = m_timeStamp.elapsed() + m_elapsedTimeOffset - m_intervalTime; - m_timeStamp.restart(); - } } #ifdef DEBUG_PULSE @@ -558,16 +550,6 @@ int QPulseAudioInput::periodSize() const return m_periodSize; } -void QPulseAudioInput::setNotifyInterval(int ms) -{ - m_intervalTime = qMax(0, ms); -} - -int QPulseAudioInput::notifyInterval() const -{ - return m_intervalTime; -} - qint64 QPulseAudioInput::processedUSecs() const { pa_sample_spec spec = QPulseAudioInternal::audioFormatToSampleSpec(m_format); @@ -625,12 +607,6 @@ bool QPulseAudioInput::deviceReady() if (m_deviceState != QAudio::ActiveState) return true; - if (m_intervalTime && (m_timeStamp.elapsed() + m_elapsedTimeOffset) > m_intervalTime) { - emit notify(); - m_elapsedTimeOffset = m_timeStamp.elapsed() + m_elapsedTimeOffset - m_intervalTime; - m_timeStamp.restart(); - } - return true; } diff --git a/src/multimedia/platform/pulseaudio/qaudioinput_pulse_p.h b/src/multimedia/platform/pulseaudio/qaudioinput_pulse_p.h index 9f4df7e5f..41770f337 100644 --- a/src/multimedia/platform/pulseaudio/qaudioinput_pulse_p.h +++ b/src/multimedia/platform/pulseaudio/qaudioinput_pulse_p.h @@ -88,8 +88,6 @@ public: int periodSize() const override; void setBufferSize(int value) override; int bufferSize() const override; - void setNotifyInterval(int milliSeconds) override; - int notifyInterval() const override; qint64 processedUSecs() const override; qint64 elapsedUSecs() const override; QAudio::Error error() const override; @@ -127,12 +125,10 @@ private: int m_bytesAvailable; int m_bufferSize; int m_periodSize; - int m_intervalTime; unsigned int m_periodTime; QTimer *m_timer; qint64 m_elapsedTimeOffset; pa_stream *m_stream; - QElapsedTimer m_timeStamp; QElapsedTimer m_clockStamp; QByteArray m_streamName; QByteArray m_device; diff --git a/src/multimedia/platform/pulseaudio/qaudiooutput_pulse.cpp b/src/multimedia/platform/pulseaudio/qaudiooutput_pulse.cpp index b5adccd85..a8dda1fa0 100644 --- a/src/multimedia/platform/pulseaudio/qaudiooutput_pulse.cpp +++ b/src/multimedia/platform/pulseaudio/qaudiooutput_pulse.cpp @@ -160,7 +160,6 @@ QPulseAudioOutput::QPulseAudioOutput(const QByteArray &device) , m_audioSource(nullptr) , m_periodTime(0) , m_stream(nullptr) - , m_notifyInterval(1000) , m_periodSize(0) , m_bufferSize(0) , m_maxBufferSize(0) @@ -407,7 +406,6 @@ bool QPulseAudioOutput::open() m_tickTimer->start(m_periodTime); m_elapsedTimeOffset = 0; - m_timeStamp.restart(); m_clockStamp.restart(); return true; @@ -493,11 +491,6 @@ void QPulseAudioOutput::userFeed() if (m_deviceState != QAudio::ActiveState) return; - - if (m_notifyInterval && (m_timeStamp.elapsed() + m_elapsedTimeOffset) > m_notifyInterval) { - emit notify(); - m_elapsedTimeOffset = m_timeStamp.restart() + m_elapsedTimeOffset - m_notifyInterval; - } } qint64 QPulseAudioOutput::write(const char *data, qint64 len) @@ -579,16 +572,6 @@ int QPulseAudioOutput::bufferSize() const return m_bufferSize; } -void QPulseAudioOutput::setNotifyInterval(int ms) -{ - m_notifyInterval = qMax(0, ms); -} - -int QPulseAudioOutput::notifyInterval() const -{ - return m_notifyInterval; -} - qint64 QPulseAudioOutput::processedUSecs() const { qint64 result = qint64(1000000) * m_totalTimeValue / m_format.bytesPerFrame() / m_format.sampleRate(); diff --git a/src/multimedia/platform/pulseaudio/qaudiooutput_pulse_p.h b/src/multimedia/platform/pulseaudio/qaudiooutput_pulse_p.h index 6f765bc60..4bcbcd576 100644 --- a/src/multimedia/platform/pulseaudio/qaudiooutput_pulse_p.h +++ b/src/multimedia/platform/pulseaudio/qaudiooutput_pulse_p.h @@ -85,8 +85,6 @@ public: int periodSize() const override; void setBufferSize(int value) override; int bufferSize() const override; - void setNotifyInterval(int milliSeconds) override; - int notifyInterval() const override; qint64 processedUSecs() const override; qint64 elapsedUSecs() const override; QAudio::Error error() const override; @@ -127,7 +125,6 @@ private: QTimer m_periodTimer; int m_periodTime; pa_stream *m_stream; - int m_notifyInterval; int m_periodSize; int m_bufferSize; int m_maxBufferSize; @@ -135,7 +132,6 @@ private: qint64 m_totalTimeValue; QTimer *m_tickTimer; char *m_audioBuffer; - QElapsedTimer m_timeStamp; qint64 m_elapsedTimeOffset; bool m_resuming; QString m_category; diff --git a/src/multimedia/platform/qnx/audio/qnxaudioinput.cpp b/src/multimedia/platform/qnx/audio/qnxaudioinput.cpp index cdf68e5ea..bf36a0aad 100644 --- a/src/multimedia/platform/qnx/audio/qnxaudioinput.cpp +++ b/src/multimedia/platform/qnx/audio/qnxaudioinput.cpp @@ -60,7 +60,6 @@ QnxAudioInput::QnxAudioInput() , m_bytesAvailable(0) , m_bufferSize(0) , m_periodSize(0) - , m_intervalTime(1000) , m_pullMode(true) { } @@ -176,16 +175,6 @@ int QnxAudioInput::bufferSize() const return m_bufferSize; } -void QnxAudioInput::setNotifyInterval(int milliSeconds) -{ - m_intervalTime = qMax(0, milliSeconds); -} - -int QnxAudioInput::notifyInterval() const -{ - return m_intervalTime; -} - qint64 QnxAudioInput::processedUSecs() const { return qint64(1000000) * m_format.framesForBytes(m_bytesRead) / m_format.sampleRate(); @@ -256,12 +245,6 @@ bool QnxAudioInput::deviceReady() if (m_state != QAudio::ActiveState) return true; - if (m_intervalTime && (m_timeStamp.elapsed() + m_elapsedTimeOffset) > m_intervalTime) { - emit notify(); - m_elapsedTimeOffset = m_timeStamp.elapsed() + m_elapsedTimeOffset - m_intervalTime; - m_timeStamp.restart(); - } - return true; } @@ -324,7 +307,6 @@ bool QnxAudioInput::open() m_periodSize = qMin(2048, setup.buf.block.frag_size); m_clockStamp.restart(); - m_timeStamp.restart(); m_elapsedTimeOffset = 0; m_totalTimeValue = 0; m_bytesRead = 0; diff --git a/src/multimedia/platform/qnx/audio/qnxaudioinput_p.h b/src/multimedia/platform/qnx/audio/qnxaudioinput_p.h index 59087e37b..86b21f667 100644 --- a/src/multimedia/platform/qnx/audio/qnxaudioinput_p.h +++ b/src/multimedia/platform/qnx/audio/qnxaudioinput_p.h @@ -80,8 +80,6 @@ public: int periodSize() const override; void setBufferSize(int ) override; int bufferSize() const override; - void setNotifyInterval(int ) override; - int notifyInterval() const override; qint64 processedUSecs() const override; qint64 elapsedUSecs() const override; QAudio::Error error() const override; @@ -104,7 +102,6 @@ private: void setError(QAudio::Error error); void setState(QAudio::State state); - QElapsedTimer m_timeStamp; QElapsedTimer m_clockStamp; QAudioFormat m_format; @@ -124,7 +121,6 @@ private: int m_bytesAvailable; int m_bufferSize; int m_periodSize; - int m_intervalTime; bool m_pullMode; }; diff --git a/src/multimedia/platform/qnx/audio/qnxaudiooutput.cpp b/src/multimedia/platform/qnx/audio/qnxaudiooutput.cpp index 083b54570..373d04237 100644 --- a/src/multimedia/platform/qnx/audio/qnxaudiooutput.cpp +++ b/src/multimedia/platform/qnx/audio/qnxaudiooutput.cpp @@ -50,14 +50,12 @@ QT_BEGIN_NAMESPACE QnxAudioOutput::QnxAudioOutput() : m_source(0) , m_pushSource(false) - , m_notifyInterval(1000) , m_error(QAudio::NoError) , m_state(QAudio::StoppedState) , m_volume(1.0) , m_periodSize(0) , m_pcmHandle(0) , m_bytesWritten(0) - , m_intervalOffset(0) #if _NTO_VERSION >= 700 , m_pcmNotifier(0) #endif @@ -166,16 +164,6 @@ int QnxAudioOutput::periodSize() const return m_periodSize; } -void QnxAudioOutput::setNotifyInterval(int ms) -{ - m_notifyInterval = ms; -} - -int QnxAudioOutput::notifyInterval() const -{ - return m_notifyInterval; -} - qint64 QnxAudioOutput::processedUSecs() const { return qint64(1000000) * m_format.framesForBytes(m_bytesWritten) / m_format.sampleRate(); @@ -274,12 +262,6 @@ void QnxAudioOutput::pullData() if (m_state != QAudio::ActiveState) return; - - if (m_notifyInterval > 0 && (m_intervalTimeStamp.elapsed() + m_intervalOffset) > m_notifyInterval) { - emit notify(); - m_intervalOffset = m_intervalTimeStamp.elapsed() + m_intervalOffset - m_notifyInterval; - m_intervalTimeStamp.restart(); - } } bool QnxAudioOutput::open() @@ -348,8 +330,6 @@ bool QnxAudioOutput::open() m_periodSize = qMin(2048, setup.buf.block.frag_size); m_startTimeStamp.restart(); - m_intervalTimeStamp.restart(); - m_intervalOffset = 0; m_bytesWritten = 0; createPcmNotifiers(); diff --git a/src/multimedia/platform/qnx/audio/qnxaudiooutput_p.h b/src/multimedia/platform/qnx/audio/qnxaudiooutput_p.h index 55b5e7be5..0a9228d36 100644 --- a/src/multimedia/platform/qnx/audio/qnxaudiooutput_p.h +++ b/src/multimedia/platform/qnx/audio/qnxaudiooutput_p.h @@ -83,8 +83,6 @@ public: int periodSize() const override; void setBufferSize(int) override {} int bufferSize() const override { return 0; } - void setNotifyInterval(int ms) override; - int notifyInterval() const override; qint64 processedUSecs() const override; qint64 elapsedUSecs() const override; QAudio::Error error() const override; @@ -120,7 +118,6 @@ private: bool m_pushSource; QTimer m_timer; - int m_notifyInterval; QAudio::Error m_error; QAudio::State m_state; QAudioFormat m_format; @@ -131,8 +128,6 @@ private: snd_pcm_t *m_pcmHandle; qint64 m_bytesWritten; QElapsedTimer m_startTimeStamp; - QElapsedTimer m_intervalTimeStamp; - qint64 m_intervalOffset; #if _NTO_VERSION >= 700 QSocketNotifier *m_pcmNotifier; diff --git a/src/multimedia/platform/windows/audio/qwindowsaudioinput.cpp b/src/multimedia/platform/windows/audio/qwindowsaudioinput.cpp index 3f2423ad5..65d15ef96 100644 --- a/src/multimedia/platform/windows/audio/qwindowsaudioinput.cpp +++ b/src/multimedia/platform/windows/audio/qwindowsaudioinput.cpp @@ -65,7 +65,6 @@ QWindowsAudioInput::QWindowsAudioInput(int deviceId) period_size = 0; m_deviceId = deviceId; totalTimeValue = 0; - intervalTime = 1000; errorState = QAudio::NoError; deviceState = QAudio::StoppedState; audioSource = 0; @@ -323,7 +322,6 @@ bool QWindowsAudioInput::open() return false; } - timeStamp.restart(); elapsedTimeOffset = 0; if (waveInOpen(&hWaveIn, UINT_PTR(m_deviceId), &wfx.Format, @@ -610,16 +608,6 @@ int QWindowsAudioInput::periodSize() const return period_size; } -void QWindowsAudioInput::setNotifyInterval(int ms) -{ - intervalTime = qMax(0, ms); -} - -int QWindowsAudioInput::notifyInterval() const -{ - return intervalTime; -} - qint64 QWindowsAudioInput::processedUSecs() const { if (deviceState == QAudio::StoppedState) @@ -668,11 +656,6 @@ bool QWindowsAudioInput::deviceReady() a->trigger(); } - if(intervalTime && (timeStamp.elapsed() + elapsedTimeOffset) > intervalTime) { - emit notify(); - elapsedTimeOffset = timeStamp.elapsed() + elapsedTimeOffset - intervalTime; - timeStamp.restart(); - } return true; } diff --git a/src/multimedia/platform/windows/audio/qwindowsaudioinput_p.h b/src/multimedia/platform/windows/audio/qwindowsaudioinput_p.h index 17341945d..459c36f56 100644 --- a/src/multimedia/platform/windows/audio/qwindowsaudioinput_p.h +++ b/src/multimedia/platform/windows/audio/qwindowsaudioinput_p.h @@ -99,8 +99,6 @@ public: int periodSize() const; void setBufferSize(int value); int bufferSize() const; - void setNotifyInterval(int milliSeconds); - int notifyInterval() const; qint64 processedUSecs() const; qint64 elapsedUSecs() const; QAudio::Error error() const; @@ -119,8 +117,6 @@ private: qint32 header; int m_deviceId; int bytesAvailable; - int intervalTime; - QElapsedTimer timeStamp; qint64 elapsedTimeOffset; QElapsedTimer timeStampOpened; qint64 totalTimeValue; diff --git a/src/multimedia/platform/windows/audio/qwindowsaudiooutput.cpp b/src/multimedia/platform/windows/audio/qwindowsaudiooutput.cpp index b9f746e91..3c805f780 100644 --- a/src/multimedia/platform/windows/audio/qwindowsaudiooutput.cpp +++ b/src/multimedia/platform/windows/audio/qwindowsaudiooutput.cpp @@ -67,7 +67,6 @@ QWindowsAudioOutput::QWindowsAudioOutput(int deviceId) period_size = 0; m_deviceId = deviceId; totalTimeValue = 0; - intervalTime = 1000; audioBuffer = 0; errorState = QAudio::NoError; deviceState = QAudio::StoppedState; @@ -272,7 +271,6 @@ bool QWindowsAudioOutput::open() if(audioBuffer == 0) audioBuffer = new char[blocks_count * period_size]; - timeStamp.restart(); elapsedTimeOffset = 0; if (waveOutOpen(&hWaveOut, UINT_PTR(m_deviceId), &wfx.Format, @@ -351,16 +349,6 @@ int QWindowsAudioOutput::bufferSize() const return buffer_size; } -void QWindowsAudioOutput::setNotifyInterval(int ms) -{ - intervalTime = qMax(0, ms); -} - -int QWindowsAudioOutput::notifyInterval() const -{ - return intervalTime; -} - qint64 QWindowsAudioOutput::processedUSecs() const { if (deviceState == QAudio::StoppedState) @@ -492,11 +480,6 @@ bool QWindowsAudioOutput::deviceReady() #ifdef DEBUG_AUDIO qDebug() << "Skipping data as unable to write"; #endif - if ((timeStamp.elapsed() + elapsedTimeOffset) > intervalTime) { - emit notify(); - elapsedTimeOffset = timeStamp.elapsed() + elapsedTimeOffset - intervalTime; - timeStamp.restart(); - } return true; } @@ -555,14 +538,6 @@ bool QWindowsAudioOutput::deviceReady() } } } - if(deviceState != QAudio::ActiveState && deviceState != QAudio::IdleState) - return true; - - if(intervalTime && (timeStamp.elapsed() + elapsedTimeOffset) > intervalTime) { - emit notify(); - elapsedTimeOffset = timeStamp.elapsed() + elapsedTimeOffset - intervalTime; - timeStamp.restart(); - } return true; } diff --git a/src/multimedia/platform/windows/audio/qwindowsaudiooutput_p.h b/src/multimedia/platform/windows/audio/qwindowsaudiooutput_p.h index c5ad75f33..983287a4c 100644 --- a/src/multimedia/platform/windows/audio/qwindowsaudiooutput_p.h +++ b/src/multimedia/platform/windows/audio/qwindowsaudiooutput_p.h @@ -97,8 +97,6 @@ public: int periodSize() const; void setBufferSize(int value); int bufferSize() const; - void setNotifyInterval(int milliSeconds); - int notifyInterval() const; qint64 processedUSecs() const; qint64 elapsedUSecs() const; QAudio::Error error() const; @@ -119,7 +117,6 @@ private: void pauseAndSleep(); int m_deviceId; int bytesAvailable; - QElapsedTimer timeStamp; qint64 elapsedTimeOffset; QElapsedTimer timeStampOpened; qint32 buffer_size; @@ -127,7 +124,6 @@ private: qint32 blocks_count; qint64 totalTimeValue; bool pullMode; - int intervalTime; qreal volumeCache; static void QT_WIN_CALLBACK waveOutProc( HWAVEOUT hWaveOut, UINT uMsg, DWORD_PTR dwInstance, DWORD_PTR dwParam1, DWORD_PTR dwParam2 ); diff --git a/src/multimedia/playback/qmediaplayer.cpp b/src/multimedia/playback/qmediaplayer.cpp index 4941c12ad..abe2b4ab4 100644 --- a/src/multimedia/playback/qmediaplayer.cpp +++ b/src/multimedia/playback/qmediaplayer.cpp @@ -72,37 +72,12 @@ QT_BEGIN_NAMESPACE \sa QVideoWidget */ -void QMediaPlayerPrivate::_q_notify() -{ - Q_Q(QMediaPlayer); - - const QMetaObject* m = q->metaObject(); - - // QTBUG-57045 - // we create a copy of notifyProperties container to ensure that if a property is removed - // from the original container as a result of invoking propertyChanged signal, the iterator - // won't become invalidated - QSet<int> properties = notifyProperties; - - for (int pi : qAsConst(properties)) { - QMetaProperty p = m->property(pi); - p.notifySignal().invoke( - q, QGenericArgument(p.metaType().name(), p.read(q).data())); - } -} - void QMediaPlayerPrivate::setState(QMediaPlayer::State ps) { Q_Q(QMediaPlayer); if (ps != state) { state = ps; - - if (ps == QMediaPlayer::PlayingState) - q->addPropertyWatch("position"); - else - q->removePropertyWatch("position"); - emit q->stateChanged(ps); } } @@ -118,17 +93,6 @@ void QMediaPlayerPrivate::setStatus(QMediaPlayer::MediaStatus s) if (s != status) { status = s; - - switch (s) { - case QMediaPlayer::StalledMedia: - case QMediaPlayer::BufferingMedia: - q->addPropertyWatch("bufferStatus"); - break; - default: - q->removePropertyWatch("bufferStatus"); - break; - } - emit q->mediaStatusChanged(s); } } @@ -235,10 +199,6 @@ QMediaPlayer::QMediaPlayer(QObject *parent) { Q_D(QMediaPlayer); - d->notifyTimer = new QTimer(this); - d->notifyTimer->setInterval(1000); - connect(d->notifyTimer, SIGNAL(timeout()), SLOT(_q_notify())); - d->control = QPlatformMediaIntegration::instance()->createPlayer(this); if (!d->control) { // ### Should this be an assertion? d->setError(QMediaPlayer::ResourceError, QMediaPlayer::tr("Platform does not support media playback.")); @@ -249,12 +209,6 @@ QMediaPlayer::QMediaPlayer(QObject *parent) d->state = d->control->state(); d->status = d->control->mediaStatus(); - if (d->state == PlayingState) - addPropertyWatch("position"); - - if (d->status == StalledMedia || d->status == BufferingMedia) - addPropertyWatch("bufferStatus"); - d->hasStreamPlaybackFeature = d->control->streamPlaybackSupported(); } @@ -274,66 +228,6 @@ QMediaPlayer::~QMediaPlayer() delete d->control; } -int QMediaPlayer::notifyInterval() const -{ - return d_func()->notifyTimer->interval(); -} - -void QMediaPlayer::setNotifyInterval(int milliSeconds) -{ - Q_D(QMediaPlayer); - - if (d->notifyTimer->interval() != milliSeconds) { - d->notifyTimer->setInterval(milliSeconds); - - emit notifyIntervalChanged(milliSeconds); - } -} - -/*! - Watch the property \a name. The property's notify signal will be emitted - once every \c notifyInterval milliseconds. - - \sa notifyInterval -*/ - -void QMediaPlayer::addPropertyWatch(QByteArray const &name) -{ - Q_D(QMediaPlayer); - - const QMetaObject* m = metaObject(); - - int index = m->indexOfProperty(name.constData()); - - if (index != -1 && m->property(index).hasNotifySignal()) { - d->notifyProperties.insert(index); - - if (!d->notifyTimer->isActive()) - d->notifyTimer->start(); - } -} - -/*! - Remove property \a name from the list of properties whose changes are - regularly signaled. - - \sa notifyInterval -*/ - -void QMediaPlayer::removePropertyWatch(QByteArray const &name) -{ - Q_D(QMediaPlayer); - - int index = metaObject()->indexOfProperty(name.constData()); - - if (index != -1) { - d->notifyProperties.remove(index); - - if (d->notifyProperties.isEmpty()) - d->notifyTimer->stop(); - } -} - QUrl QMediaPlayer::media() const { Q_D(const QMediaPlayer); @@ -940,8 +834,7 @@ QList<QAudio::Role> QMediaPlayer::supportedAudioRoles() const The value is the current playback position, expressed in milliseconds since the beginning of the media. Periodically changes in the position will be - indicated with the signal positionChanged(), the interval between updates - can be set with setNotifyInterval(). + indicated with the signal positionChanged(). */ /*! diff --git a/src/multimedia/playback/qmediaplayer.h b/src/multimedia/playback/qmediaplayer.h index 31f584c98..840e521f1 100644 --- a/src/multimedia/playback/qmediaplayer.h +++ b/src/multimedia/playback/qmediaplayer.h @@ -55,7 +55,6 @@ class QMediaPlayerPrivate; class Q_MULTIMEDIA_EXPORT QMediaPlayer : public QObject { Q_OBJECT - Q_PROPERTY(int notifyInterval READ notifyInterval WRITE setNotifyInterval NOTIFY notifyIntervalChanged) Q_PROPERTY(QUrl media READ media WRITE setMedia NOTIFY mediaChanged) Q_PROPERTY(qint64 duration READ duration NOTIFY durationChanged) Q_PROPERTY(qint64 position READ position WRITE setPosition NOTIFY positionChanged) @@ -113,11 +112,6 @@ public: // bool enableLowLatencyPlayback(bool tryEnable); // bool isLowLatencyPlaybackEnabled() const; - int notifyInterval() const; - void setNotifyInterval(int milliSeconds); - void addPropertyWatch(QByteArray const &name); - void removePropertyWatch(QByteArray const &name); - bool setAudioOutput(const QAudioDeviceInfo &device); QAudioDeviceInfo audioOutput() const; @@ -180,10 +174,7 @@ public Q_SLOTS: void setMedia(const QUrl &media, QIODevice *stream = nullptr); Q_SIGNALS: - void notifyIntervalChanged(int milliSeconds); - void mediaChanged(const QUrl &media); - void stateChanged(QMediaPlayer::State newState); void mediaStatusChanged(QMediaPlayer::MediaStatus status); @@ -213,7 +204,6 @@ private: Q_DISABLE_COPY(QMediaPlayer) Q_DECLARE_PRIVATE(QMediaPlayer) friend class QPlatformMediaPlayer; - Q_PRIVATE_SLOT(d_func(), void _q_notify()) }; QT_END_NAMESPACE diff --git a/src/multimedia/playback/qmediaplayer_p.h b/src/multimedia/playback/qmediaplayer_p.h index b0e775a6c..f0ff1bbd6 100644 --- a/src/multimedia/playback/qmediaplayer_p.h +++ b/src/multimedia/playback/qmediaplayer_p.h @@ -72,7 +72,7 @@ class QMediaPlayerPrivate : public QObjectPrivate Q_DECLARE_PUBLIC(QMediaPlayer) public: - QMediaPlayerPrivate() : notifyTimer(nullptr) {} + QMediaPlayerPrivate() = default; QPlatformMediaPlayer* control = nullptr; QString errorString; @@ -96,10 +96,6 @@ public: void setState(QMediaPlayer::State state); void setStatus(QMediaPlayer::MediaStatus status); void setError(int error, const QString &errorString); - void _q_notify(); - - QTimer *notifyTimer; - QSet<int> notifyProperties; }; QT_END_NAMESPACE diff --git a/src/multimedia/video/qvideotexturehelper.cpp b/src/multimedia/video/qvideotexturehelper.cpp index 56282445d..f0797b039 100644 --- a/src/multimedia/video/qvideotexturehelper.cpp +++ b/src/multimedia/video/qvideotexturehelper.cpp @@ -264,6 +264,40 @@ static QMatrix4x4 colorMatrix(QVideoSurfaceFormat::YCbCrColorSpace colorSpace) } } +#if 0 +static QMatrix4x4 yuvColorCorrectionMatrix(float brightness, float contrast, float hue, float saturation) +{ + // Color correction in YUV space is done as follows: + + // The formulas assumes values in range 0-255, and a blackpoint of Y=16, whitepoint of Y=235 + // + // Bightness: b + // Contrast: c + // Hue: h + // Saturation: s + // + // Y' = (Y - 16)*c + b + 16 + // U' = ((U - 128)*cos(h) + (V - 128)*sin(h))*c*s + 128 + // V' = ((V - 128)*cos(h) - (U - 128)*sin(h))*c*s + 128 + // + // For normalized YUV values (0-1 range) as we have them in the pixel shader, this translates to: + // + // Y' = (Y - .0625)*c + b + .0625 + // U' = ((U - .5)*cos(h) + (V - .5)*sin(h))*c*s + .5 + // V' = ((V - .5)*cos(h) - (U - .5)*sin(h))*c*s + .5 + // + // The values need to be clamped to 0-1 after the correction and before converting to RGB + // The transformation can be encoded in a 4x4 matrix assuming we have an A component of 1 + + float chcs = cos(hue)*contrast*saturation; + float shcs = sin(hue)*contrast*saturation; + return QMatrix4x4(contrast, 0, 0, .0625*(1 - contrast) + brightness, + 0, chcs, shcs, .5*(1 - chcs - shcs), + 0, -shcs, chcs, .5*(1 + shcs - chcs), + 0, 0, 0, 1); +} +#endif + QByteArray uniformData(const QVideoSurfaceFormat &format, const QMatrix4x4 &transform, float opacity) { QMatrix4x4 cmat; diff --git a/tests/auto/integration/qaudioinput/tst_qaudioinput.cpp b/tests/auto/integration/qaudioinput/tst_qaudioinput.cpp index 566d42bc9..1ee4915cc 100644 --- a/tests/auto/integration/qaudioinput/tst_qaudioinput.cpp +++ b/tests/auto/integration/qaudioinput/tst_qaudioinput.cpp @@ -79,8 +79,6 @@ private slots: void invalidFormat(); void bufferSize(); - void notifyInterval(); - void disableNotifyInterval(); void stopWhileStopped(); void suspendWhileStopped(); @@ -295,70 +293,6 @@ void tst_QAudioInput::bufferSize() QString("bufferSize: requested=8192, actual=%2").arg(audioInput.bufferSize()).toLocal8Bit().constData()); } -void tst_QAudioInput::notifyInterval() -{ - QAudioInput audioInput(audioDevice.preferredFormat(), this); - - QVERIFY2((audioInput.error() == QAudio::NoError), "error() was not set to QAudio::NoError on creation"); - - audioInput.setNotifyInterval(50); - QVERIFY2((audioInput.error() == QAudio::NoError), "error() is not QAudio::NoError after setNotifyInterval(50)"); - QVERIFY2((audioInput.notifyInterval() == 50), - QString("notifyInterval: requested=50, actual=%2").arg(audioInput.notifyInterval()).toLocal8Bit().constData()); - - audioInput.setNotifyInterval(100); - QVERIFY2((audioInput.error() == QAudio::NoError), "error() is not QAudio::NoError after setNotifyInterval(100)"); - QVERIFY2((audioInput.notifyInterval() == 100), - QString("notifyInterval: requested=100, actual=%2").arg(audioInput.notifyInterval()).toLocal8Bit().constData()); - - audioInput.setNotifyInterval(250); - QVERIFY2((audioInput.error() == QAudio::NoError), "error() is not QAudio::NoError after setNotifyInterval(250)"); - QVERIFY2((audioInput.notifyInterval() == 250), - QString("notifyInterval: requested=250, actual=%2").arg(audioInput.notifyInterval()).toLocal8Bit().constData()); - - audioInput.setNotifyInterval(1000); - QVERIFY2((audioInput.error() == QAudio::NoError), "error() is not QAudio::NoError after setNotifyInterval(1000)"); - QVERIFY2((audioInput.notifyInterval() == 1000), - QString("notifyInterval: requested=1000, actual=%2").arg(audioInput.notifyInterval()).toLocal8Bit().constData()); -} - -void tst_QAudioInput::disableNotifyInterval() -{ - // Sets an invalid notification interval (QAudioInput::setNotifyInterval(0)) - // Checks that - // - No error is raised (QAudioInput::error() returns QAudio::NoError) - // - if <= 0, set to zero and disable notify signal - - QAudioInput audioInput(audioDevice.preferredFormat(), this); - - QVERIFY2((audioInput.error() == QAudio::NoError), "error() was not set to QAudio::NoError on creation"); - - audioInput.setNotifyInterval(0); - QVERIFY2((audioInput.error() == QAudio::NoError), "error() is not QAudio::NoError after setNotifyInterval(0)"); - QVERIFY2((audioInput.notifyInterval() == 0), - "notifyInterval() is not zero after setNotifyInterval(0)"); - - audioInput.setNotifyInterval(-1); - QVERIFY2((audioInput.error() == QAudio::NoError), "error() is not QAudio::NoError after setNotifyInterval(-1)"); - QVERIFY2((audioInput.notifyInterval() == 0), - "notifyInterval() is not zero after setNotifyInterval(-1)"); - - //start and run to check if notify() is emitted - if (audioFiles.size() > 0) { - QAudioInput audioInputCheck(testFormats.at(0), this); - audioInputCheck.setNotifyInterval(0); - QSignalSpy notifySignal(&audioInputCheck, SIGNAL(notify())); - QFile *audioFile = audioFiles.at(0).data(); - audioFile->open(QIODevice::WriteOnly); - audioInputCheck.start(audioFile); - QTest::qWait(3000); // 3 seconds should be plenty - audioInputCheck.stop(); - QVERIFY2((notifySignal.count() == 0), - QString("didn't disable notify interval: shouldn't have got any but got %1").arg(notifySignal.count()).toLocal8Bit().constData()); - audioFile->close(); - } -} - void tst_QAudioInput::stopWhileStopped() { // Calls QAudioInput::stop() when object is already in StoppedState @@ -426,8 +360,6 @@ void tst_QAudioInput::pull() QAudioInput audioInput(audioFormat, this); - audioInput.setNotifyInterval(100); - QSignalSpy notifySignal(&audioInput, SIGNAL(notify())); QSignalSpy stateSignal(&audioInput, SIGNAL(stateChanged(QAudio::State))); @@ -493,8 +425,6 @@ void tst_QAudioInput::pullSuspendResume() QAudioInput audioInput(audioFormat, this); - audioInput.setNotifyInterval(100); - QSignalSpy notifySignal(&audioInput, SIGNAL(notify())); QSignalSpy stateSignal(&audioInput, SIGNAL(stateChanged(QAudio::State))); @@ -589,8 +519,6 @@ void tst_QAudioInput::push() QAudioInput audioInput(audioFormat, this); - audioInput.setNotifyInterval(100); - QSignalSpy notifySignal(&audioInput, SIGNAL(notify())); QSignalSpy stateSignal(&audioInput, SIGNAL(stateChanged(QAudio::State))); @@ -675,7 +603,6 @@ void tst_QAudioInput::pushSuspendResume() QFETCH(QAudioFormat, audioFormat); QAudioInput audioInput(audioFormat, this); - audioInput.setNotifyInterval(100); audioInput.setBufferSize(audioFormat.bytesForDuration(1000000)); QSignalSpy notifySignal(&audioInput, SIGNAL(notify())); @@ -799,8 +726,6 @@ void tst_QAudioInput::reset() { QAudioInput audioInput(audioFormat, this); - audioInput.setNotifyInterval(100); - QSignalSpy notifySignal(&audioInput, SIGNAL(notify())); QSignalSpy stateSignal(&audioInput, SIGNAL(stateChanged(QAudio::State))); @@ -832,8 +757,6 @@ void tst_QAudioInput::reset() QAudioInput audioInput(audioFormat, this); QBuffer buffer; - audioInput.setNotifyInterval(100); - QSignalSpy notifySignal(&audioInput, SIGNAL(notify())); QSignalSpy stateSignal(&audioInput, SIGNAL(stateChanged(QAudio::State))); diff --git a/tests/auto/integration/qaudiooutput/tst_qaudiooutput.cpp b/tests/auto/integration/qaudiooutput/tst_qaudiooutput.cpp index dd051cc7b..bf5321aea 100644 --- a/tests/auto/integration/qaudiooutput/tst_qaudiooutput.cpp +++ b/tests/auto/integration/qaudiooutput/tst_qaudiooutput.cpp @@ -74,11 +74,6 @@ private slots: void bufferSize_data(); void bufferSize(); - void notifyInterval_data(); - void notifyInterval(); - - void disableNotifyInterval(); - void stopWhileStopped(); void suspendWhileStopped(); void resumeWhileStopped(); @@ -342,67 +337,6 @@ void tst_QAudioOutput::bufferSize() QString("bufferSize: requested=%1, actual=%2").arg(bufferSize).arg(audioOutput.bufferSize()).toLocal8Bit().constData()); } -void tst_QAudioOutput::notifyInterval_data() -{ - QTest::addColumn<int>("interval"); - QTest::newRow("Notify interval 50") << 50; - QTest::newRow("Notify interval 100") << 100; - QTest::newRow("Notify interval 250") << 250; - QTest::newRow("Notify interval 1000") << 1000; -} - -void tst_QAudioOutput::notifyInterval() -{ - QFETCH(int, interval); - QAudioOutput audioOutput(audioDevice.preferredFormat(), this); - - QVERIFY2((audioOutput.error() == QAudio::NoError), "error() was not set to QAudio::NoError on creation"); - - audioOutput.setNotifyInterval(interval); - QVERIFY2((audioOutput.error() == QAudio::NoError), QString("error() is not QAudio::NoError after setNotifyInterval(%1)").arg(interval).toLocal8Bit().constData()); - QVERIFY2((audioOutput.notifyInterval() == interval), - QString("notifyInterval: requested=%1, actual=%2").arg(interval).arg(audioOutput.notifyInterval()).toLocal8Bit().constData()); -} - -void tst_QAudioOutput::disableNotifyInterval() -{ - // Sets an invalid notification interval (QAudioOutput::setNotifyInterval(0)) - // Checks that - // - No error is raised (QAudioOutput::error() returns QAudio::NoError) - // - if <= 0, set to zero and disable notify signal - - QAudioOutput audioOutput(audioDevice.preferredFormat(), this); - - QVERIFY2((audioOutput.error() == QAudio::NoError), "error() was not set to QAudio::NoError on creation"); - - audioOutput.setNotifyInterval(0); - QVERIFY2((audioOutput.error() == QAudio::NoError), "error() is not QAudio::NoError after setNotifyInterval(0)"); - QVERIFY2((audioOutput.notifyInterval() == 0), - "notifyInterval() is not zero after setNotifyInterval(0)"); - - audioOutput.setNotifyInterval(-1); - QVERIFY2((audioOutput.error() == QAudio::NoError), "error() is not QAudio::NoError after setNotifyInterval(-1)"); - QVERIFY2((audioOutput.notifyInterval() == 0), - "notifyInterval() is not zero after setNotifyInterval(-1)"); - - //start and run to check if notify() is emitted - if (audioFiles.size() > 0) { - QAudioOutput audioOutputCheck(testFormats.at(0), this); - audioOutputCheck.setNotifyInterval(0); - audioOutputCheck.setVolume(0.1f); - - QSignalSpy notifySignal(&audioOutputCheck, SIGNAL(notify())); - QFile *audioFile = audioFiles.at(0).data(); - audioFile->open(QIODevice::ReadOnly); - audioOutputCheck.start(audioFile); - QTest::qWait(3000); // 3 seconds should be plenty - audioOutputCheck.stop(); - QVERIFY2((notifySignal.count() == 0), - QString("didn't disable notify interval: shouldn't have got any but got %1").arg(notifySignal.count()).toLocal8Bit().constData()); - audioFile->close(); - } -} - void tst_QAudioOutput::stopWhileStopped() { // Calls QAudioOutput::stop() when object is already in StoppedState @@ -470,7 +404,6 @@ void tst_QAudioOutput::pull() QAudioOutput audioOutput(audioFormat, this); - audioOutput.setNotifyInterval(100); audioOutput.setVolume(0.1f); QSignalSpy notifySignal(&audioOutput, SIGNAL(notify())); @@ -529,7 +462,6 @@ void tst_QAudioOutput::pullSuspendResume() QFETCH(QAudioFormat, audioFormat); QAudioOutput audioOutput(audioFormat, this); - audioOutput.setNotifyInterval(100); audioOutput.setVolume(0.1f); QSignalSpy notifySignal(&audioOutput, SIGNAL(notify())); @@ -616,7 +548,6 @@ void tst_QAudioOutput::push() QAudioOutput audioOutput(audioFormat, this); - audioOutput.setNotifyInterval(100); audioOutput.setVolume(0.1f); QSignalSpy notifySignal(&audioOutput, SIGNAL(notify())); @@ -703,7 +634,6 @@ void tst_QAudioOutput::pushSuspendResume() QAudioOutput audioOutput(audioFormat, this); - audioOutput.setNotifyInterval(100); audioOutput.setVolume(0.1f); QSignalSpy notifySignal(&audioOutput, SIGNAL(notify())); @@ -833,7 +763,6 @@ void tst_QAudioOutput::pushUnderrun() QAudioOutput audioOutput(audioFormat, this); - audioOutput.setNotifyInterval(100); audioOutput.setVolume(0.1f); QSignalSpy notifySignal(&audioOutput, SIGNAL(notify())); diff --git a/tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp b/tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp index 34dec384e..b4ef2847c 100644 --- a/tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp +++ b/tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp @@ -238,7 +238,6 @@ void tst_QMediaPlayerBackend::unloadMedia() QSKIP("Sound format is not supported"); QMediaPlayer player; - player.setNotifyInterval(50); QSignalSpy stateSpy(&player, SIGNAL(stateChanged(QMediaPlayer::State))); QSignalSpy statusSpy(&player, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus))); @@ -302,7 +301,6 @@ void tst_QMediaPlayerBackend::playPauseStop() QSKIP("Sound format is not supported"); QMediaPlayer player; - player.setNotifyInterval(50); QSignalSpy stateSpy(&player, SIGNAL(stateChanged(QMediaPlayer::State))); QSignalSpy statusSpy(&player, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus))); @@ -457,7 +455,6 @@ void tst_QMediaPlayerBackend::processEOS() QSKIP("Sound format is not supported"); QMediaPlayer player; - player.setNotifyInterval(50); QSignalSpy stateSpy(&player, SIGNAL(stateChanged(QMediaPlayer::State))); QSignalSpy statusSpy(&player, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus))); @@ -818,7 +815,6 @@ void tst_QMediaPlayerBackend::seekInStoppedState() QSKIP("No supported video file"); QMediaPlayer player; - player.setNotifyInterval(500); QSignalSpy stateSpy(&player, SIGNAL(stateChanged(QMediaPlayer::State))); QSignalSpy positionSpy(&player, SIGNAL(positionChanged(qint64))); diff --git a/tests/auto/unit/multimedia/qmediaplayer/tst_qmediaplayer.cpp b/tests/auto/unit/multimedia/qmediaplayer/tst_qmediaplayer.cpp index 2e724b879..b93c57f79 100644 --- a/tests/auto/unit/multimedia/qmediaplayer/tst_qmediaplayer.cpp +++ b/tests/auto/unit/multimedia/qmediaplayer/tst_qmediaplayer.cpp @@ -77,11 +77,6 @@ public slots: void cleanup(); private slots: - void propertyWatch(); - void notifySignals_data(); - void notifySignals(); - void notifyInterval_data(); - void notifyInterval(); void testNullService_data(); void testNullService(); void testValid(); @@ -126,7 +121,6 @@ private slots: void testAudioRole(); private: - void setupNotifyTests(); void setupCommonTestData(); QMockIntegration *mockIntegration; @@ -144,9 +138,6 @@ class QtTestMediaPlayer : public QMediaPlayer public: QtTestMediaPlayer() : QMediaPlayer() {} - using QMediaPlayer::addPropertyWatch; - using QMediaPlayer::removePropertyWatch; - [[nodiscard]] int a() const { return m_a; } void setA(int a) { m_a = a; } @@ -171,190 +162,6 @@ private: int m_d = 0; }; -void tst_QMediaPlayer::propertyWatch() -{ - QtTestMediaPlayer object; - object.setNotifyInterval(0); - - QEventLoop loop; - connect(&object, SIGNAL(aChanged(int)), &QTestEventLoop::instance(), SLOT(exitLoop())); - connect(&object, SIGNAL(bChanged(int)), &QTestEventLoop::instance(), SLOT(exitLoop())); - connect(&object, SIGNAL(cChanged(int)), &QTestEventLoop::instance(), SLOT(exitLoop())); - - QSignalSpy aSpy(&object, SIGNAL(aChanged(int))); - QSignalSpy bSpy(&object, SIGNAL(bChanged(int))); - QSignalSpy cSpy(&object, SIGNAL(cChanged(int))); - - QTestEventLoop::instance().enterLoop(1); - - QCOMPARE(aSpy.count(), 0); - QCOMPARE(bSpy.count(), 0); - QCOMPARE(cSpy.count(), 0); - - int aCount = 0; - int bCount = 0; - int cCount = 0; - - object.addPropertyWatch("a"); - - QTestEventLoop::instance().enterLoop(1); - - QVERIFY(aSpy.count() > aCount); - QCOMPARE(bSpy.count(), 0); - QCOMPARE(cSpy.count(), 0); - QCOMPARE(aSpy.last().value(0).toInt(), 0); - - aCount = aSpy.count(); - - object.setA(54); - object.setB(342); - object.setC(233); - - QTestEventLoop::instance().enterLoop(1); - - QVERIFY(aSpy.count() > aCount); - QCOMPARE(bSpy.count(), 0); - QCOMPARE(cSpy.count(), 0); - QCOMPARE(aSpy.last().value(0).toInt(), 54); - - aCount = aSpy.count(); - - object.addPropertyWatch("b"); - object.addPropertyWatch("d"); - object.removePropertyWatch("e"); - object.setA(43); - object.setB(235); - object.setC(90); - - QTestEventLoop::instance().enterLoop(1); - - QVERIFY(aSpy.count() > aCount); - QVERIFY(bSpy.count() > bCount); - QCOMPARE(cSpy.count(), 0); - QCOMPARE(aSpy.last().value(0).toInt(), 43); - QCOMPARE(bSpy.last().value(0).toInt(), 235); - - aCount = aSpy.count(); - bCount = bSpy.count(); - - object.removePropertyWatch("a"); - object.addPropertyWatch("c"); - object.addPropertyWatch("e"); - - QTestEventLoop::instance().enterLoop(1); - - QCOMPARE(aSpy.count(), aCount); - QVERIFY(bSpy.count() > bCount); - QVERIFY(cSpy.count() > cCount); - QCOMPARE(bSpy.last().value(0).toInt(), 235); - QCOMPARE(cSpy.last().value(0).toInt(), 90); - - bCount = bSpy.count(); - cCount = cSpy.count(); - - object.setA(435); - object.setC(9845); - - QTestEventLoop::instance().enterLoop(1); - - QCOMPARE(aSpy.count(), aCount); - QVERIFY(bSpy.count() > bCount); - QVERIFY(cSpy.count() > cCount); - QCOMPARE(bSpy.last().value(0).toInt(), 235); - QCOMPARE(cSpy.last().value(0).toInt(), 9845); - - bCount = bSpy.count(); - cCount = cSpy.count(); - - object.setA(8432); - object.setB(324); - object.setC(443); - object.removePropertyWatch("c"); - object.removePropertyWatch("d"); - - QTestEventLoop::instance().enterLoop(1); - - QCOMPARE(aSpy.count(), aCount); - QVERIFY(bSpy.count() > bCount); - QCOMPARE(cSpy.count(), cCount); - QCOMPARE(bSpy.last().value(0).toInt(), 324); - QCOMPARE(cSpy.last().value(0).toInt(), 9845); - - bCount = bSpy.count(); - - object.removePropertyWatch("b"); - - QTestEventLoop::instance().enterLoop(1); - - QCOMPARE(aSpy.count(), aCount); - QCOMPARE(bSpy.count(), bCount); - QCOMPARE(cSpy.count(), cCount); -} - -void tst_QMediaPlayer::setupNotifyTests() -{ - QTest::addColumn<int>("interval"); - QTest::addColumn<int>("count"); - - QTest::newRow("single 750ms") - << 750 - << 1; - QTest::newRow("single 600ms") - << 600 - << 1; - QTest::newRow("x3 300ms") - << 300 - << 3; - QTest::newRow("x5 180ms") - << 180 - << 5; -} - -void tst_QMediaPlayer::notifySignals_data() -{ - setupNotifyTests(); -} - -void tst_QMediaPlayer::notifySignals() -{ - QFETCH(int, interval); - QFETCH(int, count); - - QtTestMediaPlayer object; - QSignalSpy spy(&object, SIGNAL(aChanged(int))); - - object.setNotifyInterval(interval); - object.addPropertyWatch("a"); - - QElapsedTimer timer; - timer.start(); - - QTRY_COMPARE(spy.count(), count); -} - -void tst_QMediaPlayer::notifyInterval_data() -{ - setupNotifyTests(); -} - -void tst_QMediaPlayer::notifyInterval() -{ - QFETCH(int, interval); - - QtTestMediaPlayer object; - QSignalSpy spy(&object, SIGNAL(notifyIntervalChanged(int))); - - object.setNotifyInterval(interval); - QCOMPARE(object.notifyInterval(), interval); - QCOMPARE(spy.count(), 1); - QCOMPARE(spy.last().value(0).toInt(), interval); - - object.setNotifyInterval(interval); - QCOMPARE(object.notifyInterval(), interval); - QCOMPARE(spy.count(), 1); -} - - void tst_QMediaPlayer::setupCommonTestData() { QTest::addColumn<bool>("valid"); @@ -873,8 +680,6 @@ void tst_QMediaPlayer::testMediaStatus() QFETCH(int, bufferStatus); int bufferSignals = 0; - player->setNotifyInterval(10); - mockPlayer->setMediaStatus(QMediaPlayer::NoMedia); mockPlayer->setBufferStatus(bufferStatus); |