diff options
author | Liang Qi <liang.qi@qt.io> | 2016-05-06 15:04:50 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2016-05-06 15:04:50 +0200 |
commit | 7b0cae6c4f9f417e14a1553cd206bd929d299dbb (patch) | |
tree | 6408aa52426dcd7d77ab21358f11a3dcb10dc4ca | |
parent | 3c278e96ce62f5211b2d2a700f233653a3ce64e6 (diff) | |
parent | 7f502f32d9cc08bca841962511bbfabab1334b43 (diff) | |
download | qtmultimedia-7b0cae6c4f9f417e14a1553cd206bd929d299dbb.tar.gz |
Merge remote-tracking branch 'origin/5.7' into dev
Change-Id: I8027e798d85ae60dbcb4fbc8592e3992af7546d4
-rw-r--r-- | src/imports/multimedia/multimedia.cpp | 5 | ||||
-rw-r--r-- | src/imports/multimedia/multimedia.pro | 1 | ||||
-rw-r--r-- | src/imports/multimedia/plugins.qmltypes | 49 | ||||
-rw-r--r-- | src/imports/multimedia/qdeclarativecameraimageprocessing.cpp | 2 | ||||
-rw-r--r-- | src/imports/multimedia/qdeclarativecameraimageprocessing_p.h | 6 | ||||
-rw-r--r-- | src/imports/multimedia/qdeclarativeplaylist_p.h | 8 | ||||
-rw-r--r-- | src/multimedia/playback/qmedianetworkplaylistprovider.cpp | 10 | ||||
-rw-r--r-- | src/plugins/android/android.pro | 2 | ||||
-rw-r--r-- | src/plugins/android/src/qandroidmediaserviceplugin.cpp | 2 | ||||
-rw-r--r-- | src/plugins/directshow/player/directshowplayerservice.cpp | 39 | ||||
-rw-r--r-- | src/plugins/opensles/qopenslesengine.cpp | 6 | ||||
-rw-r--r-- | tests/auto/integration/qaudioinput/BLACKLIST | 7 | ||||
-rw-r--r-- | tests/auto/integration/qaudioinput/qaudioinput.pro | 2 | ||||
-rw-r--r-- | tests/auto/integration/qaudiooutput/BLACKLIST | 3 | ||||
-rw-r--r-- | tests/auto/integration/qmediaplayerbackend/BLACKLIST | 1 | ||||
-rw-r--r-- | tests/auto/integration/qsoundeffect/BLACKLIST | 1 |
16 files changed, 108 insertions, 36 deletions
diff --git a/src/imports/multimedia/multimedia.cpp b/src/imports/multimedia/multimedia.cpp index 0ebe5cd0e..872b2ae61 100644 --- a/src/imports/multimedia/multimedia.cpp +++ b/src/imports/multimedia/multimedia.cpp @@ -135,6 +135,11 @@ public: qmlRegisterType<QDeclarativePlaylist>(uri, 5, 6, "Playlist"); qmlRegisterType<QDeclarativePlaylistItem>(uri, 5, 6, "PlaylistItem"); + // 5.7 types + qmlRegisterType<QDeclarativePlaylist, 1>(uri, 5, 7, "Playlist"); + qmlRegisterUncreatableType<QDeclarativeCameraImageProcessing, 2>(uri, 5, 7, "CameraImageProcessing", + trUtf8("CameraImageProcessing is provided by Camera")); + qmlRegisterType<QDeclarativeMediaMetaData>(); qmlRegisterType<QAbstractVideoFilter>(); } diff --git a/src/imports/multimedia/multimedia.pro b/src/imports/multimedia/multimedia.pro index dabb0a4ba..4c35784b9 100644 --- a/src/imports/multimedia/multimedia.pro +++ b/src/imports/multimedia/multimedia.pro @@ -1,7 +1,6 @@ CXX_MODULE = multimedia TARGET = declarative_multimedia TARGETPATH = QtMultimedia -IMPORT_VERSION = 5.6 QT += qml quick network multimedia-private qtmultimediaquicktools-private diff --git a/src/imports/multimedia/plugins.qmltypes b/src/imports/multimedia/plugins.qmltypes index fe1c68af2..91fff02eb 100644 --- a/src/imports/multimedia/plugins.qmltypes +++ b/src/imports/multimedia/plugins.qmltypes @@ -4,7 +4,7 @@ import QtQuick.tooling 1.2 // It is used for QML tooling purposes only. // // This file was auto-generated by: -// 'qmlplugindump -nonrelocatable QtMultimedia 5.6' +// 'qmlplugindump -nonrelocatable QtMultimedia 5.7' Module { dependencies: ["QtQuick 2.0"] @@ -832,10 +832,11 @@ Module { prototype: "QObject" exports: [ "QtMultimedia/CameraImageProcessing 5.0", - "QtMultimedia/CameraImageProcessing 5.5" + "QtMultimedia/CameraImageProcessing 5.5", + "QtMultimedia/CameraImageProcessing 5.7" ] isCreatable: false - exportMetaObjectRevisions: [0, 1] + exportMetaObjectRevisions: [0, 1, 2] Enum { name: "WhiteBalanceMode" values: { @@ -868,6 +869,7 @@ Module { } Property { name: "whiteBalanceMode"; type: "WhiteBalanceMode" } Property { name: "manualWhiteBalance"; type: "double" } + Property { name: "brightness"; revision: 2; type: "double" } Property { name: "contrast"; type: "double" } Property { name: "saturation"; type: "double" } Property { name: "sharpeningLevel"; type: "double" } @@ -882,6 +884,11 @@ Module { Parameter { type: "double" } } Signal { + name: "brightnessChanged" + revision: 2 + Parameter { type: "double" } + } + Signal { name: "contrastChanged" Parameter { type: "double" } } @@ -906,6 +913,11 @@ Module { Parameter { name: "colorTemp"; type: "double" } } Method { + name: "setBrightness" + revision: 2 + Parameter { name: "value"; type: "double" } + } + Method { name: "setContrast" Parameter { name: "value"; type: "double" } } @@ -1243,8 +1255,8 @@ Module { name: "QDeclarativePlaylist" defaultProperty: "items" prototype: "QAbstractListModel" - exports: ["QtMultimedia/Playlist 5.6"] - exportMetaObjectRevisions: [0] + exports: ["QtMultimedia/Playlist 5.6", "QtMultimedia/Playlist 5.7"] + exportMetaObjectRevisions: [0, 1] Enum { name: "PlaybackMode" values: { @@ -1351,16 +1363,43 @@ Module { Parameter { name: "source"; type: "QUrl" } } Method { + name: "addItems" + revision: 1 + type: "bool" + Parameter { name: "sources"; type: "QList<QUrl>" } + } + Method { name: "insertItem" type: "bool" Parameter { name: "index"; type: "int" } Parameter { name: "source"; type: "QUrl" } } Method { + name: "insertItems" + revision: 1 + type: "bool" + Parameter { name: "index"; type: "int" } + Parameter { name: "sources"; type: "QList<QUrl>" } + } + Method { + name: "moveItem" + revision: 1 + type: "bool" + Parameter { name: "from"; type: "int" } + Parameter { name: "to"; type: "int" } + } + Method { name: "removeItem" type: "bool" Parameter { name: "index"; type: "int" } } + Method { + name: "removeItems" + revision: 1 + type: "bool" + Parameter { name: "start"; type: "int" } + Parameter { name: "end"; type: "int" } + } Method { name: "clear"; type: "bool" } } Component { diff --git a/src/imports/multimedia/qdeclarativecameraimageprocessing.cpp b/src/imports/multimedia/qdeclarativecameraimageprocessing.cpp index c7e4c703b..e8a816727 100644 --- a/src/imports/multimedia/qdeclarativecameraimageprocessing.cpp +++ b/src/imports/multimedia/qdeclarativecameraimageprocessing.cpp @@ -148,6 +148,8 @@ void QDeclarativeCameraImageProcessing::setManualWhiteBalance(qreal colorTemp) c Image brightness adjustment. Valid brightness adjustment values range between -1.0 and 1.0, with a default of 0. + + \since 5.7 */ qreal QDeclarativeCameraImageProcessing::brightness() const { diff --git a/src/imports/multimedia/qdeclarativecameraimageprocessing_p.h b/src/imports/multimedia/qdeclarativecameraimageprocessing_p.h index bb10cdeba..eb755d87c 100644 --- a/src/imports/multimedia/qdeclarativecameraimageprocessing_p.h +++ b/src/imports/multimedia/qdeclarativecameraimageprocessing_p.h @@ -66,7 +66,7 @@ class QDeclarativeCameraImageProcessing : public QObject Q_PROPERTY(WhiteBalanceMode whiteBalanceMode READ whiteBalanceMode WRITE setWhiteBalanceMode NOTIFY whiteBalanceModeChanged) Q_PROPERTY(qreal manualWhiteBalance READ manualWhiteBalance WRITE setManualWhiteBalance NOTIFY manualWhiteBalanceChanged) - Q_PROPERTY(qreal brightness READ brightness WRITE setBrightness NOTIFY brightnessChanged) + Q_PROPERTY(qreal brightness READ brightness WRITE setBrightness NOTIFY brightnessChanged REVISION 2) Q_PROPERTY(qreal contrast READ contrast WRITE setContrast NOTIFY contrastChanged) Q_PROPERTY(qreal saturation READ saturation WRITE setSaturation NOTIFY saturationChanged) Q_PROPERTY(qreal sharpeningLevel READ sharpeningLevel WRITE setSharpeningLevel NOTIFY sharpeningLevelChanged) @@ -116,7 +116,7 @@ public Q_SLOTS: void setWhiteBalanceMode(QDeclarativeCameraImageProcessing::WhiteBalanceMode mode) const; void setManualWhiteBalance(qreal colorTemp) const; - void setBrightness(qreal value); + Q_REVISION(2) void setBrightness(qreal value); void setContrast(qreal value); void setSaturation(qreal value); void setSharpeningLevel(qreal value); @@ -128,7 +128,7 @@ Q_SIGNALS: void whiteBalanceModeChanged(QDeclarativeCameraImageProcessing::WhiteBalanceMode) const; void manualWhiteBalanceChanged(qreal) const; - void brightnessChanged(qreal); + Q_REVISION(2) void brightnessChanged(qreal); void contrastChanged(qreal); void saturationChanged(qreal); void sharpeningLevelChanged(qreal); diff --git a/src/imports/multimedia/qdeclarativeplaylist_p.h b/src/imports/multimedia/qdeclarativeplaylist_p.h index 50869e422..22c853605 100644 --- a/src/imports/multimedia/qdeclarativeplaylist_p.h +++ b/src/imports/multimedia/qdeclarativeplaylist_p.h @@ -158,12 +158,12 @@ public Q_SLOTS: void load(const QUrl &location, const QString &format = QString()); bool save(const QUrl &location, const QString &format = QString()); bool addItem(const QUrl &source); - bool addItems(const QList<QUrl> &sources); + Q_REVISION(1) bool addItems(const QList<QUrl> &sources); bool insertItem(int index, const QUrl &source); - bool insertItems(int index, const QList<QUrl> &sources); - bool moveItem(int from, int to); + Q_REVISION(1) bool insertItems(int index, const QList<QUrl> &sources); + Q_REVISION(1) bool moveItem(int from, int to); bool removeItem(int index); - bool removeItems(int start, int end); + Q_REVISION(1) bool removeItems(int start, int end); bool clear(); Q_SIGNALS: diff --git a/src/multimedia/playback/qmedianetworkplaylistprovider.cpp b/src/multimedia/playback/qmedianetworkplaylistprovider.cpp index 5e2efbb99..67ce123d8 100644 --- a/src/multimedia/playback/qmedianetworkplaylistprovider.cpp +++ b/src/multimedia/playback/qmedianetworkplaylistprovider.cpp @@ -208,10 +208,14 @@ bool QMediaNetworkPlaylistProvider::moveMedia(int from, int to) { Q_D(QMediaNetworkPlaylistProvider); - Q_UNUSED(from); - Q_UNUSED(to); + Q_ASSERT(from >= 0 && from < mediaCount()); + Q_ASSERT(to >= 0 && to < mediaCount()); - return true; + if (from == to) + return false; + + const QMediaContent media = d->resources.at(from); + return removeMedia(from, from) && insertMedia(to, media); } bool QMediaNetworkPlaylistProvider::removeMedia(int fromPos, int toPos) diff --git a/src/plugins/android/android.pro b/src/plugins/android/android.pro index fa322942b..e77053b77 100644 --- a/src/plugins/android/android.pro +++ b/src/plugins/android/android.pro @@ -1,7 +1,7 @@ TEMPLATE = subdirs SUBDIRS += src -android:!android-no-sdk: SUBDIRS += jar +android: SUBDIRS += jar qtHaveModule(quick) { SUBDIRS += videonode diff --git a/src/plugins/android/src/qandroidmediaserviceplugin.cpp b/src/plugins/android/src/qandroidmediaserviceplugin.cpp index 693789054..87de7d561 100644 --- a/src/plugins/android/src/qandroidmediaserviceplugin.cpp +++ b/src/plugins/android/src/qandroidmediaserviceplugin.cpp @@ -148,7 +148,6 @@ int QAndroidMediaServicePlugin::cameraOrientation(const QByteArray &device) cons QT_END_NAMESPACE -#ifndef Q_OS_ANDROID_NO_SDK Q_DECL_EXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void * /*reserved*/) { QT_USE_NAMESPACE @@ -176,4 +175,3 @@ Q_DECL_EXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void * /*reserved*/) return JNI_VERSION_1_4; } -#endif // Q_OS_ANDROID_NO_SDK diff --git a/src/plugins/directshow/player/directshowplayerservice.cpp b/src/plugins/directshow/player/directshowplayerservice.cpp index f5691012c..a411715b8 100644 --- a/src/plugins/directshow/player/directshowplayerservice.cpp +++ b/src/plugins/directshow/player/directshowplayerservice.cpp @@ -70,8 +70,22 @@ #include <QtCore/qthread.h> #include <QtCore/qvarlengtharray.h> +#ifndef Q_CC_MINGW +# include <comdef.h> +#endif + Q_GLOBAL_STATIC(DirectShowEventLoop, qt_directShowEventLoop) +static QString comError(HRESULT hr) +{ +#ifndef Q_CC_MINGW // MinGW 5.3 no longer has swprintf_s(). + _com_error error(hr); + return QString::fromWCharArray(error.ErrorMessage()); +#else + Q_UNUSED(hr) + return QString(); +#endif +} // QMediaPlayer uses millisecond time units, direct show uses 100 nanosecond units. static const int qt_directShowTimeScale = 10000; @@ -344,17 +358,11 @@ void DirectShowPlayerService::doSetUrlSource(QMutexLocker *locker) m_error = QMediaPlayer::FormatError; m_errorString = QString(); break; - case E_FAIL: - case E_OUTOFMEMORY: - case VFW_E_CANNOT_LOAD_SOURCE_FILTER: - case VFW_E_NOT_FOUND: - m_error = QMediaPlayer::ResourceError; - m_errorString = QString(); - break; default: m_error = QMediaPlayer::ResourceError; m_errorString = QString(); - qWarning("DirectShowPlayerService::doSetUrlSource: Unresolved error code %x", uint(hr)); + qWarning("DirectShowPlayerService::doSetUrlSource: Unresolved error code 0x%x (%s)", + uint(hr), qPrintable(comError(hr))); break; } @@ -368,7 +376,8 @@ void DirectShowPlayerService::doSetStreamSource(QMutexLocker *locker) DirectShowIOSource *source = new DirectShowIOSource(m_loop); source->setDevice(m_stream); - if (SUCCEEDED(m_graph->AddFilter(source, L"Source"))) { + const HRESULT hr = m_graph->AddFilter(source, L"Source"); + if (SUCCEEDED(hr)) { m_executedTasks = SetSource; m_pendingTasks |= Render; @@ -389,6 +398,8 @@ void DirectShowPlayerService::doSetStreamSource(QMutexLocker *locker) m_error = QMediaPlayer::ResourceError; m_errorString = QString(); + qWarning("DirectShowPlayerService::doPlay: Unresolved error code 0x%x (%s)", + uint(hr), qPrintable(comError(hr))); QCoreApplication::postEvent(this, new QEvent(QEvent::Type(Error))); } @@ -504,8 +515,8 @@ void DirectShowPlayerService::doRender(QMutexLocker *locker) default: m_error = QMediaPlayer::ResourceError; m_errorString = QString(); - qWarning("DirectShowPlayerService::doRender: Unresolved error code %x", - uint(renderHr)); + qWarning("DirectShowPlayerService::doRender: Unresolved error code 0x%x (%s)", + uint(renderHr), qPrintable(comError(renderHr))); } } @@ -716,7 +727,8 @@ void DirectShowPlayerService::doPlay(QMutexLocker *locker) } else { m_error = QMediaPlayer::ResourceError; m_errorString = QString(); - qWarning("DirectShowPlayerService::doPlay: Unresolved error code %x", uint(hr)); + qWarning("DirectShowPlayerService::doPlay: Unresolved error code 0x%x (%s)", + uint(hr), qPrintable(comError(hr))); QCoreApplication::postEvent(this, new QEvent(QEvent::Type(Error))); } @@ -775,7 +787,8 @@ void DirectShowPlayerService::doPause(QMutexLocker *locker) } else { m_error = QMediaPlayer::ResourceError; m_errorString = QString(); - qWarning("DirectShowPlayerService::doPause: Unresolved error code %x", uint(hr)); + qWarning("DirectShowPlayerService::doPause: Unresolved error code 0x%x (%s)", + uint(hr), qPrintable(comError(hr))); QCoreApplication::postEvent(this, new QEvent(QEvent::Type(Error))); } diff --git a/src/plugins/opensles/qopenslesengine.cpp b/src/plugins/opensles/qopenslesengine.cpp index 8a08c46f3..0cbd10887 100644 --- a/src/plugins/opensles/qopenslesengine.cpp +++ b/src/plugins/opensles/qopenslesengine.cpp @@ -143,7 +143,7 @@ QList<int> QOpenSLESEngine::supportedSampleRates(QAudio::Mode mode) const int QOpenSLESEngine::getOutputValue(QOpenSLESEngine::OutputValue type, int defaultValue) { -#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_NO_SDK) +#if defined(Q_OS_ANDROID) static int sampleRate = 0; static int framesPerBuffer = 0; static const int sdkVersion = QtAndroidPrivate::androidSdkVersion(); @@ -204,7 +204,7 @@ int QOpenSLESEngine::getOutputValue(QOpenSLESEngine::OutputValue type, int defau int QOpenSLESEngine::getDefaultBufferSize(const QAudioFormat &format) { -#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_NO_SDK) +#if defined(Q_OS_ANDROID) if (!format.isValid()) return 0; @@ -252,7 +252,7 @@ int QOpenSLESEngine::getLowLatencyBufferSize(const QAudioFormat &format) bool QOpenSLESEngine::supportsLowLatency() { -#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_NO_SDK) +#if defined(Q_OS_ANDROID) static int isSupported = -1; if (isSupported != -1) diff --git a/tests/auto/integration/qaudioinput/BLACKLIST b/tests/auto/integration/qaudioinput/BLACKLIST new file mode 100644 index 000000000..f6a8a670f --- /dev/null +++ b/tests/auto/integration/qaudioinput/BLACKLIST @@ -0,0 +1,7 @@ +#QTBUG-49736 +[pushSuspendResume] +redhatenterpriselinuxworkstation-6.6 +rhel-7.2 +ubuntu-14.04 +opensuse-13.1 +opensuse-42.1 diff --git a/tests/auto/integration/qaudioinput/qaudioinput.pro b/tests/auto/integration/qaudioinput/qaudioinput.pro index 737ff6c23..31de98eb0 100644 --- a/tests/auto/integration/qaudioinput/qaudioinput.pro +++ b/tests/auto/integration/qaudioinput/qaudioinput.pro @@ -3,7 +3,7 @@ TARGET = tst_qaudioinput QT += core multimedia-private testlib # This is more of a system test -CONFIG += testcase insignificant_test +CONFIG += testcase HEADERS += wavheader.h SOURCES += wavheader.cpp tst_qaudioinput.cpp diff --git a/tests/auto/integration/qaudiooutput/BLACKLIST b/tests/auto/integration/qaudiooutput/BLACKLIST index 4d45efe06..e6cd7c846 100644 --- a/tests/auto/integration/qaudiooutput/BLACKLIST +++ b/tests/auto/integration/qaudiooutput/BLACKLIST @@ -1,5 +1,8 @@ +#QTBUG-52673 [pullSuspendResume] redhatenterpriselinuxworkstation-6.6 rhel-7.1 ubuntu-14.04 opensuse-13.1 64bit +opensuse-42.1 +rhel-7.2 diff --git a/tests/auto/integration/qmediaplayerbackend/BLACKLIST b/tests/auto/integration/qmediaplayerbackend/BLACKLIST index b55c167ac..7ce72c7ac 100644 --- a/tests/auto/integration/qmediaplayerbackend/BLACKLIST +++ b/tests/auto/integration/qmediaplayerbackend/BLACKLIST @@ -24,6 +24,7 @@ redhatenterpriselinuxworkstation-6.6 rhel-7.1 ubuntu-14.04 64bit windows 64bit developer-build +rhel-7.2 [processEOS] opensuse-13.1 64bit diff --git a/tests/auto/integration/qsoundeffect/BLACKLIST b/tests/auto/integration/qsoundeffect/BLACKLIST index 1feeb4b5f..3a358789a 100644 --- a/tests/auto/integration/qsoundeffect/BLACKLIST +++ b/tests/auto/integration/qsoundeffect/BLACKLIST @@ -5,3 +5,4 @@ ubuntu-14.04 64bit redhatenterpriselinuxworkstation-6.6 rhel-7.1 opensuse-13.1 +rhel-7.2 |