diff options
author | Frederik Gladhorn <frederik.gladhorn@theqtcompany.com> | 2015-02-13 13:10:48 +0100 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@theqtcompany.com> | 2015-02-13 13:10:48 +0100 |
commit | f9014d136f504c6377d1329c822f11a8b58ccdbe (patch) | |
tree | 1c1a752d8ba6b5094b182305d65ca0d0101e1ed0 /src | |
parent | bbfccc713546f9e7341fbe1af7482cafbdc4ea25 (diff) | |
parent | 06259f1dfbd9cb2ebd58bba59381a42dc8a758df (diff) |
Merge remote-tracking branch 'origin/5.4' into dev
Change-Id: I5575a4ba13212c9bfe73a3de3ef17c6528beafc3
Diffstat (limited to 'src')
-rw-r--r-- | src/imports/multimedia/qdeclarativecamera.cpp | 2 | ||||
-rw-r--r-- | src/imports/multimedia/qdeclarativecameracapture.cpp | 18 | ||||
-rw-r--r-- | src/multimedia/camera/qcameraimagecapture.cpp | 11 | ||||
-rw-r--r-- | src/multimedia/controls/qcameraimagecapturecontrol.cpp | 2 | ||||
-rw-r--r-- | src/multimedia/doc/src/blackberry.qdoc | 2 | ||||
-rw-r--r-- | src/multimedia/playback/qmediaplayer.cpp | 2 | ||||
-rw-r--r-- | src/multimedia/video/qvideoprobe.cpp | 2 | ||||
-rw-r--r-- | src/multimedia/video/qvideoprobe.h | 2 | ||||
-rw-r--r-- | src/multimediawidgets/qpaintervideosurface.cpp | 2 | ||||
-rw-r--r-- | src/plugins/android/src/mediacapture/qandroidcamerasession.cpp | 23 | ||||
-rw-r--r-- | src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.cpp | 2 | ||||
-rw-r--r-- | src/plugins/directshow/directshow.pro | 2 | ||||
-rw-r--r-- | src/plugins/directshow/dsserviceplugin.cpp | 15 | ||||
-rw-r--r-- | src/plugins/windowsaudio/qwindowsaudiodeviceinfo.cpp | 2 | ||||
-rw-r--r-- | src/plugins/windowsaudio/qwindowsaudioinput.cpp | 2 | ||||
-rw-r--r-- | src/plugins/wmf/player/mfplayersession.cpp | 2 |
16 files changed, 49 insertions, 42 deletions
diff --git a/src/imports/multimedia/qdeclarativecamera.cpp b/src/imports/multimedia/qdeclarativecamera.cpp index 4e03e258c..aac873b8e 100644 --- a/src/imports/multimedia/qdeclarativecamera.cpp +++ b/src/imports/multimedia/qdeclarativecamera.cpp @@ -925,7 +925,7 @@ void QDeclarativeCamera::setDigitalZoom(qreal value) \qmlproperty variant QtMultimedia::Camera::metaData.gpsLongitude \qmlproperty variant QtMultimedia::Camera::metaData.gpsAltitude - These properties hold the the geographic position in decimal degrees of the + These properties hold the geographic position in decimal degrees of the camera at time of capture. \sa {QMediaMetaData} diff --git a/src/imports/multimedia/qdeclarativecameracapture.cpp b/src/imports/multimedia/qdeclarativecameracapture.cpp index af62f3857..790d969e7 100644 --- a/src/imports/multimedia/qdeclarativecameracapture.cpp +++ b/src/imports/multimedia/qdeclarativecameracapture.cpp @@ -123,9 +123,8 @@ QDeclarativeCameraCapture::~QDeclarativeCameraCapture() This property holds a bool value indicating whether the camera is ready to capture photos or not. - If camera is not ready to capture image immediately, - the capture request is queued with all the related camera settings, - and the request will be executed as soon as possible. + Calling capture() while \e ready is \c false is not permitted and + results in an error. */ /*! @@ -134,11 +133,8 @@ QDeclarativeCameraCapture::~QDeclarativeCameraCapture() This property holds a bool value indicating whether the camera is ready to capture photos or not. - It's permissible to call capture() while the camera is active - regardless of the \e ready property value. - If camera is not ready to capture image immediately, - the capture request is queued with all the related camera settings, - and the request will be executed as soon as possible. + Calling capture() while \e ready is \c false is not permitted and + results in an error. */ bool QDeclarativeCameraCapture::isReadyForCapture() const { @@ -157,11 +153,13 @@ bool QDeclarativeCameraCapture::isReadyForCapture() const for video. Camera saves all the capture parameters like exposure settings or - image processing parameters, so changes to camera paramaters after + image processing parameters, so changes to camera parameters after capture() is called do not affect previous capture requests. - CameraCapture::capture returns the capture requestId parameter, used with + capture() returns the capture requestId parameter, used with imageExposed(), imageCaptured(), imageMetadataAvailable() and imageSaved() signals. + + \sa ready */ int QDeclarativeCameraCapture::capture() { diff --git a/src/multimedia/camera/qcameraimagecapture.cpp b/src/multimedia/camera/qcameraimagecapture.cpp index ea1f7808b..ea3a54981 100644 --- a/src/multimedia/camera/qcameraimagecapture.cpp +++ b/src/multimedia/camera/qcameraimagecapture.cpp @@ -488,11 +488,8 @@ void QCameraImageCapture::setCaptureDestination(QCameraImageCapture::CaptureDest \property QCameraImageCapture::readyForCapture \brief whether the service is ready to capture a an image immediately. - It's permissible to call capture() while the camera status is QCamera::ActiveStatus - regardless of isReadyForCapture property value. - If camera is not ready to capture image immediately, - the capture request is queued with all the related camera settings - to be executed as soon as possible. + Calling capture() while \e readyForCapture is \c false is not permitted and + results in an error. */ bool QCameraImageCapture::isReadyForCapture() const @@ -523,11 +520,13 @@ bool QCameraImageCapture::isReadyForCapture() const the default directory, with a full path reported with imageCaptured() and imageSaved() signals. QCamera saves all the capture parameters like exposure settings or - image processing parameters, so changes to camera paramaters after + image processing parameters, so changes to camera parameters after capture() is called do not affect previous capture requests. QCameraImageCapture::capture returns the capture Id parameter, used with imageExposed(), imageCaptured() and imageSaved() signals. + + \sa isReadyForCapture() */ int QCameraImageCapture::capture(const QString &file) { diff --git a/src/multimedia/controls/qcameraimagecapturecontrol.cpp b/src/multimedia/controls/qcameraimagecapturecontrol.cpp index ee6189bcc..5d5bc6e8a 100644 --- a/src/multimedia/controls/qcameraimagecapturecontrol.cpp +++ b/src/multimedia/controls/qcameraimagecapturecontrol.cpp @@ -111,7 +111,7 @@ QCameraImageCaptureControl::~QCameraImageCaptureControl() The Camera service should save all the capture parameters like exposure settings or image processing parameters, - so changes to camera paramaters after capture() is called + so changes to camera parameters after capture() is called do not affect previous capture requests. Returns the capture request id number, which is used later diff --git a/src/multimedia/doc/src/blackberry.qdoc b/src/multimedia/doc/src/blackberry.qdoc index ab795f974..28c176deb 100644 --- a/src/multimedia/doc/src/blackberry.qdoc +++ b/src/multimedia/doc/src/blackberry.qdoc @@ -31,7 +31,7 @@ \brief Platform notes for the BlackBerry Platform Qt Multimedia supports BlackBerry devices that run the BB10 operating system. -This page covers the availibility of different features on BB10. +This page covers the availability of different features on BB10. \section1 Implementation diff --git a/src/multimedia/playback/qmediaplayer.cpp b/src/multimedia/playback/qmediaplayer.cpp index e094e006e..aae4c7efa 100644 --- a/src/multimedia/playback/qmediaplayer.cpp +++ b/src/multimedia/playback/qmediaplayer.cpp @@ -335,7 +335,7 @@ void QMediaPlayerPrivate::setPlaylistMedia() return; } else if (control != 0) { // If we've just switched to a new playlist, - // then last emited currentMediaChanged was a playlist. + // then last emitted currentMediaChanged was a playlist. // Make sure we emit currentMediaChanged if new playlist has // the same media as the previous one: // sample.m3u diff --git a/src/multimedia/video/qvideoprobe.cpp b/src/multimedia/video/qvideoprobe.cpp index 59b1a5433..87fabd026 100644 --- a/src/multimedia/video/qvideoprobe.cpp +++ b/src/multimedia/video/qvideoprobe.cpp @@ -51,7 +51,7 @@ player->setVideoOutput(myVideoSurface); player->setMedia(QUrl::fromLocalFile("observation.mp4")); - player->play(); // Start receving frames as they get presented to myVideoSurface + player->play(); // Start receiving frames as they get presented to myVideoSurface \endcode This same approach works with the QCamera object as well, to receive viewfinder or video diff --git a/src/multimedia/video/qvideoprobe.h b/src/multimedia/video/qvideoprobe.h index bc175428f..5de594f06 100644 --- a/src/multimedia/video/qvideoprobe.h +++ b/src/multimedia/video/qvideoprobe.h @@ -34,7 +34,7 @@ #ifndef QVIDEOPROBE_H #define QVIDEOPROBE_H -#include <QObject> +#include <QtCore/QObject> #include <QtMultimedia/qvideoframe.h> QT_BEGIN_NAMESPACE diff --git a/src/multimediawidgets/qpaintervideosurface.cpp b/src/multimediawidgets/qpaintervideosurface.cpp index a5d278754..ea6e75e24 100644 --- a/src/multimediawidgets/qpaintervideosurface.cpp +++ b/src/multimediawidgets/qpaintervideosurface.cpp @@ -141,8 +141,8 @@ QAbstractVideoSurface::Error QVideoSurfaceGenericPainter::start(const QVideoSurf bool ok = m_imageFormat != QImage::Format_Invalid && !m_imageSize.isEmpty(); #ifndef QT_NO_OPENGL if (QOpenGLContext::openGLModuleType() == QOpenGLContext::LibGLES) -#endif ok &= format.pixelFormat() != QVideoFrame::Format_RGB24; +#endif if (ok) return QAbstractVideoSurface::NoError; } else if (t == QAbstractVideoBuffer::QPixmapHandle) { diff --git a/src/plugins/android/src/mediacapture/qandroidcamerasession.cpp b/src/plugins/android/src/mediacapture/qandroidcamerasession.cpp index 9952c489f..2ff17592b 100644 --- a/src/plugins/android/src/mediacapture/qandroidcamerasession.cpp +++ b/src/plugins/android/src/mediacapture/qandroidcamerasession.cpp @@ -276,33 +276,38 @@ void QAndroidCameraSession::adjustViewfinderSize(const QSize &captureSize, bool if (!m_camera) return; - QSize viewfinderResolution = m_camera->previewSize(); + QSize currentViewfinderResolution = m_camera->previewSize(); const qreal aspectRatio = qreal(captureSize.width()) / qreal(captureSize.height()); - if (viewfinderResolution.isValid() && - qFuzzyCompare(aspectRatio, - qreal(viewfinderResolution.width()) / viewfinderResolution.height())) { + if (currentViewfinderResolution.isValid() && + qAbs(aspectRatio - (qreal(currentViewfinderResolution.width()) / currentViewfinderResolution.height())) < 0.01) { return; } + QSize adjustedViewfinderResolution; QList<QSize> previewSizes = m_camera->getSupportedPreviewSizes(); for (int i = previewSizes.count() - 1; i >= 0; --i) { const QSize &size = previewSizes.at(i); // search for viewfinder resolution with the same aspect ratio - if (qFuzzyCompare(aspectRatio, (static_cast<qreal>(size.width())/static_cast<qreal>(size.height())))) { - viewfinderResolution = size; + if (qAbs(aspectRatio - (qreal(size.width()) / size.height())) < 0.01) { + adjustedViewfinderResolution = size; break; } } - if (m_camera->previewSize() != viewfinderResolution) { + if (!adjustedViewfinderResolution.isValid()) { + qWarning("Cannot find a viewfinder resolution matching the capture aspect ratio."); + return; + } + + if (currentViewfinderResolution != adjustedViewfinderResolution) { if (m_videoOutput) - m_videoOutput->setVideoSize(viewfinderResolution); + m_videoOutput->setVideoSize(adjustedViewfinderResolution); // if preview is started, we have to stop it first before changing its size if (m_previewStarted && restartPreview) m_camera->stopPreview(); - m_camera->setPreviewSize(viewfinderResolution); + m_camera->setPreviewSize(adjustedViewfinderResolution); // restart preview if (m_previewStarted && restartPreview) diff --git a/src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.cpp b/src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.cpp index c276cc6cc..14a26c0b9 100644 --- a/src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.cpp +++ b/src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.cpp @@ -337,7 +337,7 @@ void QAndroidMediaPlayerControl::setMedia(const QMediaContent &mediaContent, if (!mTempFile.isNull()) mediaPath = QStringLiteral("file://") + mTempFile->fileName(); } else { - mediaPath = url.toString(); + mediaPath = url.toString(QUrl::FullyEncoded); } if (mVideoSize.isValid() && mVideoOutput) diff --git a/src/plugins/directshow/directshow.pro b/src/plugins/directshow/directshow.pro index 5b59ccfe0..7815927db 100644 --- a/src/plugins/directshow/directshow.pro +++ b/src/plugins/directshow/directshow.pro @@ -1,5 +1,5 @@ TARGET = dsengine -win32:!qtHaveModule(opengl) { +win32:!qtHaveModule(opengl)|contains(QT_CONFIG,dynamicgl) { LIBS_PRIVATE += -lgdi32 -luser32 } PLUGIN_TYPE=mediaservice diff --git a/src/plugins/directshow/dsserviceplugin.cpp b/src/plugins/directshow/dsserviceplugin.cpp index 9e2883fda..66c1b657f 100644 --- a/src/plugins/directshow/dsserviceplugin.cpp +++ b/src/plugins/directshow/dsserviceplugin.cpp @@ -39,6 +39,7 @@ #include "dsvideodevicecontrol.h" #ifdef QMEDIA_DIRECTSHOW_CAMERA +#include <QtCore/QElapsedTimer> #include <dshow.h> #include "dscameraservice.h" #endif @@ -121,8 +122,7 @@ QByteArray DSServicePlugin::defaultDevice(const QByteArray &service) const { #ifdef QMEDIA_DIRECTSHOW_CAMERA if (service == Q_MEDIASERVICE_CAMERA) { - if (m_cameraDevices.isEmpty()) - updateDevices(); + updateDevices(); return m_defaultCameraDevice; } @@ -135,8 +135,7 @@ QList<QByteArray> DSServicePlugin::devices(const QByteArray &service) const { #ifdef QMEDIA_DIRECTSHOW_CAMERA if (service == Q_MEDIASERVICE_CAMERA) { - if (m_cameraDevices.isEmpty()) - updateDevices(); + updateDevices(); return m_cameraDevices; } @@ -149,8 +148,7 @@ QString DSServicePlugin::deviceDescription(const QByteArray &service, const QByt { #ifdef QMEDIA_DIRECTSHOW_CAMERA if (service == Q_MEDIASERVICE_CAMERA) { - if (m_cameraDevices.isEmpty()) - updateDevices(); + updateDevices(); for (int i=0; i<m_cameraDevices.count(); i++) if (m_cameraDevices[i] == device) @@ -164,6 +162,10 @@ QString DSServicePlugin::deviceDescription(const QByteArray &service, const QByt void DSServicePlugin::updateDevices() const { + static QElapsedTimer timer; + if (timer.isValid() && timer.elapsed() < 500) // ms + return; + addRefCount(); m_defaultCameraDevice.clear(); @@ -176,6 +178,7 @@ void DSServicePlugin::updateDevices() const } releaseRefCount(); + timer.restart(); } #endif diff --git a/src/plugins/windowsaudio/qwindowsaudiodeviceinfo.cpp b/src/plugins/windowsaudio/qwindowsaudiodeviceinfo.cpp index cae7316ff..ede60c963 100644 --- a/src/plugins/windowsaudio/qwindowsaudiodeviceinfo.cpp +++ b/src/plugins/windowsaudio/qwindowsaudiodeviceinfo.cpp @@ -454,7 +454,9 @@ QList<QByteArray> QWindowsAudioDeviceInfo::availableDevices(QAudio::Mode mode) pPropBag->Release(); pMoniker->Release(); } + pEnum->Release(); } + pDevEnum->Release(); } CoUninitialize(); #else // Q_OS_WINCE diff --git a/src/plugins/windowsaudio/qwindowsaudioinput.cpp b/src/plugins/windowsaudio/qwindowsaudioinput.cpp index 3dad12450..7ddd5391c 100644 --- a/src/plugins/windowsaudio/qwindowsaudioinput.cpp +++ b/src/plugins/windowsaudio/qwindowsaudioinput.cpp @@ -430,7 +430,7 @@ void QWindowsAudioInput::initMixer() return; mixerID = (HMIXEROBJ)mixerIntID; - // Get the Destination (Recording) Line Infomation + // Get the Destination (Recording) Line Information MIXERLINE mixerLine; mixerLine.cbStruct = sizeof(MIXERLINE); mixerLine.dwComponentType = MIXERLINE_COMPONENTTYPE_DST_WAVEIN; diff --git a/src/plugins/wmf/player/mfplayersession.cpp b/src/plugins/wmf/player/mfplayersession.cpp index 7da5f7752..677d248b2 100644 --- a/src/plugins/wmf/player/mfplayersession.cpp +++ b/src/plugins/wmf/player/mfplayersession.cpp @@ -1296,7 +1296,7 @@ void MFPlayerSession::commitRateChange(qreal rate, BOOL isThin) // (which might be earlier than the last decoded key frame) resetPosition = true; } else if (cmdNow == CmdPause) { - // If paused, dont reset the position until we resume, otherwise + // If paused, don't reset the position until we resume, otherwise // a new frame will be rendered m_presentationClock->GetCorrelatedTime(0, &hnsClockTime, &hnsSystemTime); m_request.setCommand(CmdSeekResume); |