diff options
Diffstat (limited to 'src')
26 files changed, 136 insertions, 38 deletions
diff --git a/src/imports/audioengine/qmldir b/src/imports/audioengine/qmldir index 94335c03a..d853c8022 100644 --- a/src/imports/audioengine/qmldir +++ b/src/imports/audioengine/qmldir @@ -1 +1,3 @@ +module QtAudioEngine plugin declarative_audioengine +typeinfo plugins.qmltypes diff --git a/src/imports/multimedia/plugins.qmltypes b/src/imports/multimedia/plugins.qmltypes index b2970649f..12d7ea85d 100644 --- a/src/imports/multimedia/plugins.qmltypes +++ b/src/imports/multimedia/plugins.qmltypes @@ -132,6 +132,7 @@ Module { name: "QDeclarativeAudio" prototype: "QObject" exports: ["QtMultimedia/Audio 5.0", "QtMultimedia/MediaPlayer 5.0"] + exportMetaObjectRevisions: [0, 0] Enum { name: "Status" values: { @@ -230,6 +231,7 @@ Module { name: "QDeclarativeCamera" prototype: "QObject" exports: ["QtMultimedia/Camera 5.0"] + exportMetaObjectRevisions: [0] Enum { name: "CaptureMode" values: { @@ -448,6 +450,7 @@ Module { name: "QDeclarativeCameraCapture" prototype: "QObject" exports: ["QtMultimedia/CameraCapture 5.0"] + exportMetaObjectRevisions: [0] Property { name: "ready"; type: "bool"; isReadonly: true } Property { name: "capturedImagePath"; type: "string"; isReadonly: true } Property { name: "resolution"; type: "QSize" } @@ -506,6 +509,7 @@ Module { name: "QDeclarativeCameraExposure" prototype: "QObject" exports: ["QtMultimedia/CameraExposure 5.0"] + exportMetaObjectRevisions: [0] Property { name: "exposureCompensation"; type: "double" } Property { name: "iso"; type: "int"; isReadonly: true } Property { name: "shutterSpeed"; type: "double"; isReadonly: true } @@ -584,6 +588,7 @@ Module { name: "QDeclarativeCameraFlash" prototype: "QObject" exports: ["QtMultimedia/CameraFlash 5.0"] + exportMetaObjectRevisions: [0] Property { name: "ready"; type: "bool"; isReadonly: true } Property { name: "mode"; type: "int" } Signal { @@ -603,6 +608,7 @@ Module { name: "QDeclarativeCameraFocus" prototype: "QObject" exports: ["QtMultimedia/CameraFocus 5.0"] + exportMetaObjectRevisions: [0] Property { name: "focusMode"; type: "QDeclarativeCamera::FocusMode" } Property { name: "focusPointMode"; type: "QDeclarativeCamera::FocusPointMode" } Property { name: "customFocusPoint"; type: "QPointF" } @@ -646,6 +652,7 @@ Module { name: "QDeclarativeCameraImageProcessing" prototype: "QObject" exports: ["QtMultimedia/CameraImageProcessing 5.0"] + exportMetaObjectRevisions: [0] Enum { name: "WhiteBalanceMode" values: { @@ -720,6 +727,7 @@ Module { name: "QDeclarativeCameraRecorder" prototype: "QObject" exports: ["QtMultimedia/CameraRecorder 5.0"] + exportMetaObjectRevisions: [0] Enum { name: "RecorderState" values: { @@ -918,6 +926,7 @@ Module { name: "QDeclarativeRadio" prototype: "QObject" exports: ["QtMultimedia/Radio 5.0"] + exportMetaObjectRevisions: [0] Enum { name: "State" values: { @@ -1071,6 +1080,7 @@ Module { name: "QDeclarativeRadioData" prototype: "QObject" exports: ["QtMultimedia/RadioData 5.0"] + exportMetaObjectRevisions: [0] Enum { name: "Error" values: { @@ -1192,6 +1202,7 @@ Module { name: "QDeclarativeTorch" prototype: "QObject" exports: ["QtMultimedia/Torch 5.0"] + exportMetaObjectRevisions: [0] Property { name: "enabled"; type: "bool" } Property { name: "power"; type: "int" } } @@ -1200,6 +1211,7 @@ Module { defaultProperty: "data" prototype: "QQuickItem" exports: ["QtMultimedia/VideoOutput 5.0"] + exportMetaObjectRevisions: [0] Enum { name: "FillMode" values: { @@ -1289,6 +1301,7 @@ Module { name: "QSoundEffect" prototype: "QObject" exports: ["QtMultimedia/SoundEffect 5.0"] + exportMetaObjectRevisions: [0] Enum { name: "Loop" values: { diff --git a/src/multimedia/doc/src/platform-notes-windows.qdoc b/src/multimedia/doc/src/platform-notes-windows.qdoc new file mode 100644 index 000000000..2f72ea1e0 --- /dev/null +++ b/src/multimedia/doc/src/platform-notes-windows.qdoc @@ -0,0 +1,57 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:FDL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Free Documentation License Usage +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of +** this file. Please review the following information to ensure +** the GNU Free Documentation License version 1.3 requirements +** will be met: http://www.gnu.org/copyleft/fdl.html. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! +\page platform-notes-windows.html +\title Qt Multimedia on Windows +\brief Platform notes for Windows + +This page covers the availability of Qt Multimedia features on Windows. + +\section1 Implementation + +Qt Multimedia features for Windows are implemented in two plugins; one +using the Microsoft DirectShow API, and another using WMF (Windows Media +Foundation) framework. DirectShow API was introduced in Windows 98, and +gradually deprecated from Windows XP onwards. Media Foundation framework +was introduced in Windows Vista as a replacement for DirectShow and other +multimedia APIs. Consequently, WMF plugin in Qt is supported only for +Windows Vista and later versions of the operating system. + +\section1 Limitations + +The WMF plugin in Qt does not currently provide a camera backend. Instead, +limited support for camera features is provided by the DirectShow +plugin. Basic features such as displaying a viewfinder and capturing a +still image are supported, however, majority of camera controls are not +implemented. + +Video recording is currently not supported. Additionally, the DirectShow +plugin does not support any low-level video functionality such as +monitoring video frames being played or recorded using \l QVideoProbe or +related classes. +*/ diff --git a/src/multimedia/doc/src/qtmultimedia-index.qdoc b/src/multimedia/doc/src/qtmultimedia-index.qdoc index 417c0c494..4cd59fd52 100644 --- a/src/multimedia/doc/src/qtmultimedia-index.qdoc +++ b/src/multimedia/doc/src/qtmultimedia-index.qdoc @@ -131,6 +131,7 @@ \section2 Platform Notes \list \li \l{BlackBerry} + \li \l{Qt Multimedia on Windows}{Windows} \endlist \section2 Reference diff --git a/src/multimedia/doc/src/qtmultimedia5.qdoc b/src/multimedia/doc/src/qtmultimedia5.qdoc index bbf9907f6..c1267f097 100644 --- a/src/multimedia/doc/src/qtmultimedia5.qdoc +++ b/src/multimedia/doc/src/qtmultimedia5.qdoc @@ -31,9 +31,7 @@ \ingroup qmlmodules \brief Provides QML types for multimedia support. -\section1 Overview - -The QML types for Qt Multimedia support the basic use cases such as: +The QML types for \l{Qt Multimedia} support the basic use cases such as: \list \li audio and video playback, \li access camera and radio functionality, @@ -41,6 +39,11 @@ The QML types for Qt Multimedia support the basic use cases such as: \li and access camera settings. \endlist +The QML types can be imported into your application using the following import +statement in your .qml file: +\code +import QtMultimedia 5.0 +\endcode + \section1 QML types */ - diff --git a/src/multimedia/playback/qmediaplayer.cpp b/src/multimedia/playback/qmediaplayer.cpp index c3eb09ebf..eaac82820 100644 --- a/src/multimedia/playback/qmediaplayer.cpp +++ b/src/multimedia/playback/qmediaplayer.cpp @@ -1220,7 +1220,7 @@ QMultimedia::AvailabilityStatus QMediaPlayer::availability() const \property QMediaPlayer::volume \brief the current playback volume. - The playback volume is a linear in effect and the value can range from 0 - + The playback volume is linear in effect and the value can range from 0 - 100, values outside this range will be clamped. */ diff --git a/src/multimedia/qmediapluginloader.cpp b/src/multimedia/qmediapluginloader.cpp index e23e32a3f..1b4a13f83 100644 --- a/src/multimedia/qmediapluginloader.cpp +++ b/src/multimedia/qmediapluginloader.cpp @@ -127,7 +127,12 @@ void QMediaPluginLoader::loadMetadata() qDebug() << "QMediaPluginLoader: Inserted index " << i << " into metadata: " << jsonobj; #endif - QJsonArray arr = jsonobj.value(QStringLiteral("Keys")).toArray(); + QJsonArray arr = jsonobj.value(QStringLiteral("Services")).toArray(); + // Preserve compatibility with older plugins (made before 5.1) in which + // services were declared in the 'Keys' property + if (arr.isEmpty()) + arr = jsonobj.value(QStringLiteral("Keys")).toArray(); + foreach (QJsonValue value, arr) { QString key = value.toString(); diff --git a/src/plugins/android/jar/src/org/qtproject/qt5/android/multimedia/QtAndroidMediaPlayer.java b/src/plugins/android/jar/src/org/qtproject/qt5/android/multimedia/QtAndroidMediaPlayer.java index b2115b7d9..e4dbae632 100644 --- a/src/plugins/android/jar/src/org/qtproject/qt5/android/multimedia/QtAndroidMediaPlayer.java +++ b/src/plugins/android/jar/src/org/qtproject/qt5/android/multimedia/QtAndroidMediaPlayer.java @@ -82,7 +82,7 @@ public class QtAndroidMediaPlayer extends MediaPlayer try { mApplicationContext = activity.getApplicationContext(); } catch(final Exception e) { - Log.d(TAG, e.getMessage()); + Log.d(TAG, "" + e.getMessage()); } } @@ -101,7 +101,7 @@ public class QtAndroidMediaPlayer extends MediaPlayer currentPosition = getCurrentPosition(); } } catch (final InterruptedException e) { - Log.d(TAG, e.getMessage()); + Log.d(TAG, "" + e.getMessage()); return; } } @@ -262,7 +262,7 @@ public class QtAndroidMediaPlayer extends MediaPlayer progressThread.start(); } catch (final IllegalStateException e) { reset(); - Log.d(TAG, e.getMessage()); + Log.d(TAG, "" + e.getMessage()); } } @@ -276,7 +276,7 @@ public class QtAndroidMediaPlayer extends MediaPlayer super.pause(); } catch (final IllegalStateException e) { reset(); - Log.d(TAG, e.getMessage()); + Log.d(TAG, "" + e.getMessage()); } } @@ -289,7 +289,7 @@ public class QtAndroidMediaPlayer extends MediaPlayer try { super.stop(); } catch (final IllegalStateException e) { - Log.d(TAG, e.getMessage()); + Log.d(TAG, "" + e.getMessage()); } finally { reset(); } @@ -305,7 +305,7 @@ public class QtAndroidMediaPlayer extends MediaPlayer super.seekTo(msec); onMediaPlayerInfoNative(MEDIA_PLAYER_PROGRESS, msec, mID); } catch (final IllegalStateException e) { - Log.d(TAG, e.getMessage()); + Log.d(TAG, "" + e.getMessage()); } } @@ -320,7 +320,7 @@ public class QtAndroidMediaPlayer extends MediaPlayer try { playing = super.isPlaying(); } catch (final IllegalStateException e) { - Log.d(TAG, e.getMessage()); + Log.d(TAG, "" + e.getMessage()); } return playing; @@ -345,13 +345,13 @@ public class QtAndroidMediaPlayer extends MediaPlayer /* MEDIA_ERROR_UNSUPPORTED= */ -1010, mID); } catch (final IllegalArgumentException e) { - Log.d(TAG, e.getMessage()); + Log.d(TAG, "" + e.getMessage()); } catch (final SecurityException e) { - Log.d(TAG, e.getMessage()); + Log.d(TAG, "" + e.getMessage()); } catch (final IllegalStateException e) { - Log.d(TAG, e.getMessage()); + Log.d(TAG, "" + e.getMessage()); } catch (final NullPointerException e) { - Log.d(TAG, e.getMessage()); + Log.d(TAG, "" + e.getMessage()); } } @@ -366,7 +366,7 @@ public class QtAndroidMediaPlayer extends MediaPlayer try { currentPosition = super.getCurrentPosition(); } catch (final IllegalStateException e) { - Log.d(TAG, e.getMessage()); + Log.d(TAG, "" + e.getMessage()); } return currentPosition; @@ -383,7 +383,7 @@ public class QtAndroidMediaPlayer extends MediaPlayer try { duration = super.getDuration(); } catch (final IllegalStateException e) { - Log.d(TAG, e.getMessage()); + Log.d(TAG, "" + e.getMessage()); } return duration; @@ -415,7 +415,7 @@ public class QtAndroidMediaPlayer extends MediaPlayer if (!mMuted) mVolume = volume; } catch (final IllegalStateException e) { - Log.d(TAG, e.getMessage()); + Log.d(TAG, "" + e.getMessage()); } } diff --git a/src/plugins/android/mediaplayer/mediaplayer.json b/src/plugins/android/mediaplayer/mediaplayer.json index c4a27ea01..f371ebfd7 100644 --- a/src/plugins/android/mediaplayer/mediaplayer.json +++ b/src/plugins/android/mediaplayer/mediaplayer.json @@ -1,3 +1,4 @@ { - "Keys": ["org.qt-project.qt.mediaplayer"] + "Keys": ["androidmultimedia"], + "Services": ["org.qt-project.qt.mediaplayer"] } diff --git a/src/plugins/audiocapture/audiocapture.json b/src/plugins/audiocapture/audiocapture.json index d963a2e3e..4c7673da2 100644 --- a/src/plugins/audiocapture/audiocapture.json +++ b/src/plugins/audiocapture/audiocapture.json @@ -1,3 +1,4 @@ { - "Keys": ["org.qt-project.qt.audiosource"] + "Keys": ["audiocapture"], + "Services": ["org.qt-project.qt.audiosource"] } diff --git a/src/plugins/avfoundation/camera/avfcamera.json b/src/plugins/avfoundation/camera/avfcamera.json index d3a58c758..e4310b62c 100644 --- a/src/plugins/avfoundation/camera/avfcamera.json +++ b/src/plugins/avfoundation/camera/avfcamera.json @@ -1,3 +1,4 @@ { - "Keys": ["org.qt-project.qt.camera"] + "Keys": ["avfoundationcamera"], + "Services": ["org.qt-project.qt.camera"] } diff --git a/src/plugins/avfoundation/mediaplayer/avfmediaplayer.json b/src/plugins/avfoundation/mediaplayer/avfmediaplayer.json index c4a27ea01..5626edec0 100644 --- a/src/plugins/avfoundation/mediaplayer/avfmediaplayer.json +++ b/src/plugins/avfoundation/mediaplayer/avfmediaplayer.json @@ -1,3 +1,4 @@ { - "Keys": ["org.qt-project.qt.mediaplayer"] + "Keys": ["avfoundationmediaplayer"], + "Services": ["org.qt-project.qt.mediaplayer"] } diff --git a/src/plugins/blackberry/blackberry_mediaservice.json b/src/plugins/blackberry/blackberry_mediaservice.json index 54c1c9f04..2a59cc770 100644 --- a/src/plugins/blackberry/blackberry_mediaservice.json +++ b/src/plugins/blackberry/blackberry_mediaservice.json @@ -1,3 +1,4 @@ { - "Keys": ["org.qt-project.qt.camera", "org.qt-project.qt.mediaplayer"] + "Keys": ["blackberrymultimedia"], + "Services": ["org.qt-project.qt.camera", "org.qt-project.qt.mediaplayer"] } diff --git a/src/plugins/directshow/directshow.json b/src/plugins/directshow/directshow.json index 54c1c9f04..b1783b5ed 100644 --- a/src/plugins/directshow/directshow.json +++ b/src/plugins/directshow/directshow.json @@ -1,3 +1,4 @@ { - "Keys": ["org.qt-project.qt.camera", "org.qt-project.qt.mediaplayer"] + "Keys": ["directshow"], + "Services": ["org.qt-project.qt.camera", "org.qt-project.qt.mediaplayer"] } diff --git a/src/plugins/directshow/directshow_camera.json b/src/plugins/directshow/directshow_camera.json index d3a58c758..c37ce2c9a 100644 --- a/src/plugins/directshow/directshow_camera.json +++ b/src/plugins/directshow/directshow_camera.json @@ -1,3 +1,4 @@ { - "Keys": ["org.qt-project.qt.camera"] + "Keys": ["directshow"], + "Services": ["org.qt-project.qt.camera"] } diff --git a/src/plugins/gstreamer/audiodecoder/audiodecoder.json b/src/plugins/gstreamer/audiodecoder/audiodecoder.json index 3cc81dc72..4314f2efa 100644 --- a/src/plugins/gstreamer/audiodecoder/audiodecoder.json +++ b/src/plugins/gstreamer/audiodecoder/audiodecoder.json @@ -1,3 +1,4 @@ { - "Keys": ["org.qt-project.qt.audiodecode"] + "Keys": ["gstreameraudiodecode"], + "Services": ["org.qt-project.qt.audiodecode"] } diff --git a/src/plugins/gstreamer/camerabin/camerabin.json b/src/plugins/gstreamer/camerabin/camerabin.json index d3a58c758..3246b4683 100644 --- a/src/plugins/gstreamer/camerabin/camerabin.json +++ b/src/plugins/gstreamer/camerabin/camerabin.json @@ -1,3 +1,4 @@ { - "Keys": ["org.qt-project.qt.camera"] + "Keys": ["gstreamercamerabin"], + "Services": ["org.qt-project.qt.camera"] } diff --git a/src/plugins/gstreamer/gstreamer.json b/src/plugins/gstreamer/gstreamer.json index 3f6ccdafd..0656cce4f 100644 --- a/src/plugins/gstreamer/gstreamer.json +++ b/src/plugins/gstreamer/gstreamer.json @@ -1,3 +1,4 @@ { - "Keys": ["org.qt-project.qt.mediaplayer", "org.qt-project.qt.audiosource", "org.qt-project.qt.camera", "org.qt-project.qt.audiodecode"] + "Keys": ["gstreamer"], + "Services": ["org.qt-project.qt.mediaplayer", "org.qt-project.qt.audiosource", "org.qt-project.qt.camera", "org.qt-project.qt.audiodecode"] } diff --git a/src/plugins/gstreamer/mediacapture/mediacapture.json b/src/plugins/gstreamer/mediacapture/mediacapture.json index d963a2e3e..68ca3f55b 100644 --- a/src/plugins/gstreamer/mediacapture/mediacapture.json +++ b/src/plugins/gstreamer/mediacapture/mediacapture.json @@ -1,3 +1,4 @@ { - "Keys": ["org.qt-project.qt.audiosource"] + "Keys": ["gstreamermediacapture"], + "Services": ["org.qt-project.qt.audiosource"] } diff --git a/src/plugins/gstreamer/mediacapture/mediacapturecamera.json b/src/plugins/gstreamer/mediacapture/mediacapturecamera.json index b31238363..af9f3575f 100644 --- a/src/plugins/gstreamer/mediacapture/mediacapturecamera.json +++ b/src/plugins/gstreamer/mediacapture/mediacapturecamera.json @@ -1,3 +1,4 @@ { - "Keys": ["org.qt-project.qt.audiosource", "org.qt-project.qt.camera"] + "Keys": ["gstreamermediacapture"] + "Services": ["org.qt-project.qt.audiosource", "org.qt-project.qt.camera"] } diff --git a/src/plugins/gstreamer/mediaplayer/mediaplayer.json b/src/plugins/gstreamer/mediaplayer/mediaplayer.json index c4a27ea01..bd1a7e64d 100644 --- a/src/plugins/gstreamer/mediaplayer/mediaplayer.json +++ b/src/plugins/gstreamer/mediaplayer/mediaplayer.json @@ -1,3 +1,4 @@ { - "Keys": ["org.qt-project.qt.mediaplayer"] + "Keys": ["gstreamermediaplayer"], + "Services": ["org.qt-project.qt.mediaplayer"] } diff --git a/src/plugins/qt7/qt7.json b/src/plugins/qt7/qt7.json index c4a27ea01..b4cebad99 100644 --- a/src/plugins/qt7/qt7.json +++ b/src/plugins/qt7/qt7.json @@ -1,3 +1,4 @@ { - "Keys": ["org.qt-project.qt.mediaplayer"] + "Keys": ["qt7"], + "Services": ["org.qt-project.qt.mediaplayer"] } diff --git a/src/plugins/v4l/v4l.json b/src/plugins/v4l/v4l.json index f87f329c1..467fd526f 100644 --- a/src/plugins/v4l/v4l.json +++ b/src/plugins/v4l/v4l.json @@ -1,3 +1,4 @@ { - "Keys": ["org.qt-project.qt.radio"] + "Keys": ["v4l"], + "Services": ["org.qt-project.qt.radio"] } diff --git a/src/plugins/wmf/player/mfvideorenderercontrol.cpp b/src/plugins/wmf/player/mfvideorenderercontrol.cpp index 6baa3716e..8f73244c0 100644 --- a/src/plugins/wmf/player/mfvideorenderercontrol.cpp +++ b/src/plugins/wmf/player/mfvideorenderercontrol.cpp @@ -1286,6 +1286,7 @@ namespace { HRESULT hr = S_OK; Q_ASSERT(pOp != NULL); + Q_UNUSED(pOp) hr = processSamplesFromQueue(WriteSamples); // We are in the middle of an asynchronous operation, so if something failed, send an error. if (FAILED(hr)) diff --git a/src/plugins/wmf/wmf.json b/src/plugins/wmf/wmf.json index b350cef41..e70736480 100644 --- a/src/plugins/wmf/wmf.json +++ b/src/plugins/wmf/wmf.json @@ -1,3 +1,4 @@ { - "Keys": ["org.qt-project.qt.mediaplayer", "org.qt-project.qt.audiodecode"] + "Keys": ["windowsmediafoundation"], + "Services": ["org.qt-project.qt.mediaplayer", "org.qt-project.qt.audiodecode"] } diff --git a/src/plugins/wmf/wmfserviceplugin.cpp b/src/plugins/wmf/wmfserviceplugin.cpp index 0978069c9..79354b4e1 100644 --- a/src/plugins/wmf/wmfserviceplugin.cpp +++ b/src/plugins/wmf/wmfserviceplugin.cpp @@ -105,12 +105,12 @@ QMediaServiceProviderHint::Features WMFServicePlugin::supportedFeatures( return QMediaServiceProviderHint::Features(); } -QList<QByteArray> WMFServicePlugin::devices(const QByteArray &service) const +QList<QByteArray> WMFServicePlugin::devices(const QByteArray &) const { return QList<QByteArray>(); } -QString WMFServicePlugin::deviceDescription(const QByteArray &service, const QByteArray &device) +QString WMFServicePlugin::deviceDescription(const QByteArray &, const QByteArray &) { return QString(); } |