From dbdd1946a02c49d8043ae3f47e6e16e64c07c96e Mon Sep 17 00:00:00 2001 From: Liang Qi Date: Mon, 27 May 2013 14:05:05 +0200 Subject: Update qmldir file for QtAudioEngine Change-Id: I2fe64c72520a7b2b6b1d79bbddfdeb7d0bf4f977 Reviewed-by: Yoann Lopes --- src/imports/audioengine/qmldir | 2 ++ 1 file changed, 2 insertions(+) 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 -- cgit v1.2.1 From 5c5d19e874c7e3d7b6180f18173248f617e78873 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Fri, 24 May 2013 09:15:53 +0200 Subject: WMF-plugin: Fix warnings about unused variables. Change-Id: I2b7864463799b23418fc4c3099d73a63709fe8c5 Reviewed-by: Yoann Lopes --- src/plugins/wmf/player/mfvideorenderercontrol.cpp | 1 + src/plugins/wmf/wmfserviceplugin.cpp | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) 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/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 WMFServicePlugin::devices(const QByteArray &service) const +QList WMFServicePlugin::devices(const QByteArray &) const { return QList(); } -QString WMFServicePlugin::deviceDescription(const QByteArray &service, const QByteArray &device) +QString WMFServicePlugin::deviceDescription(const QByteArray &, const QByteArray &) { return QString(); } -- cgit v1.2.1 From 0f94c426838360704abab890b04973173712caa4 Mon Sep 17 00:00:00 2001 From: Liang Qi Date: Mon, 27 May 2013 14:05:36 +0200 Subject: Update all plugins.qmltypes files Task-number: QTBUG-31388 Change-Id: Ia65490a262417f98fe69a89637ec2f9e7c0d0095 Reviewed-by: Shawn Rutledge Reviewed-by: Yoann Lopes --- src/imports/multimedia/plugins.qmltypes | 13 +++++++++++++ 1 file changed, 13 insertions(+) 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: { -- cgit v1.2.1 From 3196d3869eb564565e875929af6a913de5c30c53 Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt Date: Tue, 28 May 2013 09:57:08 +0200 Subject: Android: Fix compilation on Windows The qtCompileTest function in configure.prf does not work when cross-compiling on Windows because it detects the wrong make executable. And it's anyway not the best way to do this, since what we really want to check for is the existence of the SDK version, whereas the compile test could potentially hide a lot of other problems under the same error message. Task-number: QTBUG-31405 Change-Id: I2c16b214e40bac5751d4e7098edcc30318756621 Reviewed-by: Oswald Buddenhagen Reviewed-by: Paul Olav Tvete Reviewed-by: Christian Stromme --- config.tests/android/android.pro | 4 ---- config.tests/android/main.java | 6 ------ qtmultimedia.pro | 4 +++- 3 files changed, 3 insertions(+), 11 deletions(-) delete mode 100644 config.tests/android/android.pro delete mode 100644 config.tests/android/main.java diff --git a/config.tests/android/android.pro b/config.tests/android/android.pro deleted file mode 100644 index dcf5df184..000000000 --- a/config.tests/android/android.pro +++ /dev/null @@ -1,4 +0,0 @@ -CONFIG += java -API_VERSION = android-11 -JAVASOURCES += main.java - diff --git a/config.tests/android/main.java b/config.tests/android/main.java deleted file mode 100644 index 1ab872599..000000000 --- a/config.tests/android/main.java +++ /dev/null @@ -1,6 +0,0 @@ -import android.graphics.SurfaceTexture; - -class BuildTest -{ - public static void main(String [] args) { } -} diff --git a/qtmultimedia.pro b/qtmultimedia.pro index 53f6b9886..672cbc942 100644 --- a/qtmultimedia.pro +++ b/qtmultimedia.pro @@ -9,7 +9,9 @@ win32 { } else:mac { qtCompileTest(avfoundation) } else:android { - !qtCompileTest(android):error("QtMultimedia for Android requires API level 11") + SDK_ROOT = $$(ANDROID_SDK_ROOT) + isEmpty(SDK_ROOT): SDK_ROOT = $$DEFAULT_ANDROID_SDK_ROOT + !exists($$SDK_ROOT/platforms/android-11/android.jar): error("QtMultimedia for Android requires API level 11") } else { qtCompileTest(alsa) qtCompileTest(pulseaudio) -- cgit v1.2.1 From 9d5a639ee8c726e04f0a0c4f3cc5cd7ac36476be Mon Sep 17 00:00:00 2001 From: Mitch Curtis Date: Fri, 31 May 2013 10:32:39 +0200 Subject: Fix typo in QMediaPlayer docs. Change-Id: I0b9110488a2d116cea73abe30f80fc1f487029aa Reviewed-by: Jerome Pasion --- src/multimedia/playback/qmediaplayer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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. */ -- cgit v1.2.1 From 2998a24d35a38e0b651b6e8efe07a1890ff2b6aa Mon Sep 17 00:00:00 2001 From: Jerome Pasion Date: Thu, 30 May 2013 15:43:19 +0200 Subject: Doc: Adding import statement for in Qt Multimedia QML Types Change-Id: I17e108c5d8524fe428ab8f0ca14130cd4bb78d2d Reviewed-by: Liang Qi Reviewed-by: Venugopal Shivashankar Reviewed-by: Martin Smith --- src/multimedia/doc/src/qtmultimedia5.qdoc | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) 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 */ - -- cgit v1.2.1 From fca12620b1e14a5d2daf467f2f8c6eb96714e80a Mon Sep 17 00:00:00 2001 From: Topi Reinio Date: Fri, 31 May 2013 16:02:06 +0200 Subject: Doc: Add Qt Multimedia platform notes for Windows Add a page with details about Qt Multimedia backends on Windows, and link to it from the module index page. Initially, cover the status of camera backend in WMF and DirectShow plugins. Task-number: QTBUG-29552 Change-Id: I53e5901e2d621c4bbc96a61d5dbb249b4debb8d4 Reviewed-by: Yoann Lopes Reviewed-by: Friedemann Kleint --- src/multimedia/doc/src/platform-notes-windows.qdoc | 57 ++++++++++++++++++++++ src/multimedia/doc/src/qtmultimedia-index.qdoc | 1 + 2 files changed, 58 insertions(+) create mode 100644 src/multimedia/doc/src/platform-notes-windows.qdoc 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 -- cgit v1.2.1 From ccc41383044f192353d035dd9b94d2b62b0e52ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Str=C3=B8mme?= Date: Wed, 12 Jun 2013 17:49:08 +0200 Subject: Fix for url bug in the qmlvideo examples. In the FileBrowser paths where being prepended with file:///, since all the paths already starts with a forward slash, navigating away from the initial directory was therefore not possible. To make the examples work on Android, QT += multimedia was added. Change-Id: Iff96729d476c4292999b022bdd6d5770b6b011e7 Reviewed-by: Paul Olav Tvete Reviewed-by: Andy Nichols --- examples/multimedia/video/qmlvideo/main.cpp | 4 ++-- examples/multimedia/video/qmlvideo/qml/qmlvideo/FileBrowser.qml | 2 +- examples/multimedia/video/qmlvideo/qmlvideo.pro | 2 +- examples/multimedia/video/qmlvideofx/main.cpp | 6 +++--- examples/multimedia/video/qmlvideofx/qml/qmlvideofx/FileBrowser.qml | 2 +- examples/multimedia/video/qmlvideofx/qmlvideofx.pro | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/examples/multimedia/video/qmlvideo/main.cpp b/examples/multimedia/video/qmlvideo/main.cpp index e44476a15..81c38d240 100644 --- a/examples/multimedia/video/qmlvideo/main.cpp +++ b/examples/multimedia/video/qmlvideo/main.cpp @@ -132,10 +132,10 @@ int main(int argc, char *argv[]) QUrl videoPath; const QStringList moviesLocation = QStandardPaths::standardLocations(QStandardPaths::MoviesLocation); if (moviesLocation.isEmpty()) { - QUrl appPath(QString("file:///%1").arg(app.applicationDirPath())); + QUrl appPath(QString("file://%1").arg(app.applicationDirPath())); videoPath = appPath.resolved(QUrl("./")); } else - videoPath = QString("file:///%1").arg(moviesLocation.first()); + videoPath = QString("file://%1").arg(moviesLocation.first()); viewer.rootContext()->setContextProperty("videoPath", videoPath); QMetaObject::invokeMethod(rootObject, "init"); diff --git a/examples/multimedia/video/qmlvideo/qml/qmlvideo/FileBrowser.qml b/examples/multimedia/video/qmlvideo/qml/qmlvideo/FileBrowser.qml index 04f1092f4..18b7b0e09 100644 --- a/examples/multimedia/video/qmlvideo/qml/qmlvideo/FileBrowser.qml +++ b/examples/multimedia/video/qmlvideo/qml/qmlvideo/FileBrowser.qml @@ -101,7 +101,7 @@ Rectangle { Rectangle { id: wrapper function launch() { - var path = "file:///" + filePath; + var path = "file://" + filePath; if (folders.isFolder(index)) down(path); else diff --git a/examples/multimedia/video/qmlvideo/qmlvideo.pro b/examples/multimedia/video/qmlvideo/qmlvideo.pro index 3ea513d3a..26865c59a 100644 --- a/examples/multimedia/video/qmlvideo/qmlvideo.pro +++ b/examples/multimedia/video/qmlvideo/qmlvideo.pro @@ -1,7 +1,7 @@ TEMPLATE = app TARGET = qmlvideo -QT += quick +QT += quick multimedia LOCAL_SOURCES = main.cpp LOCAL_HEADERS = trace.h diff --git a/examples/multimedia/video/qmlvideofx/main.cpp b/examples/multimedia/video/qmlvideofx/main.cpp index ab613daa8..b0698e236 100644 --- a/examples/multimedia/video/qmlvideofx/main.cpp +++ b/examples/multimedia/video/qmlvideofx/main.cpp @@ -116,13 +116,13 @@ int main(int argc, char *argv[]) FileReader fileReader; viewer.rootContext()->setContextProperty("fileReader", &fileReader); - QUrl appPath(QString("file:///%1").arg(app.applicationDirPath())); + QUrl appPath(QString("file://%1").arg(app.applicationDirPath())); QUrl imagePath; const QStringList picturesLocation = QStandardPaths::standardLocations(QStandardPaths::PicturesLocation); if (picturesLocation.isEmpty()) imagePath = appPath.resolved(QUrl("images")); else - imagePath = QString("file:///%1").arg(picturesLocation.first()); + imagePath = QString("file://%1").arg(picturesLocation.first()); viewer.rootContext()->setContextProperty("imagePath", imagePath); QUrl videoPath; @@ -130,7 +130,7 @@ int main(int argc, char *argv[]) if (moviesLocation.isEmpty()) videoPath = appPath.resolved(QUrl("./")); else - videoPath = QString("file:///%1").arg(moviesLocation.first()); + videoPath = QString("file://%1").arg(moviesLocation.first()); viewer.rootContext()->setContextProperty("videoPath", videoPath); viewer.setTitle("qmlvideofx"); diff --git a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/FileBrowser.qml b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/FileBrowser.qml index c089f6b1b..3d4343c25 100644 --- a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/FileBrowser.qml +++ b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/FileBrowser.qml @@ -102,7 +102,7 @@ Rectangle { Rectangle { id: wrapper function launch() { - var path = "file:///" + filePath + var path = "file://" + filePath if (folders.isFolder(index)) down(path); else diff --git a/examples/multimedia/video/qmlvideofx/qmlvideofx.pro b/examples/multimedia/video/qmlvideofx/qmlvideofx.pro index d62ade86d..563444903 100644 --- a/examples/multimedia/video/qmlvideofx/qmlvideofx.pro +++ b/examples/multimedia/video/qmlvideofx/qmlvideofx.pro @@ -1,7 +1,7 @@ TEMPLATE = app TARGET = qmlvideofx -QT += quick +QT += quick multimedia SOURCES += filereader.cpp main.cpp HEADERS += filereader.h trace.h -- cgit v1.2.1 From 16a775d47a69913ce4f0306531c97469066ea896 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Str=C3=B8mme?= Date: Thu, 13 Jun 2013 15:42:12 +0200 Subject: Android: Fix for uncaught java exception. If an exception's getMessage() function returns a null object, we can't send it directly to the Log function, as it will throw an exception... To avoid this we can prepend the string from getMessage() with an empty string. Change-Id: Ie026cbf9af133352919a4536c152b6d35cb8c0a7 Reviewed-by: Paul Olav Tvete Reviewed-by: Yoann Lopes --- .../android/multimedia/QtAndroidMediaPlayer.java | 28 +++++++++++----------- 1 file changed, 14 insertions(+), 14 deletions(-) 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()); } } -- cgit v1.2.1 From e25db62a59e86a62990de43f554af3baecdd47ff Mon Sep 17 00:00:00 2001 From: Yoann Lopes Date: Thu, 20 Jun 2013 17:40:11 +0200 Subject: Multimedia plugins now have a unique JSON metadata 'Keys' property. They previously had the multimedia services they provided as keys. This was a problem when several plugins were available on the same platform, providing the same multimedia service, but with different features or capabilities. Since they had the same key, only the first plugin in the directory was loaded. Nevertheless, it was actually working until commit 732dcfe7 in qtbase, as all plugins were loaded even when sharing the same key. The services a multimedia plugin provides are now declared in the 'Services' property. To preserve compatibility with third-party plugins, if that new property doesn't exist it falls back to the 'Keys' property. Task-number: QTBUG-31868 Task-number: QTBUG-31476 Change-Id: Ic3ba32eeef21b69b922bd3d4feb111101559d132 Reviewed-by: Friedemann Kleint Reviewed-by: Lars Knoll --- src/multimedia/qmediapluginloader.cpp | 7 ++++++- src/plugins/android/mediaplayer/mediaplayer.json | 3 ++- src/plugins/audiocapture/audiocapture.json | 3 ++- src/plugins/avfoundation/camera/avfcamera.json | 3 ++- src/plugins/avfoundation/mediaplayer/avfmediaplayer.json | 3 ++- src/plugins/blackberry/blackberry_mediaservice.json | 3 ++- src/plugins/directshow/directshow.json | 3 ++- src/plugins/directshow/directshow_camera.json | 3 ++- src/plugins/gstreamer/audiodecoder/audiodecoder.json | 3 ++- src/plugins/gstreamer/camerabin/camerabin.json | 3 ++- src/plugins/gstreamer/gstreamer.json | 3 ++- src/plugins/gstreamer/mediacapture/mediacapture.json | 3 ++- src/plugins/gstreamer/mediacapture/mediacapturecamera.json | 3 ++- src/plugins/gstreamer/mediaplayer/mediaplayer.json | 3 ++- src/plugins/qt7/qt7.json | 3 ++- src/plugins/v4l/v4l.json | 3 ++- src/plugins/wmf/wmf.json | 3 ++- .../mockserviceplugin1/mockserviceplugin1.json | 3 ++- .../mockserviceplugin2/mockserviceplugin2.json | 3 ++- .../mockserviceplugin3/mockserviceplugin3.json | 3 ++- .../mockserviceplugin4/mockserviceplugin4.json | 3 ++- 21 files changed, 46 insertions(+), 21 deletions(-) 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/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/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/tests/auto/unit/qmediaserviceprovider/mockserviceplugin1/mockserviceplugin1.json b/tests/auto/unit/qmediaserviceprovider/mockserviceplugin1/mockserviceplugin1.json index c4a27ea01..69ff56452 100644 --- a/tests/auto/unit/qmediaserviceprovider/mockserviceplugin1/mockserviceplugin1.json +++ b/tests/auto/unit/qmediaserviceprovider/mockserviceplugin1/mockserviceplugin1.json @@ -1,3 +1,4 @@ { - "Keys": ["org.qt-project.qt.mediaplayer"] + "Keys": ["mockserviceplugin1"], + "Services": ["org.qt-project.qt.mediaplayer"] } diff --git a/tests/auto/unit/qmediaserviceprovider/mockserviceplugin2/mockserviceplugin2.json b/tests/auto/unit/qmediaserviceprovider/mockserviceplugin2/mockserviceplugin2.json index ec05f3e52..15d8ed505 100644 --- a/tests/auto/unit/qmediaserviceprovider/mockserviceplugin2/mockserviceplugin2.json +++ b/tests/auto/unit/qmediaserviceprovider/mockserviceplugin2/mockserviceplugin2.json @@ -1,3 +1,4 @@ { - "Keys": ["org.qt-project.qt.mediaplayer", "org.qt-project.qt.radio"] + "Keys": ["mockserviceplugin2"], + "Services": ["org.qt-project.qt.mediaplayer", "org.qt-project.qt.radio"] } diff --git a/tests/auto/unit/qmediaserviceprovider/mockserviceplugin3/mockserviceplugin3.json b/tests/auto/unit/qmediaserviceprovider/mockserviceplugin3/mockserviceplugin3.json index 58bbc4d74..591a02e51 100644 --- a/tests/auto/unit/qmediaserviceprovider/mockserviceplugin3/mockserviceplugin3.json +++ b/tests/auto/unit/qmediaserviceprovider/mockserviceplugin3/mockserviceplugin3.json @@ -1,3 +1,4 @@ { - "Keys": ["org.qt-project.qt.mediaplayer", "org.qt-project.qt.audiosource"] + "Keys": ["mockserviceplugin3"], + "Services": ["org.qt-project.qt.mediaplayer", "org.qt-project.qt.audiosource"] } diff --git a/tests/auto/unit/qmediaserviceprovider/mockserviceplugin4/mockserviceplugin4.json b/tests/auto/unit/qmediaserviceprovider/mockserviceplugin4/mockserviceplugin4.json index c4a27ea01..d8b8bd7e9 100644 --- a/tests/auto/unit/qmediaserviceprovider/mockserviceplugin4/mockserviceplugin4.json +++ b/tests/auto/unit/qmediaserviceprovider/mockserviceplugin4/mockserviceplugin4.json @@ -1,3 +1,4 @@ { - "Keys": ["org.qt-project.qt.mediaplayer"] + "Keys": ["mockserviceplugin4"], + "Services": ["org.qt-project.qt.mediaplayer"] } -- cgit v1.2.1 From 1c0cfdf408a398f4fe3efded775341b50106505d Mon Sep 17 00:00:00 2001 From: Sergio Ahumada Date: Wed, 19 Jun 2013 10:54:25 +0200 Subject: Add changes-5.1.0 file Change-Id: I01369d608876e69da57839165283ed343b683e88 Reviewed-by: Iikka Eklund Reviewed-by: Yoann Lopes --- dist/changes-5.1.0 | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 dist/changes-5.1.0 diff --git a/dist/changes-5.1.0 b/dist/changes-5.1.0 new file mode 100644 index 000000000..937d6facd --- /dev/null +++ b/dist/changes-5.1.0 @@ -0,0 +1,38 @@ +Qt 5.1 introduces many new features and improvements as well as bugfixes +over the 5.0.x series. For more details, refer to the online documentation +included in this distribution. The documentation is also available online: + + http://qt-project.org/doc/qt-5.1 + +The Qt version 5.1 series is binary compatible with the 5.0.x series. +Applications compiled for 5.0 will continue to run with 5.1. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + + http://bugreports.qt-project.org/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* General * +**************************************************************************** + + - Fixed signal not being emitted in QDeclarativeCameraFocus. + - Decouple qmediametadata.h from qmultimedia.h + - Reset VideoSurface pointer when deleted + - Fix crash on idle status change with 64 bit architectures. + - Add support for m3u8 playlist formats + - Fix calculation bug in QWaveDecoder. + + - [QTBUG-28047] Make directshow-plugin available. + - [QTBUG-28589] Add error handling in image capturing in camera + - [QTBUG-30411] AVFoundation: Emit error when media fails to load + +Qt for Android +-------------- + + - Add libQt5MultimediaQuick_p to the list of dependencies. + - Fixed crash when resetting the video surface. + - Add MediaPlayer support for Android -- cgit v1.2.1