diff options
author | Kari Oikarinen <kari.oikarinen@qt.io> | 2019-01-08 08:18:39 +0200 |
---|---|---|
committer | Kari Oikarinen <kari.oikarinen@qt.io> | 2019-01-08 08:18:39 +0200 |
commit | 6fde0c5698d02db489a42e7108260327bae357b1 (patch) | |
tree | 4072f2ff49eb7aeefe69e6ad5d6350fa61f740c6 | |
parent | 4fb0aa479ea6b5ea7e72ba880cf01bbaa59d93fa (diff) | |
parent | 80898b03be54e2855472987f60f4c2526344389b (diff) |
Merge 5.12 into 5.12.1
Change-Id: Ic42cf93c3be21a84d711effae28a3292f2b5c600
-rw-r--r-- | .qmake.conf | 2 | ||||
-rw-r--r-- | dist/changes-5.11.3 | 58 | ||||
-rw-r--r-- | src/gsttools/qgstreamerplayercontrol.cpp | 1 | ||||
-rw-r--r-- | src/gsttools/qgstutils.cpp | 7 | ||||
-rw-r--r-- | src/multimedia/camera/qcamera.cpp | 43 | ||||
-rw-r--r-- | src/plugins/gstreamer/audiodecoder/qgstreameraudiodecodercontrol.cpp | 1 | ||||
-rw-r--r-- | src/plugins/gstreamer/camerabin/camerabincapturebufferformat.h | 2 | ||||
-rw-r--r-- | src/plugins/gstreamer/camerabin/camerabincapturedestination.h | 2 | ||||
-rw-r--r-- | src/plugins/gstreamer/camerabin/camerabinexposure.h | 2 | ||||
-rw-r--r-- | src/plugins/gstreamer/camerabin/camerabinflash.h | 2 | ||||
-rw-r--r-- | src/plugins/wmf/player/mfmetadatacontrol.cpp | 2 | ||||
-rw-r--r-- | tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp | 12 | ||||
-rw-r--r-- | tests/auto/unit/qcamera/tst_qcamera.cpp | 2 |
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); |