diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2020-05-14 21:04:02 +0200 |
---|---|---|
committer | VaL Doroshchuk <valentyn.doroshchuk@qt.io> | 2020-05-29 15:19:07 +0000 |
commit | 0fb5e86053427aa527d3780d279d7faf5b3469bf (patch) | |
tree | 4360c46704caa3293086848939d9e278b40ca44e /src/multimedia | |
parent | f60c028d522ce3e4ed01cf00e6601956a1f0ed01 (diff) | |
parent | cf28371c1edd0c6d04c4518cdf3270067d0cf8a7 (diff) |
Merge "Merge remote-tracking branch 'origin/5.15' into dev"
Diffstat (limited to 'src/multimedia')
-rw-r--r-- | src/multimedia/audio/qsamplecache_p.cpp | 2 | ||||
-rw-r--r-- | src/multimedia/audio/qsoundeffect_pulse_p.cpp | 17 | ||||
-rw-r--r-- | src/multimedia/playback/qplaylistfileparser.cpp | 2 |
3 files changed, 19 insertions, 2 deletions
diff --git a/src/multimedia/audio/qsamplecache_p.cpp b/src/multimedia/audio/qsamplecache_p.cpp index 8c4fdc210..b293946cc 100644 --- a/src/multimedia/audio/qsamplecache_p.cpp +++ b/src/multimedia/audio/qsamplecache_p.cpp @@ -397,7 +397,7 @@ void QSample::load() qDebug() << "QSample: load [" << m_url << "]"; #endif m_stream = m_parent->networkAccessManager().get(QNetworkRequest(m_url)); - connect(m_stream, SIGNAL(error(QNetworkReply::NetworkError)), SLOT(decoderError())); + connect(m_stream, SIGNAL(errorOccurred(QNetworkReply::NetworkError)), SLOT(decoderError())); m_waveDecoder = new QWaveDecoder(m_stream); connect(m_waveDecoder, SIGNAL(formatKnown()), SLOT(decoderReady())); connect(m_waveDecoder, SIGNAL(parsingError()), SLOT(decoderError())); diff --git a/src/multimedia/audio/qsoundeffect_pulse_p.cpp b/src/multimedia/audio/qsoundeffect_pulse_p.cpp index 0855c1f67..51cdde026 100644 --- a/src/multimedia/audio/qsoundeffect_pulse_p.cpp +++ b/src/multimedia/audio/qsoundeffect_pulse_p.cpp @@ -528,6 +528,21 @@ qreal QSoundEffectPrivate::volume() const return m_volume; } +static void volume_stream_flush_callback(pa_stream *s, int success, void *userdata) +{ + Q_UNUSED(s); + QSoundEffectRef *ref = reinterpret_cast<QSoundEffectRef *>(userdata); + QSoundEffectPrivate *self = ref->soundEffect(); + ref->release(); + if (!self) + return; + + if (!success) + qWarning("QSoundEffect(pulseaudio): failed to drain"); + + QMetaObject::invokeMethod(self, "prepare", Qt::QueuedConnection); +} + void QSoundEffectPrivate::setVolume(qreal volume) { QMutexLocker locker(&m_volumeLock); @@ -537,6 +552,8 @@ void QSoundEffectPrivate::setVolume(qreal volume) m_volume = qBound(qreal(0), volume, qreal(1)); locker.unlock(); + if (!m_playing && m_pulseStream) + pa_stream_flush(m_pulseStream, volume_stream_flush_callback, m_ref->getRef()); emit volumeChanged(); } diff --git a/src/multimedia/playback/qplaylistfileparser.cpp b/src/multimedia/playback/qplaylistfileparser.cpp index 16934a3dd..1408fbe90 100644 --- a/src/multimedia/playback/qplaylistfileparser.cpp +++ b/src/multimedia/playback/qplaylistfileparser.cpp @@ -551,7 +551,7 @@ void QPlaylistFileParser::start(const QNetworkRequest& request, const QString &m d->m_source.reset(d->m_mgr.get(request)); connect(d->m_source.data(), SIGNAL(readyRead()), this, SLOT(handleData())); connect(d->m_source.data(), SIGNAL(finished()), this, SLOT(handleData())); - connect(d->m_source.data(), SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(handleError())); + connect(d->m_source.data(), SIGNAL(errorOccurred(QNetworkReply::NetworkError)), this, SLOT(handleError())); if (url.isLocalFile()) d->handleData(); |