summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKari Oikarinen <kari.oikarinen@qt.io>2019-01-08 08:18:39 +0200
committerKari Oikarinen <kari.oikarinen@qt.io>2019-01-08 08:18:39 +0200
commit6fde0c5698d02db489a42e7108260327bae357b1 (patch)
tree4072f2ff49eb7aeefe69e6ad5d6350fa61f740c6
parent4fb0aa479ea6b5ea7e72ba880cf01bbaa59d93fa (diff)
parent80898b03be54e2855472987f60f4c2526344389b (diff)
Merge 5.12 into 5.12.1
-rw-r--r--.qmake.conf2
-rw-r--r--dist/changes-5.11.358
-rw-r--r--src/gsttools/qgstreamerplayercontrol.cpp1
-rw-r--r--src/gsttools/qgstutils.cpp7
-rw-r--r--src/multimedia/camera/qcamera.cpp43
-rw-r--r--src/plugins/gstreamer/audiodecoder/qgstreameraudiodecodercontrol.cpp1
-rw-r--r--src/plugins/gstreamer/camerabin/camerabincapturebufferformat.h2
-rw-r--r--src/plugins/gstreamer/camerabin/camerabincapturedestination.h2
-rw-r--r--src/plugins/gstreamer/camerabin/camerabinexposure.h2
-rw-r--r--src/plugins/gstreamer/camerabin/camerabinflash.h2
-rw-r--r--src/plugins/wmf/player/mfmetadatacontrol.cpp2
-rw-r--r--tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp12
-rw-r--r--tests/auto/unit/qcamera/tst_qcamera.cpp2
13 files changed, 97 insertions, 39 deletions
diff --git a/.qmake.conf b/.qmake.conf
index 097d8b948..1c14aab6d 100644
--- a/.qmake.conf
+++ b/.qmake.conf
@@ -1,3 +1,3 @@
load(qt_build_config)
-MODULE_VERSION = 5.12.0
+MODULE_VERSION = 5.12.1
diff --git a/dist/changes-5.11.3 b/dist/changes-5.11.3
new file mode 100644
index 000000000..39f8d6028
--- /dev/null
+++ b/dist/changes-5.11.3
@@ -0,0 +1,58 @@
+Qt 5.11.3 is a bug-fix release. It maintains both forward and backward
+compatibility (source and binary) with Qt 5.11.0 through 5.11.2.
+
+For more details, refer to the online documentation included in this
+distribution. The documentation is also available online:
+
+http://doc.qt.io/qt-5/index.html
+
+The Qt version 5.11 series is binary compatible with the 5.10.x series.
+Applications compiled for 5.10 will continue to run with 5.11.
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker:
+
+https://bugreports.qt.io/
+
+Each of these identifiers can be entered in the bug tracker to obtain more
+information about a particular change.
+
+ - This release contains only minor code improvements.
+
+****************************************************************************
+* Qt 5.11.3 Changes *
+****************************************************************************
+
+ - [QTBUG-51064] Added OpenGL core profile support to QtMultimediaQuickTools.
+
+****************************************************************************
+* Platform Specific Changes *
+****************************************************************************
+
+Android
+-------
+
+ - [QTBUG-50539] Fixed setting http/rtsp url on the media player.
+ - [QTBUG-70653] Fixed crash when play() is called prior to a state being set.
+
+DirectShow
+----------
+
+ - [QTBUG-70932] Fixed crash when the camera got destroyed..
+ - [QTBUG-70672] Fixed crash when no resources could be created.
+
+QNX
+---
+
+ - Retrieved some information from the track metadata if available.
+ - Fixed video window parenting and positioning.
+
+PulseAudio
+----------
+
+ - [QTBUG-69734] Fixed crash when stop() is called while reading buffers.
+
+Gstreamer
+---------
+
+ - [QTBUG-63517] Fixed tst_QMediaPlayerBackend to make it pass.
diff --git a/src/gsttools/qgstreamerplayercontrol.cpp b/src/gsttools/qgstreamerplayercontrol.cpp
index 053e5e408..73f43f0b9 100644
--- a/src/gsttools/qgstreamerplayercontrol.cpp
+++ b/src/gsttools/qgstreamerplayercontrol.cpp
@@ -52,7 +52,6 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
-#include <unistd.h>
//#define DEBUG_PLAYBIN
diff --git a/src/gsttools/qgstutils.cpp b/src/gsttools/qgstutils.cpp
index ab037d959..6960ff8f4 100644
--- a/src/gsttools/qgstutils.cpp
+++ b/src/gsttools/qgstutils.cpp
@@ -1308,7 +1308,8 @@ void QGstUtils::setMetaData(GstBin *bin, const QMap<QByteArray, QVariant> &data)
GstCaps *QGstUtils::videoFilterCaps()
{
- static GstStaticCaps staticCaps = GST_STATIC_CAPS(
+ static GstStaticCaps staticCaps = {
+ NULL,
#if GST_CHECK_VERSION(1,2,0)
"video/x-raw(ANY);"
#elif GST_CHECK_VERSION(1,0,0)
@@ -1320,7 +1321,9 @@ GstCaps *QGstUtils::videoFilterCaps()
"video/x-android-buffer;"
#endif
"image/jpeg;"
- "video/x-h264");
+ "video/x-h264",
+ GST_PADDING_INIT
+ };
return gst_caps_make_writable(gst_static_caps_get(&staticCaps));
}
diff --git a/src/multimedia/camera/qcamera.cpp b/src/multimedia/camera/qcamera.cpp
index 722c5b629..c7d64155c 100644
--- a/src/multimedia/camera/qcamera.cpp
+++ b/src/multimedia/camera/qcamera.cpp
@@ -347,18 +347,27 @@ QCamera::QCamera(const QByteArray& deviceName, QObject *parent):
Q_D(QCamera);
d->init();
- if (d->service != 0) {
- //pass device name to service
- if (d->deviceControl) {
- const QString name = QString::fromLatin1(deviceName);
- for (int i = 0; i < d->deviceControl->deviceCount(); i++) {
- if (d->deviceControl->deviceName(i) == name) {
- d->deviceControl->setSelectedDevice(i);
- break;
- }
+ bool found = false;
+ // Pass device name to service.
+ if (d->deviceControl) {
+ const QString name = QString::fromLatin1(deviceName);
+ for (int i = 0; i < d->deviceControl->deviceCount(); i++) {
+ if (d->deviceControl->deviceName(i) == name) {
+ d->deviceControl->setSelectedDevice(i);
+ found = true;
+ break;
}
}
}
+
+ // The camera should not be used if device with requested name does not exist.
+ if (!found) {
+ if (d->service && d->control)
+ d->service->releaseControl(d->control);
+ d->control = nullptr;
+ d->error = QCamera::ServiceMissingError;
+ d->errorString = QCamera::tr("The camera service is missing");
+ }
}
/*!
@@ -368,22 +377,8 @@ QCamera::QCamera(const QByteArray& deviceName, QObject *parent):
*/
QCamera::QCamera(const QCameraInfo &cameraInfo, QObject *parent)
- : QMediaObject(*new QCameraPrivate,
- parent,
- QMediaServiceProvider::defaultServiceProvider()->requestService(Q_MEDIASERVICE_CAMERA,
- QMediaServiceProviderHint(cameraInfo.deviceName().toLatin1())))
+ : QCamera(cameraInfo.deviceName().toLatin1(), parent)
{
- Q_D(QCamera);
- d->init();
-
- if (d->service != 0 && d->deviceControl) {
- for (int i = 0; i < d->deviceControl->deviceCount(); i++) {
- if (d->deviceControl->deviceName(i) == cameraInfo.deviceName()) {
- d->deviceControl->setSelectedDevice(i);
- break;
- }
- }
- }
}
/*!
diff --git a/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecodercontrol.cpp b/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecodercontrol.cpp
index 4b0e7afa4..e9a7a5332 100644
--- a/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecodercontrol.cpp
+++ b/src/plugins/gstreamer/audiodecoder/qgstreameraudiodecodercontrol.cpp
@@ -48,7 +48,6 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
-#include <unistd.h>
QT_BEGIN_NAMESPACE
diff --git a/src/plugins/gstreamer/camerabin/camerabincapturebufferformat.h b/src/plugins/gstreamer/camerabin/camerabincapturebufferformat.h
index a6cdc5297..7051913a7 100644
--- a/src/plugins/gstreamer/camerabin/camerabincapturebufferformat.h
+++ b/src/plugins/gstreamer/camerabin/camerabincapturebufferformat.h
@@ -52,7 +52,7 @@ class CameraBinSession;
QT_USE_NAMESPACE
-class Q_MULTIMEDIA_EXPORT CameraBinCaptureBufferFormat : public QCameraCaptureBufferFormatControl
+class CameraBinCaptureBufferFormat : public QCameraCaptureBufferFormatControl
{
Q_OBJECT
public:
diff --git a/src/plugins/gstreamer/camerabin/camerabincapturedestination.h b/src/plugins/gstreamer/camerabin/camerabincapturedestination.h
index 460fd1aa3..bc24a23d8 100644
--- a/src/plugins/gstreamer/camerabin/camerabincapturedestination.h
+++ b/src/plugins/gstreamer/camerabin/camerabincapturedestination.h
@@ -49,7 +49,7 @@ class CameraBinSession;
QT_USE_NAMESPACE
-class Q_MULTIMEDIA_EXPORT CameraBinCaptureDestination : public QCameraCaptureDestinationControl
+class CameraBinCaptureDestination : public QCameraCaptureDestinationControl
{
Q_OBJECT
public:
diff --git a/src/plugins/gstreamer/camerabin/camerabinexposure.h b/src/plugins/gstreamer/camerabin/camerabinexposure.h
index c30da25ad..db16bed24 100644
--- a/src/plugins/gstreamer/camerabin/camerabinexposure.h
+++ b/src/plugins/gstreamer/camerabin/camerabinexposure.h
@@ -50,7 +50,7 @@ QT_BEGIN_NAMESPACE
class CameraBinSession;
-class Q_MULTIMEDIA_EXPORT CameraBinExposure : public QCameraExposureControl
+class CameraBinExposure : public QCameraExposureControl
{
Q_OBJECT
diff --git a/src/plugins/gstreamer/camerabin/camerabinflash.h b/src/plugins/gstreamer/camerabin/camerabinflash.h
index 84177f122..0efd100a7 100644
--- a/src/plugins/gstreamer/camerabin/camerabinflash.h
+++ b/src/plugins/gstreamer/camerabin/camerabinflash.h
@@ -50,7 +50,7 @@ QT_BEGIN_NAMESPACE
class CameraBinSession;
-class Q_MULTIMEDIA_EXPORT CameraBinFlash : public QCameraFlashControl
+class CameraBinFlash : public QCameraFlashControl
{
Q_OBJECT
public:
diff --git a/src/plugins/wmf/player/mfmetadatacontrol.cpp b/src/plugins/wmf/player/mfmetadatacontrol.cpp
index ac57ccfb5..74063f7d1 100644
--- a/src/plugins/wmf/player/mfmetadatacontrol.cpp
+++ b/src/plugins/wmf/player/mfmetadatacontrol.cpp
@@ -299,7 +299,7 @@ void MFMetaDataControl::updateSource(IMFPresentationDescriptor* sourcePD, IMFMed
m_availableMetaDatas.push_back(QMediaMetaData::SubTitle);
} else if (key == PKEY_ParentalRating) {
m_availableMetaDatas.push_back(QMediaMetaData::ParentalRating);
- } else if (key == PKEY_Comment) {
+ } else if (key == PKEY_Media_EncodingSettings) {
m_availableMetaDatas.push_back(QMediaMetaData::Description);
} else if (key == PKEY_Copyright) {
m_availableMetaDatas.push_back(QMediaMetaData::Copyright);
diff --git a/tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp b/tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp
index 76b791e21..25430a189 100644
--- a/tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp
+++ b/tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp
@@ -308,13 +308,17 @@ void tst_QMediaPlayerBackend::unloadMedia()
void tst_QMediaPlayerBackend::loadMediaInLoadingState()
{
- const QUrl url("http://unavailable.media/");
+ if (!isWavSupported())
+ QSKIP("Sound format is not supported");
+
QMediaPlayer player;
- player.setMedia(QMediaContent(url));
+ player.setMedia(localWavFile);
player.play();
+ QCOMPARE(player.mediaStatus(), QMediaPlayer::LoadingMedia);
// Sets new media while old has not been finished.
- player.setMedia(QMediaContent(url));
- QTRY_COMPARE(player.mediaStatus(), QMediaPlayer::InvalidMedia);
+ player.setMedia(localWavFile);
+ QCOMPARE(player.mediaStatus(), QMediaPlayer::LoadingMedia);
+ QTRY_COMPARE(player.mediaStatus(), QMediaPlayer::LoadedMedia);
}
void tst_QMediaPlayerBackend::playPauseStop()
diff --git a/tests/auto/unit/qcamera/tst_qcamera.cpp b/tests/auto/unit/qcamera/tst_qcamera.cpp
index 5c2d3529a..fa5e7187b 100644
--- a/tests/auto/unit/qcamera/tst_qcamera.cpp
+++ b/tests/auto/unit/qcamera/tst_qcamera.cpp
@@ -1500,7 +1500,7 @@ void tst_QCamera::testCameraLockCancel()
{
MockCameraService service;
provider->service = &service;
- QCamera camera(0, provider);
+ QCamera camera;
camera.focus()->setFocusMode(QCameraFocus::AutoFocus);