summaryrefslogtreecommitdiffstats
path: root/src/multimedia
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@theqtcompany.com>2016-04-08 23:43:04 +0200
committerLiang Qi <liang.qi@theqtcompany.com>2016-04-08 23:43:04 +0200
commitc3ea9be0d49ec1eecda9d07e933d5426ed52670a (patch)
tree2522225f27fdf1a139b167ea612a5bb016e4eb22 /src/multimedia
parent11eb454e7f53a5ddc81458b57afe2605c8fa5d4d (diff)
parentd32aff3e0453475c1a22d5e8c7a106df18c0ad10 (diff)
Merge remote-tracking branch 'origin/5.7' into dev
Diffstat (limited to 'src/multimedia')
-rw-r--r--src/multimedia/audio/qaudiodecoder.h2
-rw-r--r--src/multimedia/audio/qaudioinput.h4
-rw-r--r--src/multimedia/audio/qaudiooutput.h4
-rw-r--r--src/multimedia/audio/qaudioprobe.h2
-rw-r--r--src/multimedia/audio/qaudiosystemplugin.h2
-rw-r--r--src/multimedia/audio/qsound.h2
-rw-r--r--src/multimedia/audio/qsoundeffect.h2
-rw-r--r--src/multimedia/audio/qsoundeffect_pulse_p.cpp214
-rw-r--r--src/multimedia/audio/qsoundeffect_pulse_p.h13
-rw-r--r--src/multimedia/camera/qcamera.h8
-rw-r--r--src/multimedia/camera/qcameraexposure.h8
-rw-r--r--src/multimedia/camera/qcameraimagecapture.h4
-rw-r--r--src/multimedia/controls/qaudiodecodercontrol.h2
-rw-r--r--src/multimedia/controls/qaudioencodersettingscontrol.h4
-rw-r--r--src/multimedia/controls/qaudioinputselectorcontrol.h2
-rw-r--r--src/multimedia/controls/qaudiooutputselectorcontrol.h2
-rw-r--r--src/multimedia/controls/qaudiorolecontrol.h2
-rw-r--r--src/multimedia/controls/qcameracapturebufferformatcontrol.h2
-rw-r--r--src/multimedia/controls/qcameracapturedestinationcontrol.h2
-rw-r--r--src/multimedia/controls/qcameracontrol.h2
-rw-r--r--src/multimedia/controls/qcameraexposurecontrol.h2
-rw-r--r--src/multimedia/controls/qcamerafeedbackcontrol.h2
-rw-r--r--src/multimedia/controls/qcameraflashcontrol.h2
-rw-r--r--src/multimedia/controls/qcamerafocuscontrol.h2
-rw-r--r--src/multimedia/controls/qcameraimagecapturecontrol.h2
-rw-r--r--src/multimedia/controls/qcameraimageprocessingcontrol.h2
-rw-r--r--src/multimedia/controls/qcamerainfocontrol.h2
-rw-r--r--src/multimedia/controls/qcameralockscontrol.h2
-rw-r--r--src/multimedia/controls/qcameraviewfindersettingscontrol.h4
-rw-r--r--src/multimedia/controls/qcamerazoomcontrol.h2
-rw-r--r--src/multimedia/controls/qimageencodercontrol.h4
-rw-r--r--src/multimedia/controls/qmediaaudioprobecontrol.h2
-rw-r--r--src/multimedia/controls/qmediaavailabilitycontrol.h2
-rw-r--r--src/multimedia/controls/qmediacontainercontrol.h2
-rw-r--r--src/multimedia/controls/qmediagaplessplaybackcontrol.h2
-rw-r--r--src/multimedia/controls/qmedianetworkaccesscontrol.h2
-rw-r--r--src/multimedia/controls/qmediaplayercontrol.h2
-rw-r--r--src/multimedia/controls/qmediarecordercontrol.h2
-rw-r--r--src/multimedia/controls/qmediastreamscontrol.h2
-rw-r--r--src/multimedia/controls/qmediavideoprobecontrol.h2
-rw-r--r--src/multimedia/controls/qmetadatareadercontrol.h2
-rw-r--r--src/multimedia/controls/qmetadatawritercontrol.h2
-rw-r--r--src/multimedia/controls/qradiodatacontrol.h2
-rw-r--r--src/multimedia/controls/qradiotunercontrol.h2
-rw-r--r--src/multimedia/controls/qvideodeviceselectorcontrol.h2
-rw-r--r--src/multimedia/controls/qvideoencodersettingscontrol.h6
-rw-r--r--src/multimedia/controls/qvideorenderercontrol.h2
-rw-r--r--src/multimedia/controls/qvideowindowcontrol.h2
-rw-r--r--src/multimedia/doc/src/images/annotatedurl.pngbin40129 -> 34705 bytes
-rw-r--r--src/multimedia/doc/src/images/video-graphics-memory.pngbin14934 -> 12945 bytes
-rw-r--r--src/multimedia/doc/src/images/video-qml-paint-rate.pngbin6350 -> 6121 bytes
-rw-r--r--src/multimedia/doc/src/multimedia.qdoc4
-rw-r--r--src/multimedia/doc/src/qtaudioengine.qdoc4
-rw-r--r--src/multimedia/doc/src/qtmultimedia-index.qdoc2
-rw-r--r--src/multimedia/doc/src/qtmultimedia5.qdoc4
-rw-r--r--src/multimedia/multimedia.pro8
-rw-r--r--src/multimedia/playback/qmediaplayer.h8
-rw-r--r--src/multimedia/playback/qmediaplaylist.h10
-rw-r--r--src/multimedia/qmediacontrol.h4
-rw-r--r--src/multimedia/qtmultimediaquicktools_headers/qtmultimediaquickdefs_p.h2
-rw-r--r--src/multimedia/radio/qradiodata.h2
-rw-r--r--src/multimedia/radio/qradiotuner.h2
-rw-r--r--src/multimedia/recording/qaudiorecorder.h2
-rw-r--r--src/multimedia/recording/qmediarecorder.h10
-rw-r--r--src/multimedia/video/qabstractvideofilter.h2
-rw-r--r--src/multimedia/video/qabstractvideosurface.h2
-rw-r--r--src/multimedia/video/qvideoprobe.h2
67 files changed, 153 insertions, 262 deletions
diff --git a/src/multimedia/audio/qaudiodecoder.h b/src/multimedia/audio/qaudiodecoder.h
index 6817d35d5..a63a6836f 100644
--- a/src/multimedia/audio/qaudiodecoder.h
+++ b/src/multimedia/audio/qaudiodecoder.h
@@ -75,7 +75,7 @@ public:
ServiceMissingError
};
- QAudioDecoder(QObject *parent = 0);
+ explicit QAudioDecoder(QObject *parent = Q_NULLPTR);
~QAudioDecoder();
static QMultimedia::SupportEstimate hasSupport(const QString &mimeType, const QStringList& codecs = QStringList());
diff --git a/src/multimedia/audio/qaudioinput.h b/src/multimedia/audio/qaudioinput.h
index ce20db4fd..d1a58424e 100644
--- a/src/multimedia/audio/qaudioinput.h
+++ b/src/multimedia/audio/qaudioinput.h
@@ -62,8 +62,8 @@ class Q_MULTIMEDIA_EXPORT QAudioInput : public QObject
Q_OBJECT
public:
- explicit QAudioInput(const QAudioFormat &format = QAudioFormat(), QObject *parent = 0);
- explicit QAudioInput(const QAudioDeviceInfo &audioDeviceInfo, const QAudioFormat &format = QAudioFormat(), QObject *parent = 0);
+ explicit QAudioInput(const QAudioFormat &format = QAudioFormat(), QObject *parent = Q_NULLPTR);
+ explicit QAudioInput(const QAudioDeviceInfo &audioDeviceInfo, const QAudioFormat &format = QAudioFormat(), QObject *parent = Q_NULLPTR);
~QAudioInput();
QAudioFormat format() const;
diff --git a/src/multimedia/audio/qaudiooutput.h b/src/multimedia/audio/qaudiooutput.h
index 3b6c7db0f..fab562ae1 100644
--- a/src/multimedia/audio/qaudiooutput.h
+++ b/src/multimedia/audio/qaudiooutput.h
@@ -62,8 +62,8 @@ class Q_MULTIMEDIA_EXPORT QAudioOutput : public QObject
Q_OBJECT
public:
- explicit QAudioOutput(const QAudioFormat &format = QAudioFormat(), QObject *parent = 0);
- explicit QAudioOutput(const QAudioDeviceInfo &audioDeviceInfo, const QAudioFormat &format = QAudioFormat(), QObject *parent = 0);
+ explicit QAudioOutput(const QAudioFormat &format = QAudioFormat(), QObject *parent = Q_NULLPTR);
+ explicit QAudioOutput(const QAudioDeviceInfo &audioDeviceInfo, const QAudioFormat &format = QAudioFormat(), QObject *parent = Q_NULLPTR);
~QAudioOutput();
QAudioFormat format() const;
diff --git a/src/multimedia/audio/qaudioprobe.h b/src/multimedia/audio/qaudioprobe.h
index 499ff041b..376a54e34 100644
--- a/src/multimedia/audio/qaudioprobe.h
+++ b/src/multimedia/audio/qaudioprobe.h
@@ -53,7 +53,7 @@ class Q_MULTIMEDIA_EXPORT QAudioProbe : public QObject
{
Q_OBJECT
public:
- explicit QAudioProbe(QObject *parent = 0);
+ explicit QAudioProbe(QObject *parent = Q_NULLPTR);
~QAudioProbe();
bool setSource(QMediaObject *source);
diff --git a/src/multimedia/audio/qaudiosystemplugin.h b/src/multimedia/audio/qaudiosystemplugin.h
index 4fa9faf0e..b26b2a3b9 100644
--- a/src/multimedia/audio/qaudiosystemplugin.h
+++ b/src/multimedia/audio/qaudiosystemplugin.h
@@ -78,7 +78,7 @@ class Q_MULTIMEDIA_EXPORT QAudioSystemPlugin : public QObject, public QAudioSyst
Q_INTERFACES(QAudioSystemFactoryInterface)
public:
- QAudioSystemPlugin(QObject *parent = 0);
+ explicit QAudioSystemPlugin(QObject *parent = Q_NULLPTR);
~QAudioSystemPlugin();
virtual QList<QByteArray> availableDevices(QAudio::Mode) const = 0;
diff --git a/src/multimedia/audio/qsound.h b/src/multimedia/audio/qsound.h
index 5e8e792db..f8d47676f 100644
--- a/src/multimedia/audio/qsound.h
+++ b/src/multimedia/audio/qsound.h
@@ -58,7 +58,7 @@ public:
static void play(const QString& filename);
- explicit QSound(const QString& filename, QObject* parent = 0);
+ explicit QSound(const QString &filename, QObject *parent = Q_NULLPTR);
~QSound();
int loops() const;
diff --git a/src/multimedia/audio/qsoundeffect.h b/src/multimedia/audio/qsoundeffect.h
index c24600b26..f59c4d91d 100644
--- a/src/multimedia/audio/qsoundeffect.h
+++ b/src/multimedia/audio/qsoundeffect.h
@@ -80,7 +80,7 @@ public:
Error
};
- explicit QSoundEffect(QObject *parent = 0);
+ explicit QSoundEffect(QObject *parent = Q_NULLPTR);
~QSoundEffect();
static QStringList supportedMimeTypes();
diff --git a/src/multimedia/audio/qsoundeffect_pulse_p.cpp b/src/multimedia/audio/qsoundeffect_pulse_p.cpp
index 472c01489..79d1d96ab 100644
--- a/src/multimedia/audio/qsoundeffect_pulse_p.cpp
+++ b/src/multimedia/audio/qsoundeffect_pulse_p.cpp
@@ -55,10 +55,7 @@
#include "qsoundeffect_pulse_p.h"
-#if defined(Q_WS_MAEMO_6) || defined(NEMO_AUDIO)
-#include <pulse/ext-stream-restore.h>
-#endif
-
+#include <private/qaudiohelpers_p.h>
#include <private/qmediaresourcepolicy_p.h>
#include <private/qmediaresourceset_p.h>
@@ -130,26 +127,9 @@ public:
return m_context;
}
- inline pa_cvolume * calcVolume(pa_cvolume *dest, int soundEffectVolume)
- {
- pa_volume_t v = m_vol * soundEffectVolume / 100;
- for (int i = 0; i < dest->channels; ++i)
- dest->values[i] = v;
- return dest;
- }
-
- void updateStatus(const pa_cvolume& volume)
- {
- if (m_vol != pa_cvolume_max(&volume)) {
- m_vol = pa_cvolume_max(&volume);
- emit volumeChanged();
- }
- }
-
Q_SIGNALS:
void contextReady();
void contextFailed();
- void volumeChanged();
private Q_SLOTS:
void onContextFailed()
@@ -164,8 +144,6 @@ private Q_SLOTS:
void prepare()
{
- m_vol = PA_VOLUME_NORM;
-
m_context = 0;
m_mainLoop = pa_threaded_mainloop_new();
if (m_mainLoop == 0) {
@@ -238,11 +216,6 @@ private:
case PA_CONTEXT_SETTING_NAME:
break;
case PA_CONTEXT_READY:
- #if defined(Q_WS_MAEMO_6) || defined(NEMO_AUDIO)
- pa_ext_stream_restore_read(c, &stream_restore_info_callback, self);
- pa_ext_stream_restore_set_subscribe_cb(c, &stream_restore_monitor_callback, self);
- pa_ext_stream_restore_subscribe(c, 1, 0, self);
- #endif
QMetaObject::invokeMethod(self, "contextReady", Qt::QueuedConnection);
break;
case PA_CONTEXT_FAILED:
@@ -253,37 +226,6 @@ private:
}
}
-#if defined(Q_WS_MAEMO_6) || defined(NEMO_AUDIO)
-
- static void stream_restore_monitor_callback(pa_context *c, void *userdata)
- {
- PulseDaemon *self = reinterpret_cast<PulseDaemon*>(userdata);
- pa_ext_stream_restore_read(c, &stream_restore_info_callback, self);
- }
-
- static void stream_restore_info_callback(pa_context *c,
- const pa_ext_stream_restore_info *info,
- int eol, void *userdata)
- {
- Q_UNUSED(c)
-
- PulseDaemon *self = reinterpret_cast<PulseDaemon*>(userdata);
-
- if (!eol) {
- if (QString(info->name).startsWith(QLatin1String("sink-input-by-media-role:x-maemo"))) {
-#ifdef QT_PA_DEBUG
- qDebug() << "x-maemo volume =(" << info->volume.values[0] * 100 / PA_VOLUME_NORM << ","
- << info->volume.values[1] * 100 / PA_VOLUME_NORM << "), "
- << "mute = " << info->mute;
-#endif
- self->updateStatus(info->volume);
- }
- }
- }
-#endif
-
- pa_volume_t m_vol;
-
bool m_prepared;
pa_context *m_context;
pa_threaded_mainloop *m_mainLoop;
@@ -391,9 +333,6 @@ QSoundEffectPrivate::QSoundEffectPrivate(QObject* parent):
m_sample(0),
m_position(0),
m_resourcesAvailable(false)
-#if defined(Q_WS_MAEMO_6) || defined(NEMO_AUDIO)
- , m_customVolume(false)
-#endif
{
m_ref = new QSoundEffectRef(this);
pa_sample_spec_init(&m_pulseSpec);
@@ -544,60 +483,32 @@ void QSoundEffectPrivate::setLoopCount(int loopCount)
qreal QSoundEffectPrivate::volume() const
{
+ QReadLocker locker(&m_volumeLock);
return m_volume;
}
void QSoundEffectPrivate::setVolume(qreal volume)
{
-#if defined(Q_WS_MAEMO_6) || defined(NEMO_AUDIO)
- m_customVolume = true;
-#endif
- m_volume = volume;
- emit volumeChanged();
- updateVolume();
-}
+ QWriteLocker locker(&m_volumeLock);
-void QSoundEffectPrivate::updateVolume()
-{
- if (m_sinkInputId < 0)
+ if (qFuzzyCompare(m_volume, volume))
return;
-#if defined(Q_WS_MAEMO_6) || defined(NEMO_AUDIO)
- if (!m_customVolume)
- return;
-#endif
- PulseDaemonLocker locker;
- pa_cvolume volume;
- volume.channels = m_pulseSpec.channels;
- if (pulseDaemon()->context())
- pa_operation_unref(pa_context_set_sink_input_volume(pulseDaemon()->context(), m_sinkInputId, pulseDaemon()->calcVolume(&volume, qRound(m_volume * 100)), setvolume_callback, m_ref->getRef()));
- Q_ASSERT(pa_cvolume_valid(&volume));
-#ifdef QT_PA_DEBUG
- qDebug() << this << "updateVolume =" << pa_cvolume_max(&volume);
-#endif
+
+ m_volume = qBound(qreal(0), volume, qreal(1));
+ emit volumeChanged();
}
bool QSoundEffectPrivate::isMuted() const
{
+ QReadLocker locker(&m_volumeLock);
return m_muted;
}
void QSoundEffectPrivate::setMuted(bool muted)
{
+ QWriteLocker locker(&m_volumeLock);
m_muted = muted;
emit mutedChanged();
- updateMuted();
-}
-
-void QSoundEffectPrivate::updateMuted()
-{
- if (m_sinkInputId < 0)
- return;
- PulseDaemonLocker locker;
- if (pulseDaemon()->context())
- pa_operation_unref(pa_context_set_sink_input_mute(pulseDaemon()->context(), m_sinkInputId, m_muted, setmuted_callback, m_ref->getRef()));
-#ifdef QT_PA_DEBUG
- qDebug() << this << "updateMuted = " << m_muted;
-#endif
}
bool QSoundEffectPrivate::isLoaded() const
@@ -807,7 +718,6 @@ void QSoundEffectPrivate::unloadPulseStream()
pa_stream_set_underflow_callback(m_pulseStream, 0, 0);
pa_stream_disconnect(m_pulseStream);
pa_stream_unref(m_pulseStream);
- disconnect(pulseDaemon(), SIGNAL(volumeChanged()), this, SLOT(updateVolume()));
disconnect(pulseDaemon(), SIGNAL(contextFailed()), this, SLOT(contextFailed()));
m_pulseStream = 0;
m_reloadCategory = false; // category will be reloaded when we connect anyway
@@ -828,11 +738,8 @@ void QSoundEffectPrivate::prepare()
<< "actual writeBytes =" << writeBytes
<< "m_playQueued =" << m_playQueued;
#endif
- m_position = int(writeBytes);
- if (pa_stream_write(m_pulseStream, reinterpret_cast<void *>(const_cast<char*>(m_sample->data().data())), writeBytes,
- stream_write_done_callback, 0, PA_SEEK_RELATIVE) != 0) {
- qWarning("QSoundEffect(pulseaudio): pa_stream_write, error = %s", pa_strerror(pa_context_errno(pulseDaemon()->context())));
- }
+ m_position = writeToStream(m_sample->data().data(), writeBytes);
+
if (m_playQueued) {
m_playQueued = false;
setLoopsRemaining(m_loopCount);
@@ -860,15 +767,13 @@ void QSoundEffectPrivate::uploadSample()
}
}
- int writtenBytes = 0;
int writableSize = int(pa_stream_writable_size(m_pulseStream));
int firstPartLength = qMin(m_sample->data().size() - m_position, writableSize);
- if (pa_stream_write(m_pulseStream, reinterpret_cast<void *>(const_cast<char*>(m_sample->data().data()) + m_position),
- firstPartLength, stream_write_done_callback, 0, PA_SEEK_RELATIVE) != 0) {
- qWarning("QSoundEffect(pulseaudio): pa_stream_write, error = %s", pa_strerror(pa_context_errno(pulseDaemon()->context())));
- }
- writtenBytes = firstPartLength;
- m_position += firstPartLength;
+
+ int writtenBytes = writeToStream(m_sample->data().data() + m_position,
+ firstPartLength);
+
+ m_position += writtenBytes;
if (m_position == m_sample->data().size()) {
m_position = 0;
if (m_runningCount > 0)
@@ -877,11 +782,8 @@ void QSoundEffectPrivate::uploadSample()
{
while (writtenBytes < writableSize) {
int writeSize = qMin(writableSize - writtenBytes, m_sample->data().size());
- if (pa_stream_write(m_pulseStream, reinterpret_cast<void *>(const_cast<char*>(m_sample->data().data())),
- writeSize, stream_write_done_callback, 0, PA_SEEK_RELATIVE) != 0) {
- qWarning("QSoundEffect(pulseaudio): pa_stream_write, error = %s", pa_strerror(pa_context_errno(pulseDaemon()->context())));
- }
- writtenBytes += writeSize;
+ writtenBytes += writeToStream(m_sample->data().data(), writeSize);
+
if (writeSize < m_sample->data().size()) {
m_position = writeSize;
break;
@@ -899,6 +801,39 @@ void QSoundEffectPrivate::uploadSample()
#endif
}
+int QSoundEffectPrivate::writeToStream(const void *data, int size)
+{
+ m_volumeLock.lockForRead();
+ qreal volume = m_muted ? 0 : m_volume;
+ m_volumeLock.unlock();
+ pa_free_cb_t writeDoneCb = stream_write_done_callback;
+
+ if (volume < 1.0f) {
+ // Don't use PulseAudio volume, as it might affect all other streams of the same category
+ // or even affect the system volume if flat volumes are enabled
+ void *dest = NULL;
+ size_t nbytes = size;
+ if (pa_stream_begin_write(m_pulseStream, &dest, &nbytes) < 0) {
+ qWarning("QSoundEffect(pulseaudio): pa_stream_begin_write, error = %s",
+ pa_strerror(pa_context_errno(pulseDaemon()->context())));
+ return 0;
+ }
+
+ size = int(nbytes);
+ QAudioHelperInternal::qMultiplySamples(volume, m_sample->format(), data, dest, size);
+ data = dest;
+ writeDoneCb = NULL;
+ }
+
+ if (pa_stream_write(m_pulseStream, data, size, writeDoneCb, 0, PA_SEEK_RELATIVE) < 0) {
+ qWarning("QSoundEffect(pulseaudio): pa_stream_write, error = %s",
+ pa_strerror(pa_context_errno(pulseDaemon()->context())));
+ return 0;
+ }
+
+ return size;
+}
+
void QSoundEffectPrivate::playSample()
{
#ifdef QT_PA_DEBUG
@@ -945,8 +880,6 @@ void QSoundEffectPrivate::streamReady()
#endif
PulseDaemonLocker locker;
m_sinkInputId = pa_stream_get_index(m_pulseStream);
- updateMuted();
- updateVolume();
#ifdef QT_PA_DEBUG
const pa_buffer_attr *realBufAttr = pa_stream_get_buffer_attr(m_pulseStream);
qDebug() << this << "m_sinkInputId =" << m_sinkInputId
@@ -972,7 +905,6 @@ void QSoundEffectPrivate::createPulseStream()
pa_stream *stream = pa_stream_new_with_proplist(pulseDaemon()->context(), m_name.constData(), &m_pulseSpec, 0, propList);
pa_proplist_free(propList);
- connect(pulseDaemon(), SIGNAL(volumeChanged()), this, SLOT(updateVolume()));
connect(pulseDaemon(), SIGNAL(contextFailed()), this, SLOT(contextFailed()));
if (stream == 0) {
@@ -1000,9 +932,7 @@ void QSoundEffectPrivate::createPulseStream()
#else
if (pa_stream_connect_playback(m_pulseStream, 0, 0,
#endif
- m_muted ? pa_stream_flags_t(PA_STREAM_START_MUTED | PA_STREAM_START_CORKED)
- : pa_stream_flags_t(PA_STREAM_START_UNMUTED | PA_STREAM_START_CORKED),
- 0, 0) < 0) {
+ PA_STREAM_START_CORKED, 0, 0) < 0) {
qWarning("QSoundEffect(pulseaudio): Failed to connect stream, error = %s",
pa_strerror(pa_context_errno(pulseDaemon()->context())));
}
@@ -1121,46 +1051,6 @@ void QSoundEffectPrivate::stream_adjust_prebuffer_callback(pa_stream *s, int suc
QMetaObject::invokeMethod(self, "streamReady", Qt::QueuedConnection);
}
-void QSoundEffectPrivate::setvolume_callback(pa_context *c, int success, void *userdata)
-{
-#ifdef QT_PA_DEBUG
- qDebug() << "setvolume_callback";
-#endif
- Q_UNUSED(c);
- Q_UNUSED(userdata);
- QSoundEffectRef *ref = reinterpret_cast<QSoundEffectRef*>(userdata);
- QSoundEffectPrivate *self = ref->soundEffect();
- ref->release();
- if (!self)
- return;
-#ifdef QT_PA_DEBUG
- qDebug() << self << "setvolume_callback";
-#endif
- if (!success) {
- qWarning("QSoundEffect(pulseaudio): faild to set volume");
- }
-}
-
-void QSoundEffectPrivate::setmuted_callback(pa_context *c, int success, void *userdata)
-{
-#ifdef QT_PA_DEBUG
- qDebug() << "setmuted_callback";
-#endif
- Q_UNUSED(c);
- Q_UNUSED(userdata);
- QSoundEffectRef *ref = reinterpret_cast<QSoundEffectRef*>(userdata);
- QSoundEffectPrivate *self = ref->soundEffect();
- ref->release();
- if (!self)
- return;
-#ifdef QT_PA_DEBUG
- qDebug() << self << "setmuted_callback";
-#endif
- if (!success) {
- qWarning("QSoundEffect(pulseaudio): faild to set muted");
- }
-}
-
void QSoundEffectPrivate::stream_underrun_callback(pa_stream *s, void *userdata)
{
Q_UNUSED(s);
diff --git a/src/multimedia/audio/qsoundeffect_pulse_p.h b/src/multimedia/audio/qsoundeffect_pulse_p.h
index 259d2e046..6bf2416cf 100644
--- a/src/multimedia/audio/qsoundeffect_pulse_p.h
+++ b/src/multimedia/audio/qsoundeffect_pulse_p.h
@@ -56,6 +56,7 @@
#include <QtCore/qobject.h>
#include <QtCore/qdatetime.h>
+#include <QtCore/qreadwritelock.h>
#include <qmediaplayer.h>
#include <pulse/pulseaudio.h>
#include "qsamplecache_p.h"
@@ -117,8 +118,6 @@ private Q_SLOTS:
void prepare();
void streamReady();
void emptyComplete(void *stream);
- void updateVolume();
- void updateMuted();
void handleAvailabilityChanged(bool available);
@@ -130,6 +129,8 @@ private:
void createPulseStream();
void unloadPulseStream();
+ int writeToStream(const void *data, int size);
+
void setPlaying(bool playing);
void setStatus(QSoundEffect::Status status);
void setLoopsRemaining(int loopsRemaining);
@@ -142,8 +143,6 @@ private:
static void stream_write_done_callback(void *p);
static void stream_adjust_prebuffer_callback(pa_stream *s, int success, void *userdata);
static void stream_reset_buffer_callback(pa_stream *s, int success, void *userdata);
- static void setvolume_callback(pa_context *c, int success, void *userdata);
- static void setmuted_callback(pa_context *c, int success, void *userdata);
pa_stream *m_pulseStream;
int m_sinkInputId;
@@ -171,11 +170,9 @@ private:
bool m_resourcesAvailable;
- QMediaPlayerResourceSetInterface *m_resources;
+ mutable QReadWriteLock m_volumeLock;
-#if defined(Q_WS_MAEMO_6) || defined(NEMO_AUDIO)
- bool m_customVolume;
-#endif
+ QMediaPlayerResourceSetInterface *m_resources;
};
QT_END_NAMESPACE
diff --git a/src/multimedia/camera/qcamera.h b/src/multimedia/camera/qcamera.h
index 1c626748e..7d7063650 100644
--- a/src/multimedia/camera/qcamera.h
+++ b/src/multimedia/camera/qcamera.h
@@ -165,10 +165,10 @@ public:
FrontFace
};
- QCamera(QObject *parent = 0);
- QCamera(const QByteArray& deviceName, QObject *parent = 0);
- QCamera(const QCameraInfo& cameraInfo, QObject *parent = 0);
- QCamera(QCamera::Position position, QObject *parent = 0);
+ explicit QCamera(QObject *parent = Q_NULLPTR);
+ explicit QCamera(const QByteArray& deviceName, QObject *parent = Q_NULLPTR);
+ explicit QCamera(const QCameraInfo& cameraInfo, QObject *parent = Q_NULLPTR);
+ explicit QCamera(QCamera::Position position, QObject *parent = Q_NULLPTR);
~QCamera();
#if QT_DEPRECATED_SINCE(5, 3)
diff --git a/src/multimedia/camera/qcameraexposure.h b/src/multimedia/camera/qcameraexposure.h
index c71bb8575..e0924ca60 100644
--- a/src/multimedia/camera/qcameraexposure.h
+++ b/src/multimedia/camera/qcameraexposure.h
@@ -135,9 +135,9 @@ public:
qreal requestedAperture() const;
qreal requestedShutterSpeed() const;
- QList<int> supportedIsoSensitivities(bool *continuous = 0) const;
- QList<qreal> supportedApertures(bool * continuous = 0) const;
- QList<qreal> supportedShutterSpeeds(bool *continuous = 0) const;
+ QList<int> supportedIsoSensitivities(bool *continuous = Q_NULLPTR) const;
+ QList<qreal> supportedApertures(bool *continuous = Q_NULLPTR) const;
+ QList<qreal> supportedShutterSpeeds(bool *continuous = Q_NULLPTR) const;
public Q_SLOTS:
void setFlashMode(FlashModes mode);
@@ -168,7 +168,7 @@ Q_SIGNALS:
private:
friend class QCamera;
friend class QCameraPrivate;
- explicit QCameraExposure(QCamera *parent = 0);
+ explicit QCameraExposure(QCamera *parent = Q_NULLPTR);
virtual ~QCameraExposure();
Q_DISABLE_COPY(QCameraExposure)
diff --git a/src/multimedia/camera/qcameraimagecapture.h b/src/multimedia/camera/qcameraimagecapture.h
index 190dabb15..3f3c6bd26 100644
--- a/src/multimedia/camera/qcameraimagecapture.h
+++ b/src/multimedia/camera/qcameraimagecapture.h
@@ -87,7 +87,7 @@ public:
};
Q_DECLARE_FLAGS(CaptureDestinations, CaptureDestination)
- QCameraImageCapture(QMediaObject *mediaObject, QObject *parent = 0);
+ explicit QCameraImageCapture(QMediaObject *mediaObject, QObject *parent = Q_NULLPTR);
~QCameraImageCapture();
bool isAvailable() const;
@@ -104,7 +104,7 @@ public:
QString imageCodecDescription(const QString &codecName) const;
QList<QSize> supportedResolutions(const QImageEncoderSettings &settings = QImageEncoderSettings(),
- bool *continuous = 0) const;
+ bool *continuous = Q_NULLPTR) const;
QImageEncoderSettings encodingSettings() const;
void setEncodingSettings(const QImageEncoderSettings& settings);
diff --git a/src/multimedia/controls/qaudiodecodercontrol.h b/src/multimedia/controls/qaudiodecodercontrol.h
index d864da4f0..f02da4963 100644
--- a/src/multimedia/controls/qaudiodecodercontrol.h
+++ b/src/multimedia/controls/qaudiodecodercontrol.h
@@ -92,7 +92,7 @@ Q_SIGNALS:
void durationChanged(qint64 duration);
protected:
- QAudioDecoderControl(QObject* parent = 0);
+ explicit QAudioDecoderControl(QObject *parent = Q_NULLPTR);
};
#define QAudioDecoderControl_iid "org.qt-project.qt.audiodecodercontrol/5.0"
diff --git a/src/multimedia/controls/qaudioencodersettingscontrol.h b/src/multimedia/controls/qaudioencodersettingscontrol.h
index 77a72ed83..1906904d8 100644
--- a/src/multimedia/controls/qaudioencodersettingscontrol.h
+++ b/src/multimedia/controls/qaudioencodersettingscontrol.h
@@ -67,13 +67,13 @@ public:
virtual QString codecDescription(const QString &codecName) const = 0;
virtual QList<int> supportedSampleRates(const QAudioEncoderSettings &settings,
- bool *continuous = 0) const = 0;
+ bool *continuous = Q_NULLPTR) const = 0;
virtual QAudioEncoderSettings audioSettings() const = 0;
virtual void setAudioSettings(const QAudioEncoderSettings&) = 0;
protected:
- QAudioEncoderSettingsControl(QObject *parent = 0);
+ explicit QAudioEncoderSettingsControl(QObject *parent = Q_NULLPTR);
};
#define QAudioEncoderSettingsControl_iid "org.qt-project.qt.audioencodersettingscontrol/5.0"
diff --git a/src/multimedia/controls/qaudioinputselectorcontrol.h b/src/multimedia/controls/qaudioinputselectorcontrol.h
index 98c9c7b89..eceaa76dd 100644
--- a/src/multimedia/controls/qaudioinputselectorcontrol.h
+++ b/src/multimedia/controls/qaudioinputselectorcontrol.h
@@ -68,7 +68,7 @@ Q_SIGNALS:
void availableInputsChanged();
protected:
- QAudioInputSelectorControl(QObject *parent = 0);
+ explicit QAudioInputSelectorControl(QObject *parent = Q_NULLPTR);
};
#define QAudioInputSelectorControl_iid "org.qt-project.qt.audioinputselectorcontrol/5.0"
diff --git a/src/multimedia/controls/qaudiooutputselectorcontrol.h b/src/multimedia/controls/qaudiooutputselectorcontrol.h
index 4c7be6d73..b2d27a349 100644
--- a/src/multimedia/controls/qaudiooutputselectorcontrol.h
+++ b/src/multimedia/controls/qaudiooutputselectorcontrol.h
@@ -68,7 +68,7 @@ Q_SIGNALS:
void availableOutputsChanged();
protected:
- QAudioOutputSelectorControl(QObject *parent = 0);
+ explicit QAudioOutputSelectorControl(QObject *parent = Q_NULLPTR);
};
#define QAudioOutputSelectorControl_iid "org.qt-project.qt.audiooutputselectorcontrol/5.0"
diff --git a/src/multimedia/controls/qaudiorolecontrol.h b/src/multimedia/controls/qaudiorolecontrol.h
index 1dd9271ec..5d9db177b 100644
--- a/src/multimedia/controls/qaudiorolecontrol.h
+++ b/src/multimedia/controls/qaudiorolecontrol.h
@@ -64,7 +64,7 @@ Q_SIGNALS:
void audioRoleChanged(QAudio::Role role);
protected:
- explicit QAudioRoleControl(QObject *parent = 0);
+ explicit QAudioRoleControl(QObject *parent = Q_NULLPTR);
};
#define QAudioRoleControl_iid "org.qt-project.qt.audiorolecontrol/5.6"
diff --git a/src/multimedia/controls/qcameracapturebufferformatcontrol.h b/src/multimedia/controls/qcameracapturebufferformatcontrol.h
index ecac16f81..cb8c3d6d9 100644
--- a/src/multimedia/controls/qcameracapturebufferformatcontrol.h
+++ b/src/multimedia/controls/qcameracapturebufferformatcontrol.h
@@ -62,7 +62,7 @@ Q_SIGNALS:
void bufferFormatChanged(QVideoFrame::PixelFormat);
protected:
- QCameraCaptureBufferFormatControl(QObject* parent = 0);
+ explicit QCameraCaptureBufferFormatControl(QObject *parent = Q_NULLPTR);
};
#define QCameraCaptureBufferFormatControl_iid "org.qt-project.qt.cameracapturebufferformatcontrol/5.0"
diff --git a/src/multimedia/controls/qcameracapturedestinationcontrol.h b/src/multimedia/controls/qcameracapturedestinationcontrol.h
index ee0246ecd..90142d6b5 100644
--- a/src/multimedia/controls/qcameracapturedestinationcontrol.h
+++ b/src/multimedia/controls/qcameracapturedestinationcontrol.h
@@ -62,7 +62,7 @@ Q_SIGNALS:
void captureDestinationChanged(QCameraImageCapture::CaptureDestinations);
protected:
- QCameraCaptureDestinationControl(QObject* parent = 0);
+ explicit QCameraCaptureDestinationControl(QObject *parent = Q_NULLPTR);
};
#define QCameraCaptureDestinationControl_iid "org.qt-project.qt.cameracapturedestinationcontrol/5.0"
diff --git a/src/multimedia/controls/qcameracontrol.h b/src/multimedia/controls/qcameracontrol.h
index b7b0b6cb0..f17af0ce9 100644
--- a/src/multimedia/controls/qcameracontrol.h
+++ b/src/multimedia/controls/qcameracontrol.h
@@ -83,7 +83,7 @@ Q_SIGNALS:
void captureModeChanged(QCamera::CaptureModes);
protected:
- QCameraControl(QObject* parent = 0);
+ explicit QCameraControl(QObject *parent = Q_NULLPTR);
};
#define QCameraControl_iid "org.qt-project.qt.cameracontrol/5.0"
diff --git a/src/multimedia/controls/qcameraexposurecontrol.h b/src/multimedia/controls/qcameraexposurecontrol.h
index 891683ea5..88dda12ed 100644
--- a/src/multimedia/controls/qcameraexposurecontrol.h
+++ b/src/multimedia/controls/qcameraexposurecontrol.h
@@ -87,7 +87,7 @@ Q_SIGNALS:
void parameterRangeChanged(int parameter);
protected:
- QCameraExposureControl(QObject* parent = 0);
+ explicit QCameraExposureControl(QObject *parent = Q_NULLPTR);
};
#define QCameraExposureControl_iid "org.qt-project.qt.cameraexposurecontrol/5.0"
diff --git a/src/multimedia/controls/qcamerafeedbackcontrol.h b/src/multimedia/controls/qcamerafeedbackcontrol.h
index b99c7120c..cee97210f 100644
--- a/src/multimedia/controls/qcamerafeedbackcontrol.h
+++ b/src/multimedia/controls/qcamerafeedbackcontrol.h
@@ -84,7 +84,7 @@ public:
virtual bool setEventFeedbackSound(EventType, const QString &filePath) = 0;
protected:
- QCameraFeedbackControl(QObject* parent = 0);
+ explicit QCameraFeedbackControl(QObject *parent = Q_NULLPTR);
};
#define QCameraFeedbackControl_iid "org.qt-project.qt.camerafeedbackcontrol/5.0"
diff --git a/src/multimedia/controls/qcameraflashcontrol.h b/src/multimedia/controls/qcameraflashcontrol.h
index 6ceccd67a..08e991f5a 100644
--- a/src/multimedia/controls/qcameraflashcontrol.h
+++ b/src/multimedia/controls/qcameraflashcontrol.h
@@ -68,7 +68,7 @@ Q_SIGNALS:
void flashReady(bool);
protected:
- QCameraFlashControl(QObject* parent = 0);
+ explicit QCameraFlashControl(QObject *parent = Q_NULLPTR);
};
#define QCameraFlashControl_iid "org.qt-project.qt.cameraflashcontrol/5.0"
diff --git a/src/multimedia/controls/qcamerafocuscontrol.h b/src/multimedia/controls/qcamerafocuscontrol.h
index accbd3a4c..32da7cc31 100644
--- a/src/multimedia/controls/qcamerafocuscontrol.h
+++ b/src/multimedia/controls/qcamerafocuscontrol.h
@@ -77,7 +77,7 @@ Q_SIGNALS:
void focusZonesChanged();
protected:
- QCameraFocusControl(QObject* parent = 0);
+ explicit QCameraFocusControl(QObject *parent = Q_NULLPTR);
};
#define QCameraFocusControl_iid "org.qt-project.qt.camerafocuscontrol/5.0"
diff --git a/src/multimedia/controls/qcameraimagecapturecontrol.h b/src/multimedia/controls/qcameraimagecapturecontrol.h
index 94d4e2a7b..4fe7b9387 100644
--- a/src/multimedia/controls/qcameraimagecapturecontrol.h
+++ b/src/multimedia/controls/qcameraimagecapturecontrol.h
@@ -80,7 +80,7 @@ Q_SIGNALS:
void error(int id, int error, const QString &errorString);
protected:
- QCameraImageCaptureControl(QObject* parent = 0);
+ explicit QCameraImageCaptureControl(QObject *parent = Q_NULLPTR);
};
#define QCameraImageCaptureControl_iid "org.qt-project.qt.cameraimagecapturecontrol/5.0"
diff --git a/src/multimedia/controls/qcameraimageprocessingcontrol.h b/src/multimedia/controls/qcameraimageprocessingcontrol.h
index eee45aa62..ee46143e4 100644
--- a/src/multimedia/controls/qcameraimageprocessingcontrol.h
+++ b/src/multimedia/controls/qcameraimageprocessingcontrol.h
@@ -82,7 +82,7 @@ public:
virtual void setParameter(ProcessingParameter parameter, const QVariant &value) = 0;
protected:
- QCameraImageProcessingControl(QObject* parent = 0);
+ explicit QCameraImageProcessingControl(QObject *parent = Q_NULLPTR);
};
#define QCameraImageProcessingControl_iid "org.qt-project.qt.cameraimageprocessingcontrol/5.0"
diff --git a/src/multimedia/controls/qcamerainfocontrol.h b/src/multimedia/controls/qcamerainfocontrol.h
index 3156761ab..32f85fc3a 100644
--- a/src/multimedia/controls/qcamerainfocontrol.h
+++ b/src/multimedia/controls/qcamerainfocontrol.h
@@ -58,7 +58,7 @@ public:
virtual int cameraOrientation(const QString &deviceName) const = 0;
protected:
- QCameraInfoControl(QObject *parent = 0);
+ explicit QCameraInfoControl(QObject *parent = Q_NULLPTR);
};
#define QCameraInfoControl_iid "org.qt-project.qt.camerainfocontrol/5.3"
diff --git a/src/multimedia/controls/qcameralockscontrol.h b/src/multimedia/controls/qcameralockscontrol.h
index b830f01fa..01178642f 100644
--- a/src/multimedia/controls/qcameralockscontrol.h
+++ b/src/multimedia/controls/qcameralockscontrol.h
@@ -67,7 +67,7 @@ Q_SIGNALS:
void lockStatusChanged(QCamera::LockType type, QCamera::LockStatus status, QCamera::LockChangeReason reason);
protected:
- QCameraLocksControl(QObject* parent = 0);
+ explicit QCameraLocksControl(QObject *parent = Q_NULLPTR);
};
#define QCameraLocksControl_iid "org.qt-project.qt.cameralockscontrol/5.0"
diff --git a/src/multimedia/controls/qcameraviewfindersettingscontrol.h b/src/multimedia/controls/qcameraviewfindersettingscontrol.h
index aa3dd913e..c67fdaabb 100644
--- a/src/multimedia/controls/qcameraviewfindersettingscontrol.h
+++ b/src/multimedia/controls/qcameraviewfindersettingscontrol.h
@@ -70,7 +70,7 @@ public:
virtual void setViewfinderParameter(ViewfinderParameter parameter, const QVariant &value) = 0;
protected:
- QCameraViewfinderSettingsControl(QObject *parent = 0);
+ explicit QCameraViewfinderSettingsControl(QObject *parent = Q_NULLPTR);
};
#define QCameraViewfinderSettingsControl_iid "org.qt-project.qt.cameraviewfindersettingscontrol/5.0"
@@ -92,7 +92,7 @@ public:
virtual void setViewfinderSettings(const QCameraViewfinderSettings &settings) = 0;
protected:
- QCameraViewfinderSettingsControl2(QObject *parent = 0);
+ explicit QCameraViewfinderSettingsControl2(QObject *parent = Q_NULLPTR);
};
#define QCameraViewfinderSettingsControl2_iid "org.qt-project.qt.cameraviewfindersettingscontrol2/5.5"
diff --git a/src/multimedia/controls/qcamerazoomcontrol.h b/src/multimedia/controls/qcamerazoomcontrol.h
index 67763d301..776d6ddab 100644
--- a/src/multimedia/controls/qcamerazoomcontrol.h
+++ b/src/multimedia/controls/qcamerazoomcontrol.h
@@ -75,7 +75,7 @@ Q_SIGNALS:
void currentDigitalZoomChanged(qreal digitalZoom);
protected:
- QCameraZoomControl(QObject* parent = 0);
+ explicit QCameraZoomControl(QObject *parent = Q_NULLPTR);
};
#define QCameraZoomControl_iid "org.qt-project.qt.camerazoomcontrol/5.0"
diff --git a/src/multimedia/controls/qimageencodercontrol.h b/src/multimedia/controls/qimageencodercontrol.h
index 023e9beb5..292e16b1f 100644
--- a/src/multimedia/controls/qimageencodercontrol.h
+++ b/src/multimedia/controls/qimageencodercontrol.h
@@ -68,13 +68,13 @@ public:
virtual QString imageCodecDescription(const QString &codecName) const = 0;
virtual QList<QSize> supportedResolutions(const QImageEncoderSettings &settings,
- bool *continuous = 0) const = 0;
+ bool *continuous = Q_NULLPTR) const = 0;
virtual QImageEncoderSettings imageSettings() const = 0;
virtual void setImageSettings(const QImageEncoderSettings &settings) = 0;
protected:
- QImageEncoderControl(QObject *parent = 0);
+ explicit QImageEncoderControl(QObject *parent = Q_NULLPTR);
};
#define QImageEncoderControl_iid "org.qt-project.qt.imageencodercontrol/5.0"
diff --git a/src/multimedia/controls/qmediaaudioprobecontrol.h b/src/multimedia/controls/qmediaaudioprobecontrol.h
index c5e384927..9d679c768 100644
--- a/src/multimedia/controls/qmediaaudioprobecontrol.h
+++ b/src/multimedia/controls/qmediaaudioprobecontrol.h
@@ -56,7 +56,7 @@ Q_SIGNALS:
void flush();
protected:
- explicit QMediaAudioProbeControl(QObject *parent = 0);
+ explicit QMediaAudioProbeControl(QObject *parent = Q_NULLPTR);
};
#define QMediaAudioProbeControl_iid "org.qt-project.qt.mediaaudioprobecontrol/5.0"
diff --git a/src/multimedia/controls/qmediaavailabilitycontrol.h b/src/multimedia/controls/qmediaavailabilitycontrol.h
index 7bab5c0fb..55149ccb0 100644
--- a/src/multimedia/controls/qmediaavailabilitycontrol.h
+++ b/src/multimedia/controls/qmediaavailabilitycontrol.h
@@ -62,7 +62,7 @@ Q_SIGNALS:
void availabilityChanged(QMultimedia::AvailabilityStatus availability);
protected:
- QMediaAvailabilityControl(QObject* parent = 0);
+ explicit QMediaAvailabilityControl(QObject *parent = Q_NULLPTR);
};
#define QMediaAvailabilityControl_iid "org.qt-project.qt.mediaavailabilitycontrol/5.0"
diff --git a/src/multimedia/controls/qmediacontainercontrol.h b/src/multimedia/controls/qmediacontainercontrol.h
index 8e17b98fe..8c315590e 100644
--- a/src/multimedia/controls/qmediacontainercontrol.h
+++ b/src/multimedia/controls/qmediacontainercontrol.h
@@ -62,7 +62,7 @@ public:
virtual QString containerDescription(const QString &formatMimeType) const = 0;
protected:
- QMediaContainerControl(QObject *parent = 0);
+ explicit QMediaContainerControl(QObject *parent = Q_NULLPTR);
};
#define QMediaContainerControl_iid "org.qt-project.qt.mediacontainercontrol/5.0"
diff --git a/src/multimedia/controls/qmediagaplessplaybackcontrol.h b/src/multimedia/controls/qmediagaplessplaybackcontrol.h
index e9a1472e1..8ab31ef62 100644
--- a/src/multimedia/controls/qmediagaplessplaybackcontrol.h
+++ b/src/multimedia/controls/qmediagaplessplaybackcontrol.h
@@ -66,7 +66,7 @@ Q_SIGNALS:
void advancedToNextMedia();
protected:
- QMediaGaplessPlaybackControl(QObject* parent = 0);
+ explicit QMediaGaplessPlaybackControl(QObject *parent = Q_NULLPTR);
};
#define QMediaGaplessPlaybackControl_iid "org.qt-project.qt.mediagaplessplaybackcontrol/5.0"
diff --git a/src/multimedia/controls/qmedianetworkaccesscontrol.h b/src/multimedia/controls/qmedianetworkaccesscontrol.h
index 118e315a7..1c258a0bb 100644
--- a/src/multimedia/controls/qmedianetworkaccesscontrol.h
+++ b/src/multimedia/controls/qmedianetworkaccesscontrol.h
@@ -65,7 +65,7 @@ Q_SIGNALS:
void configurationChanged(const QNetworkConfiguration& configuration);
protected:
- QMediaNetworkAccessControl(QObject *parent = 0);
+ explicit QMediaNetworkAccessControl(QObject *parent = Q_NULLPTR);
};
#define QMediaNetworkAccessControl_iid "org.qt-project.qt.medianetworkaccesscontrol/5.0"
diff --git a/src/multimedia/controls/qmediaplayercontrol.h b/src/multimedia/controls/qmediaplayercontrol.h
index 416cfa5f1..a3fb1d4e1 100644
--- a/src/multimedia/controls/qmediaplayercontrol.h
+++ b/src/multimedia/controls/qmediaplayercontrol.h
@@ -110,7 +110,7 @@ Q_SIGNALS:
void error(int error, const QString &errorString);
protected:
- QMediaPlayerControl(QObject* parent = 0);
+ explicit QMediaPlayerControl(QObject *parent = Q_NULLPTR);
};
#define QMediaPlayerControl_iid "org.qt-project.qt.mediaplayercontrol/5.0"
diff --git a/src/multimedia/controls/qmediarecordercontrol.h b/src/multimedia/controls/qmediarecordercontrol.h
index 297640f23..85f5c78d5 100644
--- a/src/multimedia/controls/qmediarecordercontrol.h
+++ b/src/multimedia/controls/qmediarecordercontrol.h
@@ -88,7 +88,7 @@ public Q_SLOTS:
virtual void setVolume(qreal volume) = 0;
protected:
- QMediaRecorderControl(QObject* parent = 0);
+ explicit QMediaRecorderControl(QObject *parent = Q_NULLPTR);
};
#define QMediaRecorderControl_iid "org.qt-project.qt.mediarecordercontrol/5.0"
diff --git a/src/multimedia/controls/qmediastreamscontrol.h b/src/multimedia/controls/qmediastreamscontrol.h
index db738c922..ea12dd188 100644
--- a/src/multimedia/controls/qmediastreamscontrol.h
+++ b/src/multimedia/controls/qmediastreamscontrol.h
@@ -73,7 +73,7 @@ Q_SIGNALS:
void activeStreamsChanged();
protected:
- QMediaStreamsControl(QObject *parent = 0);
+ explicit QMediaStreamsControl(QObject *parent = Q_NULLPTR);
};
#define QMediaStreamsControl_iid "org.qt-project.qt.mediastreamscontrol/5.0"
diff --git a/src/multimedia/controls/qmediavideoprobecontrol.h b/src/multimedia/controls/qmediavideoprobecontrol.h
index 3adea5846..25caefee6 100644
--- a/src/multimedia/controls/qmediavideoprobecontrol.h
+++ b/src/multimedia/controls/qmediavideoprobecontrol.h
@@ -58,7 +58,7 @@ Q_SIGNALS:
void flush();
protected:
- explicit QMediaVideoProbeControl(QObject *parent = 0);
+ explicit QMediaVideoProbeControl(QObject *parent = Q_NULLPTR);
};
#define QMediaVideoProbeControl_iid "org.qt-project.qt.mediavideoprobecontrol/5.0"
diff --git a/src/multimedia/controls/qmetadatareadercontrol.h b/src/multimedia/controls/qmetadatareadercontrol.h
index 4923be102..9162d6454 100644
--- a/src/multimedia/controls/qmetadatareadercontrol.h
+++ b/src/multimedia/controls/qmetadatareadercontrol.h
@@ -71,7 +71,7 @@ Q_SIGNALS:
void metaDataAvailableChanged(bool available);
protected:
- QMetaDataReaderControl(QObject *parent = 0);
+ explicit QMetaDataReaderControl(QObject *parent = Q_NULLPTR);
};
#define QMetaDataReaderControl_iid "org.qt-project.qt.metadatareadercontrol/5.0"
diff --git a/src/multimedia/controls/qmetadatawritercontrol.h b/src/multimedia/controls/qmetadatawritercontrol.h
index adef3af8d..1c2f4cf69 100644
--- a/src/multimedia/controls/qmetadatawritercontrol.h
+++ b/src/multimedia/controls/qmetadatawritercontrol.h
@@ -74,7 +74,7 @@ Q_SIGNALS:
void metaDataAvailableChanged(bool available);
protected:
- QMetaDataWriterControl(QObject *parent = 0);
+ explicit QMetaDataWriterControl(QObject *parent = Q_NULLPTR);
};
#define QMetaDataWriterControl_iid "org.qt-project.qt.metadatawritercontrol/5.0"
diff --git a/src/multimedia/controls/qradiodatacontrol.h b/src/multimedia/controls/qradiodatacontrol.h
index e61978d8b..28b3a57b2 100644
--- a/src/multimedia/controls/qradiodatacontrol.h
+++ b/src/multimedia/controls/qradiodatacontrol.h
@@ -76,7 +76,7 @@ Q_SIGNALS:
void error(QRadioData::Error err);
protected:
- QRadioDataControl(QObject *parent = 0);
+ explicit QRadioDataControl(QObject *parent = Q_NULLPTR);
};
#define QRadioDataControl_iid "org.qt-project.qt.radiodatacontrol/5.0"
diff --git a/src/multimedia/controls/qradiotunercontrol.h b/src/multimedia/controls/qradiotunercontrol.h
index 106e3e272..9a9e12059 100644
--- a/src/multimedia/controls/qradiotunercontrol.h
+++ b/src/multimedia/controls/qradiotunercontrol.h
@@ -107,7 +107,7 @@ Q_SIGNALS:
void antennaConnectedChanged(bool connectionStatus);
protected:
- QRadioTunerControl(QObject *parent = 0);
+ explicit QRadioTunerControl(QObject *parent = Q_NULLPTR);
};
#define QRadioTunerControl_iid "org.qt-project.qt.radiotunercontrol/5.0"
diff --git a/src/multimedia/controls/qvideodeviceselectorcontrol.h b/src/multimedia/controls/qvideodeviceselectorcontrol.h
index de154aafe..10a703bb2 100644
--- a/src/multimedia/controls/qvideodeviceselectorcontrol.h
+++ b/src/multimedia/controls/qvideodeviceselectorcontrol.h
@@ -71,7 +71,7 @@ Q_SIGNALS:
void devicesChanged();
protected:
- QVideoDeviceSelectorControl(QObject *parent = 0);
+ explicit QVideoDeviceSelectorControl(QObject *parent = Q_NULLPTR);
};
#define QVideoDeviceSelectorControl_iid "org.qt-project.qt.videodeviceselectorcontrol/5.0"
diff --git a/src/multimedia/controls/qvideoencodersettingscontrol.h b/src/multimedia/controls/qvideoencodersettingscontrol.h
index 4bf8c4d45..ea1401aeb 100644
--- a/src/multimedia/controls/qvideoencodersettingscontrol.h
+++ b/src/multimedia/controls/qvideoencodersettingscontrol.h
@@ -65,10 +65,10 @@ public:
virtual ~QVideoEncoderSettingsControl();
virtual QList<QSize> supportedResolutions(const QVideoEncoderSettings &settings,
- bool *continuous = 0) const = 0;
+ bool *continuous = Q_NULLPTR) const = 0;
virtual QList<qreal> supportedFrameRates(const QVideoEncoderSettings &settings,
- bool *continuous = 0) const = 0;
+ bool *continuous = Q_NULLPTR) const = 0;
virtual QStringList supportedVideoCodecs() const = 0;
virtual QString videoCodecDescription(const QString &codecName) const = 0;
@@ -77,7 +77,7 @@ public:
virtual void setVideoSettings(const QVideoEncoderSettings &settings) = 0;
protected:
- QVideoEncoderSettingsControl(QObject *parent = 0);
+ explicit QVideoEncoderSettingsControl(QObject *parent = Q_NULLPTR);
};
#define QVideoEncoderSettingsControl_iid "org.qt-project.qt.videoencodersettingscontrol/5.0"
diff --git a/src/multimedia/controls/qvideorenderercontrol.h b/src/multimedia/controls/qvideorenderercontrol.h
index 6c4606318..2ddab28e1 100644
--- a/src/multimedia/controls/qvideorenderercontrol.h
+++ b/src/multimedia/controls/qvideorenderercontrol.h
@@ -56,7 +56,7 @@ public:
virtual void setSurface(QAbstractVideoSurface *surface) = 0;
protected:
- QVideoRendererControl(QObject *parent = 0);
+ explicit QVideoRendererControl(QObject *parent = Q_NULLPTR);
};
#define QVideoRendererControl_iid "org.qt-project.qt.videorenderercontrol/5.0"
diff --git a/src/multimedia/controls/qvideowindowcontrol.h b/src/multimedia/controls/qvideowindowcontrol.h
index 6b9478b1f..d26579ddc 100644
--- a/src/multimedia/controls/qvideowindowcontrol.h
+++ b/src/multimedia/controls/qvideowindowcontrol.h
@@ -94,7 +94,7 @@ Q_SIGNALS:
void nativeSizeChanged();
protected:
- QVideoWindowControl(QObject *parent = 0);
+ explicit QVideoWindowControl(QObject *parent = Q_NULLPTR);
};
#define QVideoWindowControl_iid "org.qt-project.qt.videowindowcontrol/5.0"
diff --git a/src/multimedia/doc/src/images/annotatedurl.png b/src/multimedia/doc/src/images/annotatedurl.png
index 38d86fb49..b6cf8637c 100644
--- a/src/multimedia/doc/src/images/annotatedurl.png
+++ b/src/multimedia/doc/src/images/annotatedurl.png
Binary files differ
diff --git a/src/multimedia/doc/src/images/video-graphics-memory.png b/src/multimedia/doc/src/images/video-graphics-memory.png
index 9479cce4c..4bea33322 100644
--- a/src/multimedia/doc/src/images/video-graphics-memory.png
+++ b/src/multimedia/doc/src/images/video-graphics-memory.png
Binary files differ
diff --git a/src/multimedia/doc/src/images/video-qml-paint-rate.png b/src/multimedia/doc/src/images/video-qml-paint-rate.png
index 1519ff64e..cb7d822d9 100644
--- a/src/multimedia/doc/src/images/video-qml-paint-rate.png
+++ b/src/multimedia/doc/src/images/video-qml-paint-rate.png
Binary files differ
diff --git a/src/multimedia/doc/src/multimedia.qdoc b/src/multimedia/doc/src/multimedia.qdoc
index 5849af59d..813847d88 100644
--- a/src/multimedia/doc/src/multimedia.qdoc
+++ b/src/multimedia/doc/src/multimedia.qdoc
@@ -177,12 +177,12 @@ what changed, and what you might need to change when porting code.
\section2 QML Types
The QML types are accessed by using:
\code
-import QtMultimedia 5.5
+import QtMultimedia 5.6
\endcode
\annotatedlist multimedia_qml
The following types are accessed by using \l{Qt Audio Engine QML Types}{Qt Audio Engine}:
\code
-import QtAudioEngine 1.0
+import QtAudioEngine 1.1
\endcode
\annotatedlist multimedia_audioengine
diff --git a/src/multimedia/doc/src/qtaudioengine.qdoc b/src/multimedia/doc/src/qtaudioengine.qdoc
index 3b65379d3..2de2bb250 100644
--- a/src/multimedia/doc/src/qtaudioengine.qdoc
+++ b/src/multimedia/doc/src/qtaudioengine.qdoc
@@ -26,7 +26,7 @@
****************************************************************************/
/*!
-\qmlmodule QtAudioEngine 1.0
+\qmlmodule QtAudioEngine 1.1
\title Qt Audio Engine QML Types
\ingroup qmlmodules
\brief Provides QML types for 3D positional audio playback and content management.
@@ -37,7 +37,7 @@ Engine provides types for 3D positional audio playback and content management.
The QML types can be imported into your application using the following import
statement in your .qml file:
\code
-import QtAudioEngine 1.0
+import QtAudioEngine 1.1
\endcode
\section1 Qt Audio Engine Features
diff --git a/src/multimedia/doc/src/qtmultimedia-index.qdoc b/src/multimedia/doc/src/qtmultimedia-index.qdoc
index e51ec97e0..989b8886e 100644
--- a/src/multimedia/doc/src/qtmultimedia-index.qdoc
+++ b/src/multimedia/doc/src/qtmultimedia-index.qdoc
@@ -54,7 +54,7 @@
import statement in your \c {.qml} file.
\code
- import QtMultimedia 5.5
+ import QtMultimedia 5.6
\endcode
If you intend to use the C++ classes in your application, include the C++
diff --git a/src/multimedia/doc/src/qtmultimedia5.qdoc b/src/multimedia/doc/src/qtmultimedia5.qdoc
index 0d3e087a0..21854ae7c 100644
--- a/src/multimedia/doc/src/qtmultimedia5.qdoc
+++ b/src/multimedia/doc/src/qtmultimedia5.qdoc
@@ -26,7 +26,7 @@
****************************************************************************/
/*!
-\qmlmodule QtMultimedia 5.5
+\qmlmodule QtMultimedia 5.6
\title Qt Multimedia QML Types
\ingroup qmlmodules
\brief Provides QML types for multimedia support.
@@ -42,7 +42,7 @@ The QML types for \l{Qt Multimedia} support the basic use cases such as:
The QML types can be imported into your application using the following import
statement in your .qml file:
\code
-import QtMultimedia 5.5
+import QtMultimedia 5.6
\endcode
\section1 QML types
diff --git a/src/multimedia/multimedia.pro b/src/multimedia/multimedia.pro
index b16a792fb..761e488ba 100644
--- a/src/multimedia/multimedia.pro
+++ b/src/multimedia/multimedia.pro
@@ -12,8 +12,6 @@ MODULE_PLUGIN_TYPES = \
QMAKE_DOCS = $$PWD/doc/qtmultimedia.qdocconf
-load(qt_module)
-
INCLUDEPATH *= .
PRIVATE_HEADERS += \
@@ -84,6 +82,12 @@ ANDROID_FEATURES += \
android.hardware.camera.autofocus \
android.hardware.microphone
+MODULE_WINRT_CAPABILITIES_DEVICE += \
+ microphone \
+ webcam
+
win32: LIBS_PRIVATE += -luuid
HEADERS += $$PUBLIC_HEADERS $$PRIVATE_HEADERS
+
+load(qt_module)
diff --git a/src/multimedia/playback/qmediaplayer.h b/src/multimedia/playback/qmediaplayer.h
index 6babc281e..f8d91b999 100644
--- a/src/multimedia/playback/qmediaplayer.h
+++ b/src/multimedia/playback/qmediaplayer.h
@@ -119,13 +119,13 @@ public:
MediaIsPlaylist
};
- QMediaPlayer(QObject *parent = 0, Flags flags = 0);
+ explicit QMediaPlayer(QObject *parent = Q_NULLPTR, Flags flags = Flags());
~QMediaPlayer();
static QMultimedia::SupportEstimate hasSupport(const QString &mimeType,
const QStringList& codecs = QStringList(),
- Flags flags = 0);
- static QStringList supportedMimeTypes(Flags flags = 0);
+ Flags flags = Flags());
+ static QStringList supportedMimeTypes(Flags flags = Flags());
void setVideoOutput(QVideoWidget *);
void setVideoOutput(QGraphicsVideoItem *);
@@ -174,7 +174,7 @@ public Q_SLOTS:
void setPlaybackRate(qreal rate);
- void setMedia(const QMediaContent &media, QIODevice *stream = 0);
+ void setMedia(const QMediaContent &media, QIODevice *stream = Q_NULLPTR);
void setPlaylist(QMediaPlaylist *playlist);
void setNetworkConfigurations(const QList<QNetworkConfiguration> &configurations);
diff --git a/src/multimedia/playback/qmediaplaylist.h b/src/multimedia/playback/qmediaplaylist.h
index 1fa75a24d..05ab8f42e 100644
--- a/src/multimedia/playback/qmediaplaylist.h
+++ b/src/multimedia/playback/qmediaplaylist.h
@@ -67,7 +67,7 @@ public:
enum PlaybackMode { CurrentItemOnce, CurrentItemInLoop, Sequential, Loop, Random };
enum Error { NoError, FormatError, FormatNotSupportedError, NetworkError, AccessDeniedError };
- QMediaPlaylist(QObject *parent = 0);
+ explicit QMediaPlaylist(QObject *parent = Q_NULLPTR);
virtual ~QMediaPlaylist();
QMediaObject *mediaObject() const;
@@ -96,11 +96,11 @@ public:
bool removeMedia(int start, int end);
bool clear();
- void load(const QNetworkRequest &request, const char *format = 0);
- void load(const QUrl &location, const char *format = 0);
- void load(QIODevice * device, const char *format = 0);
+ void load(const QNetworkRequest &request, const char *format = Q_NULLPTR);
+ void load(const QUrl &location, const char *format = Q_NULLPTR);
+ void load(QIODevice *device, const char *format = Q_NULLPTR);
- bool save(const QUrl &location, const char *format = 0);
+ bool save(const QUrl &location, const char *format = Q_NULLPTR);
bool save(QIODevice * device, const char *format);
Error error() const;
diff --git a/src/multimedia/qmediacontrol.h b/src/multimedia/qmediacontrol.h
index 0f4c5d295..3c95444d0 100644
--- a/src/multimedia/qmediacontrol.h
+++ b/src/multimedia/qmediacontrol.h
@@ -59,8 +59,8 @@ public:
~QMediaControl();
protected:
- QMediaControl(QObject *parent = 0);
- QMediaControl(QMediaControlPrivate &dd, QObject *parent = 0);
+ explicit QMediaControl(QObject *parent = Q_NULLPTR);
+ explicit QMediaControl(QMediaControlPrivate &dd, QObject *parent = Q_NULLPTR);
QMediaControlPrivate *d_ptr;
diff --git a/src/multimedia/qtmultimediaquicktools_headers/qtmultimediaquickdefs_p.h b/src/multimedia/qtmultimediaquicktools_headers/qtmultimediaquickdefs_p.h
index 2b2dcb6f6..20188739c 100644
--- a/src/multimedia/qtmultimediaquicktools_headers/qtmultimediaquickdefs_p.h
+++ b/src/multimedia/qtmultimediaquicktools_headers/qtmultimediaquickdefs_p.h
@@ -54,7 +54,7 @@
#include <QtCore/qglobal.h>
#ifndef QT_STATIC
-# if defined(QT_BUILD_QTMM_QUICK_LIB)
+# if defined(QT_BUILD_QTMULTIMEDIAQUICKTOOLS_LIB)
# define Q_MULTIMEDIAQUICK_EXPORT Q_DECL_EXPORT
# else
# define Q_MULTIMEDIAQUICK_EXPORT Q_DECL_IMPORT
diff --git a/src/multimedia/radio/qradiodata.h b/src/multimedia/radio/qradiodata.h
index 40b03a72b..a5cc09900 100644
--- a/src/multimedia/radio/qradiodata.h
+++ b/src/multimedia/radio/qradiodata.h
@@ -82,7 +82,7 @@ public:
College
};
- QRadioData(QMediaObject *mediaObject, QObject *parent = 0);
+ explicit QRadioData(QMediaObject *mediaObject, QObject *parent = Q_NULLPTR);
~QRadioData();
QMultimedia::AvailabilityStatus availability() const;
diff --git a/src/multimedia/radio/qradiotuner.h b/src/multimedia/radio/qradiotuner.h
index 8f9175933..a9de6416d 100644
--- a/src/multimedia/radio/qradiotuner.h
+++ b/src/multimedia/radio/qradiotuner.h
@@ -78,7 +78,7 @@ public:
enum StereoMode { ForceStereo, ForceMono, Auto };
enum SearchMode { SearchFast, SearchGetStationId };
- QRadioTuner(QObject *parent = 0);
+ explicit QRadioTuner(QObject *parent = Q_NULLPTR);
~QRadioTuner();
QMultimedia::AvailabilityStatus availability() const;
diff --git a/src/multimedia/recording/qaudiorecorder.h b/src/multimedia/recording/qaudiorecorder.h
index 34e58bbe9..75f95d354 100644
--- a/src/multimedia/recording/qaudiorecorder.h
+++ b/src/multimedia/recording/qaudiorecorder.h
@@ -62,7 +62,7 @@ class Q_MULTIMEDIA_EXPORT QAudioRecorder : public QMediaRecorder
Q_OBJECT
Q_PROPERTY(QString audioInput READ audioInput WRITE setAudioInput NOTIFY audioInputChanged)
public:
- QAudioRecorder(QObject *parent = 0);
+ explicit QAudioRecorder(QObject *parent = Q_NULLPTR);
~QAudioRecorder();
QStringList audioInputs() const;
diff --git a/src/multimedia/recording/qmediarecorder.h b/src/multimedia/recording/qmediarecorder.h
index a06c1ce70..3ac25129b 100644
--- a/src/multimedia/recording/qmediarecorder.h
+++ b/src/multimedia/recording/qmediarecorder.h
@@ -106,7 +106,7 @@ public:
OutOfSpaceError
};
- QMediaRecorder(QMediaObject *mediaObject, QObject *parent = 0);
+ explicit QMediaRecorder(QMediaObject *mediaObject, QObject *parent = Q_NULLPTR);
~QMediaRecorder();
QMediaObject *mediaObject() const;
@@ -137,16 +137,16 @@ public:
QString audioCodecDescription(const QString &codecName) const;
QList<int> supportedAudioSampleRates(const QAudioEncoderSettings &settings = QAudioEncoderSettings(),
- bool *continuous = 0) const;
+ bool *continuous = Q_NULLPTR) const;
QStringList supportedVideoCodecs() const;
QString videoCodecDescription(const QString &codecName) const;
QList<QSize> supportedResolutions(const QVideoEncoderSettings &settings = QVideoEncoderSettings(),
- bool *continuous = 0) const;
+ bool *continuous = Q_NULLPTR) const;
QList<qreal> supportedFrameRates(const QVideoEncoderSettings &settings = QVideoEncoderSettings(),
- bool *continuous = 0) const;
+ bool *continuous = Q_NULLPTR) const;
QAudioEncoderSettings audioSettings() const;
QVideoEncoderSettings videoSettings() const;
@@ -193,7 +193,7 @@ Q_SIGNALS:
void availabilityChanged(QMultimedia::AvailabilityStatus availability);
protected:
- QMediaRecorder(QMediaRecorderPrivate &dd, QMediaObject *mediaObject, QObject *parent = 0);
+ QMediaRecorder(QMediaRecorderPrivate &dd, QMediaObject *mediaObject, QObject *parent = Q_NULLPTR);
bool setMediaObject(QMediaObject *object);
QMediaRecorderPrivate *d_ptr;
diff --git a/src/multimedia/video/qabstractvideofilter.h b/src/multimedia/video/qabstractvideofilter.h
index 266c1ea02..7e125fac4 100644
--- a/src/multimedia/video/qabstractvideofilter.h
+++ b/src/multimedia/video/qabstractvideofilter.h
@@ -68,7 +68,7 @@ class Q_MULTIMEDIA_EXPORT QAbstractVideoFilter : public QObject
Q_PROPERTY(bool active READ isActive WRITE setActive NOTIFY activeChanged)
public:
- explicit QAbstractVideoFilter(QObject *parent = 0);
+ explicit QAbstractVideoFilter(QObject *parent = Q_NULLPTR);
~QAbstractVideoFilter();
bool isActive() const;
diff --git a/src/multimedia/video/qabstractvideosurface.h b/src/multimedia/video/qabstractvideosurface.h
index cb367b197..f3d3e0799 100644
--- a/src/multimedia/video/qabstractvideosurface.h
+++ b/src/multimedia/video/qabstractvideosurface.h
@@ -64,7 +64,7 @@ public:
ResourceError
};
- explicit QAbstractVideoSurface(QObject *parent = 0);
+ explicit QAbstractVideoSurface(QObject *parent = Q_NULLPTR);
~QAbstractVideoSurface();
virtual QList<QVideoFrame::PixelFormat> supportedPixelFormats(
diff --git a/src/multimedia/video/qvideoprobe.h b/src/multimedia/video/qvideoprobe.h
index 1bcc954dc..854e71272 100644
--- a/src/multimedia/video/qvideoprobe.h
+++ b/src/multimedia/video/qvideoprobe.h
@@ -53,7 +53,7 @@ class Q_MULTIMEDIA_EXPORT QVideoProbe : public QObject
{
Q_OBJECT
public:
- explicit QVideoProbe(QObject *parent = 0);
+ explicit QVideoProbe(QObject *parent = Q_NULLPTR);
~QVideoProbe();
bool setSource(QMediaObject *source);