diff options
author | Liang Qi <liang.qi@theqtcompany.com> | 2015-06-26 14:04:32 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@theqtcompany.com> | 2015-06-26 14:04:32 +0200 |
commit | fb000c9ecbe612b13119a231054943f1e4bf05e7 (patch) | |
tree | 864e1fd82f5662263e9952afdff967bd146ce5f0 /src | |
parent | dc9e10d4b7acd9e752a7b094c7178a7ecbe96ff7 (diff) | |
parent | 04e086e33667ca1a7aa8a7be7427bfba491a72b0 (diff) | |
download | qtmultimedia-fb000c9ecbe612b13119a231054943f1e4bf05e7.tar.gz qtmultimedia-fb000c9ecbe612b13119a231054943f1e4bf05e7.tar.bz2 qtmultimedia-fb000c9ecbe612b13119a231054943f1e4bf05e7.zip |
Merge remote-tracking branch 'origin/5.5.0' into 5.5
Change-Id: I5a5b387b93a4b9dbaa9710e78fd7bf1ca09aa3b3
Diffstat (limited to 'src')
21 files changed, 122 insertions, 44 deletions
diff --git a/src/imports/multimedia/qdeclarativecamera.cpp b/src/imports/multimedia/qdeclarativecamera.cpp index aac873b8..c5d899e9 100644 --- a/src/imports/multimedia/qdeclarativecamera.cpp +++ b/src/imports/multimedia/qdeclarativecamera.cpp @@ -1094,8 +1094,8 @@ QJSValue QDeclarativeCamera::supportedViewfinderFrameRateRanges(const QSize &res int i = 0; Q_FOREACH (const QCamera::FrameRateRange &frameRateRange, frameRateRanges) { QJSValue range = engine->newObject(); - range.setProperty(QStringLiteral("minimumFrameRate"), frameRateRange.first); - range.setProperty(QStringLiteral("maximumFrameRate"), frameRateRange.second); + range.setProperty(QStringLiteral("minimumFrameRate"), frameRateRange.minimumFrameRate); + range.setProperty(QStringLiteral("maximumFrameRate"), frameRateRange.maximumFrameRate); supportedFrameRateRanges.setProperty(i++, range); } diff --git a/src/multimedia/camera/qcamera.cpp b/src/multimedia/camera/qcamera.cpp index daee0a93..e70bed04 100644 --- a/src/multimedia/camera/qcamera.cpp +++ b/src/multimedia/camera/qcamera.cpp @@ -72,7 +72,7 @@ static bool qt_sizeLessThan(const QSize &s1, const QSize &s2) static bool qt_frameRateRangeLessThan(const QCamera::FrameRateRange &s1, const QCamera::FrameRateRange &s2) { - return s1.second < s2.second; + return s1.maximumFrameRate < s2.maximumFrameRate; } /*! @@ -1028,15 +1028,29 @@ void QCamera::unlock() /*! - \typedef QCamera::FrameRateRange + \class QCamera::FrameRateRange + \inmodule QtMultimedia + \ingroup multimedia + \ingroup multimedia_camera + \since 5.5 + + \brief A FrameRateRange represents a range of frame rates as minimum and maximum rate. - This is a typedef for QPair<qreal, qreal>. + If the minimum frame rate is equal to the maximum frame rate, the frame rate is fixed. + If not, the actual frame rate fluctuates between the minimum and the maximum. - A frame rate range contains a minimum and a maximum frame rate, respectively the first and - second element of the pair. If the minimum frame rate is equal to the maximum frame rate, the - frame rate is fixed. If not, the actual frame rate fluctuates between the minimum and the maximum. + \sa QCamera::supportedViewfinderFrameRateRanges(), QCameraViewfinderSettings */ +/*! + \variable QCamera::FrameRateRange::minimumFrameRate + The minimum frame rate supported by the range, in frames per second. +*/ + +/*! + \variable QCamera::FrameRateRange::maximumFrameRate + The maximum frame rate supported by the range, in frames per second. +*/ /*! \enum QCamera::State diff --git a/src/multimedia/camera/qcamera.h b/src/multimedia/camera/qcamera.h index a50c3849..ea81c02c 100644 --- a/src/multimedia/camera/qcamera.h +++ b/src/multimedia/camera/qcamera.h @@ -77,7 +77,21 @@ class Q_MULTIMEDIA_EXPORT QCamera : public QMediaObject Q_ENUMS(LockType) Q_ENUMS(Position) public: - typedef QPair<qreal, qreal> FrameRateRange; + struct FrameRateRange + { + Q_DECL_CONSTEXPR FrameRateRange() Q_DECL_NOTHROW + : minimumFrameRate(0) + , maximumFrameRate(0) + { } + + Q_DECL_CONSTEXPR FrameRateRange(qreal minimum, qreal maximum) Q_DECL_NOTHROW + : minimumFrameRate(minimum) + , maximumFrameRate(maximum) + { } + + qreal minimumFrameRate; + qreal maximumFrameRate; + }; enum Status { UnavailableStatus, @@ -237,6 +251,14 @@ private: Q_DECLARE_OPERATORS_FOR_FLAGS(QCamera::LockTypes) +Q_DECL_CONSTEXPR Q_INLINE_TEMPLATE bool operator==(const QCamera::FrameRateRange &r1, const QCamera::FrameRateRange &r2) Q_DECL_NOTHROW +{ return r1.minimumFrameRate == r2.minimumFrameRate && r1.maximumFrameRate == r2.maximumFrameRate; } + +Q_DECL_CONSTEXPR Q_INLINE_TEMPLATE bool operator!=(const QCamera::FrameRateRange &r1, const QCamera::FrameRateRange &r2) Q_DECL_NOTHROW +{ return !(r1 == r2); } + +Q_DECLARE_TYPEINFO(QCamera::FrameRateRange, Q_PRIMITIVE_TYPE); + QT_END_NAMESPACE Q_DECLARE_METATYPE(QCamera::State) diff --git a/src/multimedia/camera/qcameraviewfindersettings.cpp b/src/multimedia/camera/qcameraviewfindersettings.cpp index a6290cfb..a92ee65a 100644 --- a/src/multimedia/camera/qcameraviewfindersettings.cpp +++ b/src/multimedia/camera/qcameraviewfindersettings.cpp @@ -136,32 +136,35 @@ QCameraViewfinderSettings &QCameraViewfinderSettings::operator=(const QCameraVie } /*! - Determines if \a other is of equal value to a viewfinder settings object. + \relates QCameraViewfinderSettings + \since 5.5 + + Determines if \a lhs is of equal value to \a rhs. Returns true if the settings objects are of equal value, and false if they are not of equal value. */ -bool QCameraViewfinderSettings::operator==(const QCameraViewfinderSettings &other) const +bool operator==(const QCameraViewfinderSettings &lhs, const QCameraViewfinderSettings &rhs) Q_DECL_NOTHROW { - return (d == other.d) || - (d->isNull == other.d->isNull && - d->resolution == other.d->resolution && - qFuzzyCompare(d->minimumFrameRate, other.d->minimumFrameRate) && - qFuzzyCompare(d->maximumFrameRate, other.d->maximumFrameRate) && - d->pixelFormat == other.d->pixelFormat && - d->pixelAspectRatio == other.d->pixelAspectRatio); + return (lhs.d == rhs.d) || + (lhs.d->isNull == rhs.d->isNull && + lhs.d->resolution == rhs.d->resolution && + lhs.d->minimumFrameRate == rhs.d->minimumFrameRate && + lhs.d->maximumFrameRate == rhs.d->maximumFrameRate && + lhs.d->pixelFormat == rhs.d->pixelFormat && + lhs.d->pixelAspectRatio == rhs.d->pixelAspectRatio); } /*! - Determines if \a other is of equal value to a viewfinder settings object. + \fn bool operator!=(const QCameraViewfinderSettings &lhs, const QCameraViewfinderSettings &rhs) + \relates QCameraViewfinderSettings + \since 5.5 + + Determines if \a lhs is of equal value to \a rhs. Returns true if the settings objects are not of equal value, and false if they are of equal value. */ -bool QCameraViewfinderSettings::operator!=(const QCameraViewfinderSettings &other) const -{ - return !(*this == other); -} /*! Identifies if a viewfinder settings object is uninitalized. diff --git a/src/multimedia/camera/qcameraviewfindersettings.h b/src/multimedia/camera/qcameraviewfindersettings.h index bfb3d08d..ce10b68a 100644 --- a/src/multimedia/camera/qcameraviewfindersettings.h +++ b/src/multimedia/camera/qcameraviewfindersettings.h @@ -34,10 +34,12 @@ #ifndef QCAMERAVIEWFINDERSETTINGS_H #define QCAMERAVIEWFINDERSETTINGS_H -#include <QtCore/qsharedpointer.h> #include <QtMultimedia/qtmultimediadefs.h> #include <QtMultimedia/qvideoframe.h> +#include <QtCore/qshareddata.h> +#include <QtCore/qsize.h> + QT_BEGIN_NAMESPACE class QCameraViewfinderSettingsPrivate; @@ -51,9 +53,14 @@ public: ~QCameraViewfinderSettings(); QCameraViewfinderSettings& operator=(const QCameraViewfinderSettings &other); - bool operator==(const QCameraViewfinderSettings &other) const; - bool operator!=(const QCameraViewfinderSettings &other) const; +#ifdef Q_COMPILER_RVALUE_REFS + QCameraViewfinderSettings &operator=(QCameraViewfinderSettings &&other) Q_DECL_NOTHROW + { swap(other); return *this; } +#endif + + void swap(QCameraViewfinderSettings &other) Q_DECL_NOTHROW { d.swap(other.d); } + friend Q_MULTIMEDIA_EXPORT bool operator==(const QCameraViewfinderSettings &lhs, const QCameraViewfinderSettings &rhs) Q_DECL_NOTHROW; bool isNull() const; QSize resolution() const; @@ -78,6 +85,11 @@ public: private: QSharedDataPointer<QCameraViewfinderSettingsPrivate> d; }; +Q_DECLARE_SHARED(QCameraViewfinderSettings) + +inline bool operator!=(const QCameraViewfinderSettings &lhs, const QCameraViewfinderSettings &rhs) Q_DECL_NOTHROW +{ return !operator==(lhs, rhs); } + QT_END_NAMESPACE diff --git a/src/multimedia/video/qabstractvideofilter.h b/src/multimedia/video/qabstractvideofilter.h index f0175be1..77f035e0 100644 --- a/src/multimedia/video/qabstractvideofilter.h +++ b/src/multimedia/video/qabstractvideofilter.h @@ -62,7 +62,7 @@ class Q_MULTIMEDIA_EXPORT QAbstractVideoFilter : public QObject Q_PROPERTY(bool active READ isActive WRITE setActive NOTIFY activeChanged) public: - QAbstractVideoFilter(QObject *parent = 0); + explicit QAbstractVideoFilter(QObject *parent = 0); ~QAbstractVideoFilter(); bool isActive() const; diff --git a/src/plugins/avfoundation/camera/avfcameraflashcontrol.mm b/src/plugins/avfoundation/camera/avfcameraflashcontrol.mm index 0eef95e9..89c7a2eb 100644 --- a/src/plugins/avfoundation/camera/avfcameraflashcontrol.mm +++ b/src/plugins/avfoundation/camera/avfcameraflashcontrol.mm @@ -157,7 +157,7 @@ void AVFCameraFlashControl::cameraStateChanged(QCamera::State newState) bool AVFCameraFlashControl::applyFlashSettings() { - Q_ASSERT(m_session->state() == QCamera::ActiveState); + Q_ASSERT(m_session->requestedState() == QCamera::ActiveState); AVCaptureDevice *captureDevice = m_session->videoCaptureDevice(); if (!captureDevice) { diff --git a/src/plugins/directshow/camera/dscamerasession.cpp b/src/plugins/directshow/camera/dscamerasession.cpp index 87af9a6e..a2586aa9 100644 --- a/src/plugins/directshow/camera/dscamerasession.cpp +++ b/src/plugins/directshow/camera/dscamerasession.cpp @@ -789,7 +789,7 @@ void DSCameraSession::disconnectGraph() static bool qt_frameRateRangeGreaterThan(const QCamera::FrameRateRange &r1, const QCamera::FrameRateRange &r2) { - return r1.second > r2.second; + return r1.maximumFrameRate > r2.maximumFrameRate; } void DSCameraSession::updateSourceCapabilities() @@ -896,8 +896,8 @@ void DSCameraSession::updateSourceCapabilities() Q_FOREACH (const QCamera::FrameRateRange &frameRateRange, frameRateRanges) { QCameraViewfinderSettings settings; settings.setResolution(resolution); - settings.setMinimumFrameRate(frameRateRange.first); - settings.setMaximumFrameRate(frameRateRange.second); + settings.setMinimumFrameRate(frameRateRange.minimumFrameRate); + settings.setMaximumFrameRate(frameRateRange.maximumFrameRate); settings.setPixelFormat(pixelFormat); m_supportedViewfinderSettings.append(settings); diff --git a/src/plugins/winrt/qwinrtabstractvideorenderercontrol.cpp b/src/plugins/winrt/qwinrtabstractvideorenderercontrol.cpp index 2d0b5413..aa0f721b 100644 --- a/src/plugins/winrt/qwinrtabstractvideorenderercontrol.cpp +++ b/src/plugins/winrt/qwinrtabstractvideorenderercontrol.cpp @@ -56,7 +56,7 @@ using namespace Microsoft::WRL; -QT_USE_NAMESPACE +QT_BEGIN_NAMESPACE #define BREAK_IF_FAILED(msg) RETURN_IF_FAILED(msg, break) #define CONTINUE_IF_FAILED(msg) RETURN_IF_FAILED(msg, continue) @@ -408,3 +408,5 @@ void QWinRTAbstractVideoRendererControl::present() QVideoFrame frame(d->videoBuffer, d->format.frameSize(), d->format.pixelFormat()); d->surface->present(frame); } + +QT_END_NAMESPACE diff --git a/src/plugins/winrt/qwinrtcameracontrol.cpp b/src/plugins/winrt/qwinrtcameracontrol.cpp index f5b75d9a..9013416f 100644 --- a/src/plugins/winrt/qwinrtcameracontrol.cpp +++ b/src/plugins/winrt/qwinrtcameracontrol.cpp @@ -68,7 +68,7 @@ using namespace ABI::Windows::Media::Devices; using namespace ABI::Windows::Media::MediaProperties; using namespace ABI::Windows::Storage::Streams; -QT_USE_NAMESPACE +QT_BEGIN_NAMESPACE #define RETURN_VOID_AND_EMIT_ERROR(msg) \ if (FAILED(hr)) { \ @@ -134,6 +134,7 @@ public: hr = deviceInfo->get_SystemSku(deviceModel.GetAddressOf()); Q_ASSERT_SUCCEEDED(hr); m_flags |= bufferLockRequired(L"NOKIA RM-976", deviceModel); + m_flags |= bufferLockRequired(L"NOKIA RM-1019", deviceModel); #endif } @@ -852,3 +853,5 @@ HRESULT QWinRTCameraControl::onRecordLimitationExceeded(IMediaCapture *) setState(QCamera::LoadedState); return S_OK; } + +QT_END_NAMESPACE diff --git a/src/plugins/winrt/qwinrtcameraimagecapturecontrol.cpp b/src/plugins/winrt/qwinrtcameraimagecapturecontrol.cpp index 5a1c27b5..55f55377 100644 --- a/src/plugins/winrt/qwinrtcameraimagecapturecontrol.cpp +++ b/src/plugins/winrt/qwinrtcameraimagecapturecontrol.cpp @@ -65,7 +65,7 @@ using namespace ABI::Windows::Media::MediaProperties; using namespace ABI::Windows::Storage::Streams; using namespace ABI::Windows::Graphics::Imaging; -QT_USE_NAMESPACE +QT_BEGIN_NAMESPACE #define wchar(str) reinterpret_cast<const wchar_t *>(str.utf16()) @@ -299,3 +299,5 @@ HRESULT QWinRTCameraImageCaptureControl::onCaptureCompleted(IAsyncAction *asyncI return S_OK; } + +QT_END_NAMESPACE diff --git a/src/plugins/winrt/qwinrtcamerainfocontrol.cpp b/src/plugins/winrt/qwinrtcamerainfocontrol.cpp index 69fc0a9a..3e88fadc 100644 --- a/src/plugins/winrt/qwinrtcamerainfocontrol.cpp +++ b/src/plugins/winrt/qwinrtcamerainfocontrol.cpp @@ -37,7 +37,7 @@ #include "qwinrtcamerainfocontrol.h" #include "qwinrtvideodeviceselectorcontrol.h" -QT_USE_NAMESPACE +QT_BEGIN_NAMESPACE QWinRTCameraInfoControl::QWinRTCameraInfoControl(QObject *parent) : QCameraInfoControl(parent) @@ -53,3 +53,5 @@ int QWinRTCameraInfoControl::cameraOrientation(const QString &deviceName) const { return QWinRTVideoDeviceSelectorControl::cameraOrientation(deviceName); } + +QT_END_NAMESPACE diff --git a/src/plugins/winrt/qwinrtcameraservice.cpp b/src/plugins/winrt/qwinrtcameraservice.cpp index dc9d6ee6..be67b474 100644 --- a/src/plugins/winrt/qwinrtcameraservice.cpp +++ b/src/plugins/winrt/qwinrtcameraservice.cpp @@ -46,7 +46,7 @@ #include <QtMultimedia/QVideoDeviceSelectorControl> #include <QtMultimedia/QImageEncoderControl> -QT_USE_NAMESPACE +QT_BEGIN_NAMESPACE class QWinRTCameraServicePrivate { @@ -103,3 +103,5 @@ void QWinRTCameraService::releaseControl(QMediaControl *control) { Q_UNUSED(control); } + +QT_END_NAMESPACE diff --git a/src/plugins/winrt/qwinrtcameravideorenderercontrol.cpp b/src/plugins/winrt/qwinrtcameravideorenderercontrol.cpp index 3b8a38bb..4878c55c 100644 --- a/src/plugins/winrt/qwinrtcameravideorenderercontrol.cpp +++ b/src/plugins/winrt/qwinrtcameravideorenderercontrol.cpp @@ -45,7 +45,7 @@ #include <wrl.h> using namespace Microsoft::WRL; -QT_USE_NAMESPACE +QT_BEGIN_NAMESPACE class D3DVideoBlitter { @@ -210,3 +210,5 @@ void QWinRTCameraVideoRendererControl::discardBuffers() for (ComPtr<IMF2DBuffer> &buffer : d->buffers) buffer.Reset(); } + +QT_END_NAMESPACE diff --git a/src/plugins/winrt/qwinrtmediaplayercontrol.cpp b/src/plugins/winrt/qwinrtmediaplayercontrol.cpp index 0402553d..8954d444 100644 --- a/src/plugins/winrt/qwinrtmediaplayercontrol.cpp +++ b/src/plugins/winrt/qwinrtmediaplayercontrol.cpp @@ -55,7 +55,7 @@ #include <wrl.h> using namespace Microsoft::WRL; -QT_USE_NAMESPACE +QT_BEGIN_NAMESPACE #define QT_WINRT_MEDIAPLAYER_STREAM_ID "__qtmultimedia_winrt_player_stream" @@ -892,3 +892,5 @@ void QWinRTMediaPlayerControl::finishRead() Q_D(QWinRTMediaPlayerControl); d->streamProvider->finishRead(); } + +QT_END_NAMESPACE diff --git a/src/plugins/winrt/qwinrtmediaplayercontrol.h b/src/plugins/winrt/qwinrtmediaplayercontrol.h index 34abcc12..54fdcc10 100644 --- a/src/plugins/winrt/qwinrtmediaplayercontrol.h +++ b/src/plugins/winrt/qwinrtmediaplayercontrol.h @@ -41,7 +41,7 @@ struct IMFMediaEngineClassFactory; -QT_USE_NAMESPACE +QT_BEGIN_NAMESPACE class QVideoRendererControl; @@ -96,4 +96,6 @@ private: Q_DECLARE_PRIVATE(QWinRTMediaPlayerControl) }; +QT_END_NAMESPACE + #endif // QWINRTMEDIAPLAYERCONTROL_H diff --git a/src/plugins/winrt/qwinrtmediaplayerservice.cpp b/src/plugins/winrt/qwinrtmediaplayerservice.cpp index a6b3d1f3..dd7aaa11 100644 --- a/src/plugins/winrt/qwinrtmediaplayerservice.cpp +++ b/src/plugins/winrt/qwinrtmediaplayerservice.cpp @@ -47,7 +47,7 @@ using namespace Microsoft::WRL; -QT_USE_NAMESPACE +QT_BEGIN_NAMESPACE class QWinRTMediaPlayerServicePrivate { @@ -104,3 +104,5 @@ void QWinRTMediaPlayerService::releaseControl(QMediaControl *control) if (control == d->player) d->player->deleteLater(); } + +QT_END_NAMESPACE diff --git a/src/plugins/winrt/qwinrtplayerrenderercontrol.cpp b/src/plugins/winrt/qwinrtplayerrenderercontrol.cpp index 5a8f4b87..c37aac4e 100644 --- a/src/plugins/winrt/qwinrtplayerrenderercontrol.cpp +++ b/src/plugins/winrt/qwinrtplayerrenderercontrol.cpp @@ -54,7 +54,7 @@ #include <wrl.h> using namespace Microsoft::WRL; -QT_USE_NAMESPACE +QT_BEGIN_NAMESPACE template <typename T> class D3DDeviceLocker @@ -149,3 +149,5 @@ bool QWinRTPlayerRendererControl::render(ID3D11Texture2D *texture) RETURN_FALSE_IF_FAILED("Failed to transfer video frame to DXGI surface"); return true; } + +QT_END_NAMESPACE diff --git a/src/plugins/winrt/qwinrtserviceplugin.cpp b/src/plugins/winrt/qwinrtserviceplugin.cpp index fc0103d1..7237632a 100644 --- a/src/plugins/winrt/qwinrtserviceplugin.cpp +++ b/src/plugins/winrt/qwinrtserviceplugin.cpp @@ -42,7 +42,7 @@ #include "qwinrtcameraservice.h" #include "qwinrtvideodeviceselectorcontrol.h" -QT_USE_NAMESPACE +QT_BEGIN_NAMESPACE QMediaService *QWinRTServicePlugin::create(QString const &key) { @@ -102,3 +102,5 @@ QByteArray QWinRTServicePlugin::defaultDevice(const QByteArray &service) const return QByteArray(); } + +QT_END_NAMESPACE diff --git a/src/plugins/winrt/qwinrtserviceplugin.h b/src/plugins/winrt/qwinrtserviceplugin.h index 5f5cf559..0f76f505 100644 --- a/src/plugins/winrt/qwinrtserviceplugin.h +++ b/src/plugins/winrt/qwinrtserviceplugin.h @@ -39,7 +39,7 @@ #include <QtMultimedia/QMediaServiceProviderPlugin> -QT_USE_NAMESPACE +QT_BEGIN_NAMESPACE class QWinRTServicePlugin : public QMediaServiceProviderPlugin , public QMediaServiceFeaturesInterface @@ -68,4 +68,6 @@ public: QByteArray defaultDevice(const QByteArray &service) const Q_DECL_OVERRIDE; }; +QT_END_NAMESPACE + #endif // QWINRTSERVICEPLUGIN_H diff --git a/src/plugins/winrt/qwinrtvideodeviceselectorcontrol.cpp b/src/plugins/winrt/qwinrtvideodeviceselectorcontrol.cpp index 582a9fc6..8e806dcb 100644 --- a/src/plugins/winrt/qwinrtvideodeviceselectorcontrol.cpp +++ b/src/plugins/winrt/qwinrtvideodeviceselectorcontrol.cpp @@ -55,7 +55,7 @@ typedef ITypedEventHandler<DeviceWatcher *, DeviceInformation *> DeviceInformati typedef ITypedEventHandler<DeviceWatcher *, DeviceInformationUpdate *> DeviceInformationUpdateHandler; typedef ITypedEventHandler<DeviceWatcher *, IInspectable *> DeviceEnumerationCompletedHandler; -QT_USE_NAMESPACE +QT_BEGIN_NAMESPACE static QString deviceName(IDeviceInformation *device) { @@ -386,3 +386,5 @@ void QWinRTVideoDeviceSelectorControl::setSelectedDevice(int index) emit selectedDeviceChanged(deviceName(d->selectedDevice)); } } + +QT_END_NAMESPACE |