summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--examples/multimedia/declarative-camera/CameraButton.qml (renamed from examples/multimediawidgets/declarative-camera/CameraButton.qml)0
-rw-r--r--examples/multimedia/declarative-camera/CameraPropertyButton.qml (renamed from examples/multimediawidgets/declarative-camera/CameraPropertyButton.qml)0
-rw-r--r--examples/multimedia/declarative-camera/CameraPropertyPopup.qml (renamed from examples/multimediawidgets/declarative-camera/CameraPropertyPopup.qml)0
-rw-r--r--examples/multimedia/declarative-camera/FocusButton.qml (renamed from examples/multimediawidgets/declarative-camera/FocusButton.qml)0
-rw-r--r--examples/multimedia/declarative-camera/PhotoCaptureControls.qml (renamed from examples/multimediawidgets/declarative-camera/PhotoCaptureControls.qml)0
-rw-r--r--examples/multimedia/declarative-camera/PhotoPreview.qml (renamed from examples/multimediawidgets/declarative-camera/PhotoPreview.qml)0
-rw-r--r--examples/multimedia/declarative-camera/VideoCaptureControls.qml (renamed from examples/multimediawidgets/declarative-camera/VideoCaptureControls.qml)0
-rw-r--r--examples/multimedia/declarative-camera/VideoPreview.qml (renamed from examples/multimediawidgets/declarative-camera/VideoPreview.qml)0
-rw-r--r--examples/multimedia/declarative-camera/ZoomControl.qml (renamed from examples/multimediawidgets/declarative-camera/ZoomControl.qml)0
-rw-r--r--examples/multimedia/declarative-camera/declarative-camera.pro (renamed from examples/multimediawidgets/declarative-camera/declarative-camera.pro)2
-rw-r--r--examples/multimedia/declarative-camera/declarative-camera.qml (renamed from examples/multimediawidgets/declarative-camera/declarative-camera.qml)0
-rw-r--r--examples/multimedia/declarative-camera/declarative-camera.qmlproject (renamed from examples/multimediawidgets/declarative-camera/declarative-camera.qmlproject)0
-rw-r--r--examples/multimedia/declarative-camera/declarative-camera.qrc (renamed from examples/multimediawidgets/declarative-camera/declarative-camera.qrc)0
-rw-r--r--examples/multimedia/declarative-camera/doc/images/qml-camera.png (renamed from examples/multimediawidgets/declarative-camera/doc/images/qml-camera.png)bin28409 -> 28409 bytes
-rw-r--r--examples/multimedia/declarative-camera/doc/src/declarative-camera.qdoc (renamed from examples/multimediawidgets/declarative-camera/doc/src/declarative-camera.qdoc)0
-rw-r--r--examples/multimedia/declarative-camera/images/camera_auto_mode.png (renamed from examples/multimediawidgets/declarative-camera/images/camera_auto_mode.png)bin778 -> 778 bytes
-rw-r--r--examples/multimedia/declarative-camera/images/camera_camera_setting.png (renamed from examples/multimediawidgets/declarative-camera/images/camera_camera_setting.png)bin717 -> 717 bytes
-rw-r--r--examples/multimedia/declarative-camera/images/camera_flash_auto.png (renamed from examples/multimediawidgets/declarative-camera/images/camera_flash_auto.png)bin1119 -> 1119 bytes
-rw-r--r--examples/multimedia/declarative-camera/images/camera_flash_fill.png (renamed from examples/multimediawidgets/declarative-camera/images/camera_flash_fill.png)bin610 -> 610 bytes
-rw-r--r--examples/multimedia/declarative-camera/images/camera_flash_off.png (renamed from examples/multimediawidgets/declarative-camera/images/camera_flash_off.png)bin717 -> 717 bytes
-rw-r--r--examples/multimedia/declarative-camera/images/camera_flash_redeye.png (renamed from examples/multimediawidgets/declarative-camera/images/camera_flash_redeye.png)bin945 -> 945 bytes
-rw-r--r--examples/multimedia/declarative-camera/images/camera_white_balance_cloudy.png (renamed from examples/multimediawidgets/declarative-camera/images/camera_white_balance_cloudy.png)bin625 -> 625 bytes
-rw-r--r--examples/multimedia/declarative-camera/images/camera_white_balance_flourescent.png (renamed from examples/multimediawidgets/declarative-camera/images/camera_white_balance_flourescent.png)bin554 -> 554 bytes
-rw-r--r--examples/multimedia/declarative-camera/images/camera_white_balance_incandescent.png (renamed from examples/multimediawidgets/declarative-camera/images/camera_white_balance_incandescent.png)bin600 -> 600 bytes
-rw-r--r--examples/multimedia/declarative-camera/images/camera_white_balance_sunny.png (renamed from examples/multimediawidgets/declarative-camera/images/camera_white_balance_sunny.png)bin587 -> 587 bytes
-rw-r--r--examples/multimedia/declarative-camera/images/toolbutton.png (renamed from examples/multimediawidgets/declarative-camera/images/toolbutton.png)bin2550 -> 2550 bytes
-rw-r--r--examples/multimedia/declarative-camera/images/toolbutton.sci (renamed from examples/multimediawidgets/declarative-camera/images/toolbutton.sci)0
-rw-r--r--examples/multimedia/declarative-camera/qmlcamera.cpp (renamed from examples/multimediawidgets/declarative-camera/qmlcamera.cpp)0
-rw-r--r--examples/multimedia/multimedia.pro3
-rw-r--r--examples/multimedia/video/qmlvideo/main.cpp10
-rw-r--r--examples/multimedia/video/qmlvideo/qml/qmlvideo/FileBrowser.qml9
-rw-r--r--examples/multimediawidgets/multimediawidgets.pro5
-rw-r--r--qtmultimedia.pro2
-rw-r--r--src/multimedia/audio/qsoundeffect_pulse_p.cpp54
-rw-r--r--src/multimedia/audio/qsoundeffect_pulse_p.h1
-rw-r--r--src/multimediawidgets/doc/src/qtmultimediawidgets-index.qdoc1
36 files changed, 62 insertions, 25 deletions
diff --git a/examples/multimediawidgets/declarative-camera/CameraButton.qml b/examples/multimedia/declarative-camera/CameraButton.qml
index b0353b4c3..b0353b4c3 100644
--- a/examples/multimediawidgets/declarative-camera/CameraButton.qml
+++ b/examples/multimedia/declarative-camera/CameraButton.qml
diff --git a/examples/multimediawidgets/declarative-camera/CameraPropertyButton.qml b/examples/multimedia/declarative-camera/CameraPropertyButton.qml
index 033f73415..033f73415 100644
--- a/examples/multimediawidgets/declarative-camera/CameraPropertyButton.qml
+++ b/examples/multimedia/declarative-camera/CameraPropertyButton.qml
diff --git a/examples/multimediawidgets/declarative-camera/CameraPropertyPopup.qml b/examples/multimedia/declarative-camera/CameraPropertyPopup.qml
index 130de95f4..130de95f4 100644
--- a/examples/multimediawidgets/declarative-camera/CameraPropertyPopup.qml
+++ b/examples/multimedia/declarative-camera/CameraPropertyPopup.qml
diff --git a/examples/multimediawidgets/declarative-camera/FocusButton.qml b/examples/multimedia/declarative-camera/FocusButton.qml
index b3966f249..b3966f249 100644
--- a/examples/multimediawidgets/declarative-camera/FocusButton.qml
+++ b/examples/multimedia/declarative-camera/FocusButton.qml
diff --git a/examples/multimediawidgets/declarative-camera/PhotoCaptureControls.qml b/examples/multimedia/declarative-camera/PhotoCaptureControls.qml
index 991a46e14..991a46e14 100644
--- a/examples/multimediawidgets/declarative-camera/PhotoCaptureControls.qml
+++ b/examples/multimedia/declarative-camera/PhotoCaptureControls.qml
diff --git a/examples/multimediawidgets/declarative-camera/PhotoPreview.qml b/examples/multimedia/declarative-camera/PhotoPreview.qml
index 34b272dc6..34b272dc6 100644
--- a/examples/multimediawidgets/declarative-camera/PhotoPreview.qml
+++ b/examples/multimedia/declarative-camera/PhotoPreview.qml
diff --git a/examples/multimediawidgets/declarative-camera/VideoCaptureControls.qml b/examples/multimedia/declarative-camera/VideoCaptureControls.qml
index e178ff15c..e178ff15c 100644
--- a/examples/multimediawidgets/declarative-camera/VideoCaptureControls.qml
+++ b/examples/multimedia/declarative-camera/VideoCaptureControls.qml
diff --git a/examples/multimediawidgets/declarative-camera/VideoPreview.qml b/examples/multimedia/declarative-camera/VideoPreview.qml
index 597b5b8c7..597b5b8c7 100644
--- a/examples/multimediawidgets/declarative-camera/VideoPreview.qml
+++ b/examples/multimedia/declarative-camera/VideoPreview.qml
diff --git a/examples/multimediawidgets/declarative-camera/ZoomControl.qml b/examples/multimedia/declarative-camera/ZoomControl.qml
index 1bfda7500..1bfda7500 100644
--- a/examples/multimediawidgets/declarative-camera/ZoomControl.qml
+++ b/examples/multimedia/declarative-camera/ZoomControl.qml
diff --git a/examples/multimediawidgets/declarative-camera/declarative-camera.pro b/examples/multimedia/declarative-camera/declarative-camera.pro
index 5fb0a1b51..71d4f68b0 100644
--- a/examples/multimediawidgets/declarative-camera/declarative-camera.pro
+++ b/examples/multimedia/declarative-camera/declarative-camera.pro
@@ -6,6 +6,6 @@ QT += quick qml multimedia
SOURCES += qmlcamera.cpp
RESOURCES += declarative-camera.qrc
-target.path = $$[QT_INSTALL_EXAMPLES]/multimediawidgets/declarative-camera
+target.path = $$[QT_INSTALL_EXAMPLES]/multimedia/declarative-camera
INSTALLS += target
diff --git a/examples/multimediawidgets/declarative-camera/declarative-camera.qml b/examples/multimedia/declarative-camera/declarative-camera.qml
index 3e7ed4c25..3e7ed4c25 100644
--- a/examples/multimediawidgets/declarative-camera/declarative-camera.qml
+++ b/examples/multimedia/declarative-camera/declarative-camera.qml
diff --git a/examples/multimediawidgets/declarative-camera/declarative-camera.qmlproject b/examples/multimedia/declarative-camera/declarative-camera.qmlproject
index 53f5ecb8d..53f5ecb8d 100644
--- a/examples/multimediawidgets/declarative-camera/declarative-camera.qmlproject
+++ b/examples/multimedia/declarative-camera/declarative-camera.qmlproject
diff --git a/examples/multimediawidgets/declarative-camera/declarative-camera.qrc b/examples/multimedia/declarative-camera/declarative-camera.qrc
index d99b86c0c..d99b86c0c 100644
--- a/examples/multimediawidgets/declarative-camera/declarative-camera.qrc
+++ b/examples/multimedia/declarative-camera/declarative-camera.qrc
diff --git a/examples/multimediawidgets/declarative-camera/doc/images/qml-camera.png b/examples/multimedia/declarative-camera/doc/images/qml-camera.png
index 0cd61f0a0..0cd61f0a0 100644
--- a/examples/multimediawidgets/declarative-camera/doc/images/qml-camera.png
+++ b/examples/multimedia/declarative-camera/doc/images/qml-camera.png
Binary files differ
diff --git a/examples/multimediawidgets/declarative-camera/doc/src/declarative-camera.qdoc b/examples/multimedia/declarative-camera/doc/src/declarative-camera.qdoc
index 02e77854c..02e77854c 100644
--- a/examples/multimediawidgets/declarative-camera/doc/src/declarative-camera.qdoc
+++ b/examples/multimedia/declarative-camera/doc/src/declarative-camera.qdoc
diff --git a/examples/multimediawidgets/declarative-camera/images/camera_auto_mode.png b/examples/multimedia/declarative-camera/images/camera_auto_mode.png
index f168296cf..f168296cf 100644
--- a/examples/multimediawidgets/declarative-camera/images/camera_auto_mode.png
+++ b/examples/multimedia/declarative-camera/images/camera_auto_mode.png
Binary files differ
diff --git a/examples/multimediawidgets/declarative-camera/images/camera_camera_setting.png b/examples/multimedia/declarative-camera/images/camera_camera_setting.png
index 7b993eee9..7b993eee9 100644
--- a/examples/multimediawidgets/declarative-camera/images/camera_camera_setting.png
+++ b/examples/multimedia/declarative-camera/images/camera_camera_setting.png
Binary files differ
diff --git a/examples/multimediawidgets/declarative-camera/images/camera_flash_auto.png b/examples/multimedia/declarative-camera/images/camera_flash_auto.png
index fb5cc40ec..fb5cc40ec 100644
--- a/examples/multimediawidgets/declarative-camera/images/camera_flash_auto.png
+++ b/examples/multimedia/declarative-camera/images/camera_flash_auto.png
Binary files differ
diff --git a/examples/multimediawidgets/declarative-camera/images/camera_flash_fill.png b/examples/multimedia/declarative-camera/images/camera_flash_fill.png
index 7bc5949ac..7bc5949ac 100644
--- a/examples/multimediawidgets/declarative-camera/images/camera_flash_fill.png
+++ b/examples/multimedia/declarative-camera/images/camera_flash_fill.png
Binary files differ
diff --git a/examples/multimediawidgets/declarative-camera/images/camera_flash_off.png b/examples/multimedia/declarative-camera/images/camera_flash_off.png
index 3c5db10cc..3c5db10cc 100644
--- a/examples/multimediawidgets/declarative-camera/images/camera_flash_off.png
+++ b/examples/multimedia/declarative-camera/images/camera_flash_off.png
Binary files differ
diff --git a/examples/multimediawidgets/declarative-camera/images/camera_flash_redeye.png b/examples/multimedia/declarative-camera/images/camera_flash_redeye.png
index 534a087df..534a087df 100644
--- a/examples/multimediawidgets/declarative-camera/images/camera_flash_redeye.png
+++ b/examples/multimedia/declarative-camera/images/camera_flash_redeye.png
Binary files differ
diff --git a/examples/multimediawidgets/declarative-camera/images/camera_white_balance_cloudy.png b/examples/multimedia/declarative-camera/images/camera_white_balance_cloudy.png
index 243b699e7..243b699e7 100644
--- a/examples/multimediawidgets/declarative-camera/images/camera_white_balance_cloudy.png
+++ b/examples/multimedia/declarative-camera/images/camera_white_balance_cloudy.png
Binary files differ
diff --git a/examples/multimediawidgets/declarative-camera/images/camera_white_balance_flourescent.png b/examples/multimedia/declarative-camera/images/camera_white_balance_flourescent.png
index 032efe1d1..032efe1d1 100644
--- a/examples/multimediawidgets/declarative-camera/images/camera_white_balance_flourescent.png
+++ b/examples/multimedia/declarative-camera/images/camera_white_balance_flourescent.png
Binary files differ
diff --git a/examples/multimediawidgets/declarative-camera/images/camera_white_balance_incandescent.png b/examples/multimedia/declarative-camera/images/camera_white_balance_incandescent.png
index 98f906741..98f906741 100644
--- a/examples/multimediawidgets/declarative-camera/images/camera_white_balance_incandescent.png
+++ b/examples/multimedia/declarative-camera/images/camera_white_balance_incandescent.png
Binary files differ
diff --git a/examples/multimediawidgets/declarative-camera/images/camera_white_balance_sunny.png b/examples/multimedia/declarative-camera/images/camera_white_balance_sunny.png
index d7d5c9a36..d7d5c9a36 100644
--- a/examples/multimediawidgets/declarative-camera/images/camera_white_balance_sunny.png
+++ b/examples/multimedia/declarative-camera/images/camera_white_balance_sunny.png
Binary files differ
diff --git a/examples/multimediawidgets/declarative-camera/images/toolbutton.png b/examples/multimedia/declarative-camera/images/toolbutton.png
index 11310013e..11310013e 100644
--- a/examples/multimediawidgets/declarative-camera/images/toolbutton.png
+++ b/examples/multimedia/declarative-camera/images/toolbutton.png
Binary files differ
diff --git a/examples/multimediawidgets/declarative-camera/images/toolbutton.sci b/examples/multimedia/declarative-camera/images/toolbutton.sci
index 9e4f96530..9e4f96530 100644
--- a/examples/multimediawidgets/declarative-camera/images/toolbutton.sci
+++ b/examples/multimedia/declarative-camera/images/toolbutton.sci
diff --git a/examples/multimediawidgets/declarative-camera/qmlcamera.cpp b/examples/multimedia/declarative-camera/qmlcamera.cpp
index bf74831a3..bf74831a3 100644
--- a/examples/multimediawidgets/declarative-camera/qmlcamera.cpp
+++ b/examples/multimedia/declarative-camera/qmlcamera.cpp
diff --git a/examples/multimedia/multimedia.pro b/examples/multimedia/multimedia.pro
index bacbba984..449cb150f 100644
--- a/examples/multimedia/multimedia.pro
+++ b/examples/multimedia/multimedia.pro
@@ -13,8 +13,9 @@ qtHaveModule(widgets) {
audiooutput \
}
-qtHaveModule(gui):qtHaveModule(qml) {
+qtHaveModule(quick) {
SUBDIRS += \
+ declarative-camera \
declarative-radio \
video
}
diff --git a/examples/multimedia/video/qmlvideo/main.cpp b/examples/multimedia/video/qmlvideo/main.cpp
index 81c38d240..a14684ff7 100644
--- a/examples/multimedia/video/qmlvideo/main.cpp
+++ b/examples/multimedia/video/qmlvideo/main.cpp
@@ -129,13 +129,11 @@ int main(int argc, char *argv[])
rootObject, SLOT(qmlFramePainted()));
#endif
- QUrl videoPath;
const QStringList moviesLocation = QStandardPaths::standardLocations(QStandardPaths::MoviesLocation);
- if (moviesLocation.isEmpty()) {
- QUrl appPath(QString("file://%1").arg(app.applicationDirPath()));
- videoPath = appPath.resolved(QUrl("./"));
- } else
- videoPath = QString("file://%1").arg(moviesLocation.first());
+ const QUrl videoPath =
+ QUrl::fromLocalFile(moviesLocation.isEmpty() ?
+ app.applicationDirPath() :
+ moviesLocation.front());
viewer.rootContext()->setContextProperty("videoPath", videoPath);
QMetaObject::invokeMethod(rootObject, "init");
diff --git a/examples/multimedia/video/qmlvideo/qml/qmlvideo/FileBrowser.qml b/examples/multimedia/video/qmlvideo/qml/qmlvideo/FileBrowser.qml
index 18b7b0e09..b3e82c8d2 100644
--- a/examples/multimedia/video/qmlvideo/qml/qmlvideo/FileBrowser.qml
+++ b/examples/multimedia/video/qmlvideo/qml/qmlvideo/FileBrowser.qml
@@ -101,7 +101,10 @@ Rectangle {
Rectangle {
id: wrapper
function launch() {
- var path = "file://" + filePath;
+ var path = "file://";
+ if (filePath.length > 2 && filePath[1] === ':') // Windows drive logic, see QUrl::fromLocalFile()
+ path += '/';
+ path += filePath;
if (folders.isFolder(index))
down(path);
else
@@ -306,7 +309,7 @@ Rectangle {
MouseArea { id: upRegion; anchors.centerIn: parent
width: 56
height: 56
- onClicked: if (folders.parentFolder != "") up()
+ onClicked: up()
}
states: [
State {
@@ -352,6 +355,8 @@ Rectangle {
function up() {
var path = folders.parentFolder;
+ if (path.toString().length === 0 || path.toString() === 'file:')
+ return;
if (folders == folders1) {
view = view2
folders = folders2;
diff --git a/examples/multimediawidgets/multimediawidgets.pro b/examples/multimediawidgets/multimediawidgets.pro
index d8990cdc3..001a78d50 100644
--- a/examples/multimediawidgets/multimediawidgets.pro
+++ b/examples/multimediawidgets/multimediawidgets.pro
@@ -9,8 +9,3 @@ qtHaveModule(widgets) {
player \
customvideosurface
}
-
-qtHaveModule(gui):qtHaveModule(qml) {
- disabled:SUBDIRS += declarative-camera
-}
-
diff --git a/qtmultimedia.pro b/qtmultimedia.pro
index 593dff24f..d285c3cbc 100644
--- a/qtmultimedia.pro
+++ b/qtmultimedia.pro
@@ -7,7 +7,7 @@ win32 {
qtCompileTest(directshow)
qtCompileTest(wmsdk)
qtCompileTest(wmp)
- qtCompileTest(wmf)
+ contains(QT_CONFIG, wmf-backend): qtCompileTest(wmf)
qtCompileTest(evr)
} else:mac {
qtCompileTest(avfoundation)
diff --git a/src/multimedia/audio/qsoundeffect_pulse_p.cpp b/src/multimedia/audio/qsoundeffect_pulse_p.cpp
index b3318ec94..328a3b0b3 100644
--- a/src/multimedia/audio/qsoundeffect_pulse_p.cpp
+++ b/src/multimedia/audio/qsoundeffect_pulse_p.cpp
@@ -147,9 +147,20 @@ public:
Q_SIGNALS:
void contextReady();
+ void contextFailed();
void volumeChanged();
-private:
+private Q_SLOTS:
+ void onContextFailed()
+ {
+ release();
+
+ // Try to reconnect later
+ QTimer::singleShot(30000, this, SLOT(prepare()));
+
+ emit contextFailed();
+ }
+
void prepare()
{
m_vol = PA_VOLUME_NORM;
@@ -196,12 +207,23 @@ private:
m_prepared = true;
}
+private:
void release()
{
- if (!m_prepared) return;
- pa_context_unref(m_context);
- pa_threaded_mainloop_stop(m_mainLoop);
- pa_threaded_mainloop_free(m_mainLoop);
+ if (!m_prepared)
+ return;
+
+ if (m_context) {
+ pa_context_unref(m_context);
+ m_context = 0;
+ }
+
+ if (m_mainLoop) {
+ pa_threaded_mainloop_stop(m_mainLoop);
+ pa_threaded_mainloop_free(m_mainLoop);
+ m_mainLoop = 0;
+ }
+
m_prepared = false;
}
@@ -221,6 +243,9 @@ private:
#endif
QMetaObject::invokeMethod(self, "contextReady", Qt::QueuedConnection);
break;
+ case PA_CONTEXT_FAILED:
+ QMetaObject::invokeMethod(self, "onContextFailed", Qt::QueuedConnection);
+ break;
default:
break;
}
@@ -511,7 +536,8 @@ void QSoundEffectPrivate::updateVolume()
PulseDaemonLocker locker;
pa_cvolume volume;
volume.channels = m_pulseSpec.channels;
- pa_operation_unref(pa_context_set_sink_input_volume(pulseDaemon()->context(), m_sinkInputId, pulseDaemon()->calcVolume(&volume, m_volume), setvolume_callback, m_ref->getRef()));
+ if (pulseDaemon()->context())
+ pa_operation_unref(pa_context_set_sink_input_volume(pulseDaemon()->context(), m_sinkInputId, pulseDaemon()->calcVolume(&volume, m_volume), setvolume_callback, m_ref->getRef()));
Q_ASSERT(pa_cvolume_valid(&volume));
#ifdef QT_PA_DEBUG
qDebug() << this << "updateVolume =" << pa_cvolume_max(&volume);
@@ -535,7 +561,8 @@ void QSoundEffectPrivate::updateMuted()
if (m_sinkInputId < 0)
return;
PulseDaemonLocker locker;
- pa_operation_unref(pa_context_set_sink_input_mute(pulseDaemon()->context(), m_sinkInputId, m_muted, setmuted_callback, m_ref->getRef()));
+ 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
@@ -705,7 +732,7 @@ void QSoundEffectPrivate::sampleReady()
}
#endif
} else {
- if (pa_context_get_state(pulseDaemon()->context()) != PA_CONTEXT_READY) {
+ if (!pulseDaemon()->context() || pa_context_get_state(pulseDaemon()->context()) != PA_CONTEXT_READY) {
connect(pulseDaemon(), SIGNAL(contextReady()), SLOT(contextReady()));
return;
}
@@ -741,6 +768,7 @@ void QSoundEffectPrivate::unloadPulseStream()
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
}
@@ -895,6 +923,9 @@ void QSoundEffectPrivate::createPulseStream()
qDebug() << this << "createPulseStream";
#endif
+ if (!pulseDaemon()->context())
+ return;
+
pa_proplist *propList = pa_proplist_new();
if (m_category.isNull()) {
// Meant to be one of the strings "video", "music", "game", "event", "phone", "animation", "production", "a11y", "test"
@@ -906,6 +937,7 @@ void QSoundEffectPrivate::createPulseStream()
pa_proplist_free(propList);
connect(pulseDaemon(), SIGNAL(volumeChanged()), this, SLOT(updateVolume()));
+ connect(pulseDaemon(), SIGNAL(contextFailed()), this, SLOT(contextFailed()));
if (stream == 0) {
qWarning("QSoundEffect(pulseaudio): Failed to create stream");
@@ -947,6 +979,12 @@ void QSoundEffectPrivate::contextReady()
createPulseStream();
}
+void QSoundEffectPrivate::contextFailed()
+{
+ unloadPulseStream();
+ connect(pulseDaemon(), SIGNAL(contextReady()), this, SLOT(contextReady()));
+}
+
void QSoundEffectPrivate::stream_write_callback(pa_stream *s, size_t length, void *userdata)
{
Q_UNUSED(length);
diff --git a/src/multimedia/audio/qsoundeffect_pulse_p.h b/src/multimedia/audio/qsoundeffect_pulse_p.h
index e43bd2fdf..4dc58f0b6 100644
--- a/src/multimedia/audio/qsoundeffect_pulse_p.h
+++ b/src/multimedia/audio/qsoundeffect_pulse_p.h
@@ -111,6 +111,7 @@ private Q_SLOTS:
void sampleReady();
void uploadSample();
void contextReady();
+ void contextFailed();
void underRun();
void prepare();
void streamReady();
diff --git a/src/multimediawidgets/doc/src/qtmultimediawidgets-index.qdoc b/src/multimediawidgets/doc/src/qtmultimediawidgets-index.qdoc
index 07fa63205..e722f4cb3 100644
--- a/src/multimediawidgets/doc/src/qtmultimediawidgets-index.qdoc
+++ b/src/multimediawidgets/doc/src/qtmultimediawidgets-index.qdoc
@@ -57,7 +57,6 @@ QT += multimediawidgets
\section2 Examples
\list
-\li \l{QML Camera Example}
\li \l{Camera Example}
\li \l{Media Player Example}
\li \l{Video Graphics Item Example}