summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2015-02-13 13:10:48 +0100
committerFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2015-02-13 13:10:48 +0100
commitf9014d136f504c6377d1329c822f11a8b58ccdbe (patch)
tree1c1a752d8ba6b5094b182305d65ca0d0101e1ed0 /src
parentbbfccc713546f9e7341fbe1af7482cafbdc4ea25 (diff)
parent06259f1dfbd9cb2ebd58bba59381a42dc8a758df (diff)
Merge remote-tracking branch 'origin/5.4' into dev
Diffstat (limited to 'src')
-rw-r--r--src/imports/multimedia/qdeclarativecamera.cpp2
-rw-r--r--src/imports/multimedia/qdeclarativecameracapture.cpp18
-rw-r--r--src/multimedia/camera/qcameraimagecapture.cpp11
-rw-r--r--src/multimedia/controls/qcameraimagecapturecontrol.cpp2
-rw-r--r--src/multimedia/doc/src/blackberry.qdoc2
-rw-r--r--src/multimedia/playback/qmediaplayer.cpp2
-rw-r--r--src/multimedia/video/qvideoprobe.cpp2
-rw-r--r--src/multimedia/video/qvideoprobe.h2
-rw-r--r--src/multimediawidgets/qpaintervideosurface.cpp2
-rw-r--r--src/plugins/android/src/mediacapture/qandroidcamerasession.cpp23
-rw-r--r--src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.cpp2
-rw-r--r--src/plugins/directshow/directshow.pro2
-rw-r--r--src/plugins/directshow/dsserviceplugin.cpp15
-rw-r--r--src/plugins/windowsaudio/qwindowsaudiodeviceinfo.cpp2
-rw-r--r--src/plugins/windowsaudio/qwindowsaudioinput.cpp2
-rw-r--r--src/plugins/wmf/player/mfplayersession.cpp2
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);