From 697abcc532805fa1d10d56256a5f387fbad8c11b Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Thu, 14 Mar 2013 14:16:12 +0100 Subject: [PATCH 1/5] Test the cmake multimediawidgets module only if widgets is available. Change-Id: I381e1b0883fb4fdc68627848ee39a26ce22e2ba5 Reviewed-by: Alexander Neundorf Reviewed-by: Stephen Kelly --- tests/auto/cmake/CMakeLists.txt | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/tests/auto/cmake/CMakeLists.txt b/tests/auto/cmake/CMakeLists.txt index 5d23068d..a634b9de 100644 --- a/tests/auto/cmake/CMakeLists.txt +++ b/tests/auto/cmake/CMakeLists.txt @@ -9,7 +9,16 @@ find_package(Qt5Core REQUIRED) include("${_Qt5CTestMacros}") -test_module_includes( - Multimedia QCamera - MultimediaWidgets QVideoWidget +set(qt_module_includes + Multimedia QCamera +) + +if (NOT NO_WIDGETS) + list(APPEND qt_module_includes + MultimediaWidgets QVideoWidget + ) +endif() + +test_module_includes( + ${qt_module_includes} ) From 5ffe8bd6d93d78b4f258a34c15cde2f9155efb09 Mon Sep 17 00:00:00 2001 From: Yoann Lopes Date: Fri, 22 Mar 2013 18:02:40 +0100 Subject: [PATCH 2/5] Stabilizes QAudioInput auto-test. Change-Id: I85c7a38559e023f89271c0836730f6cec8f429cb Reviewed-by: Christian Stromme --- tests/auto/integration/qaudioinput/tst_qaudioinput.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/auto/integration/qaudioinput/tst_qaudioinput.cpp b/tests/auto/integration/qaudioinput/tst_qaudioinput.cpp index c30a1aa3..9fb4dcbf 100755 --- a/tests/auto/integration/qaudioinput/tst_qaudioinput.cpp +++ b/tests/auto/integration/qaudioinput/tst_qaudioinput.cpp @@ -631,7 +631,7 @@ void tst_QAudioInput::push() QVERIFY(wavHeader.write(*audioFile)); // Set a large buffer to avoid underruns during QTest::qWaits - audioInput.setBufferSize(128*1024); + audioInput.setBufferSize(audioFormat.bytesForDuration(1000000)); QIODevice* feed = audioInput.start(); @@ -699,7 +699,7 @@ void tst_QAudioInput::pushSuspendResume() QAudioInput audioInput(audioFormat, this); audioInput.setNotifyInterval(100); - audioInput.setBufferSize(128*1024); + audioInput.setBufferSize(audioFormat.bytesForDuration(1000000)); QSignalSpy notifySignal(&audioInput, SIGNAL(notify())); QSignalSpy stateSignal(&audioInput, SIGNAL(stateChanged(QAudio::State))); From d64a68f5c8386e82fe9aa5e8eaf94f78124602f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Str=C3=B8mme?= Date: Wed, 20 Mar 2013 19:45:40 +0100 Subject: [PATCH 3/5] Fix calculation bug in QWaveDecoder. When comparing the size of the WaveHeader and the chunk size, we need to include the ID and Size fields, or any extra data won't be discarded and the parsing will fail. Change-Id: I730833f33f57b26cd750985354136191f7e7ce04 Reviewed-by: Yoann Lopes --- src/multimedia/audio/qwavedecoder_p.cpp | 8 +++++--- .../data/isawav_1_16_44100_le_2.wav | Bin 0 -> 22096 bytes .../auto/unit/qwavedecoder/tst_qwavedecoder.cpp | 2 ++ 3 files changed, 7 insertions(+), 3 deletions(-) create mode 100644 tests/auto/unit/qwavedecoder/data/isawav_1_16_44100_le_2.wav diff --git a/src/multimedia/audio/qwavedecoder_p.cpp b/src/multimedia/audio/qwavedecoder_p.cpp index 4b036b20..b75bfaf8 100644 --- a/src/multimedia/audio/qwavedecoder_p.cpp +++ b/src/multimedia/audio/qwavedecoder_p.cpp @@ -153,13 +153,15 @@ void QWaveDecoder::handleData() chunk descriptor; peekChunk(&descriptor); - if (source->bytesAvailable() < qint64(descriptor.size + sizeof(chunk))) + quint32 rawChunkSize = descriptor.size + sizeof(chunk); + if (source->bytesAvailable() < qint64(rawChunkSize)) return; WAVEHeader wave; source->read(reinterpret_cast(&wave), sizeof(WAVEHeader)); - if (descriptor.size > sizeof(WAVEHeader)) - discardBytes(descriptor.size - sizeof(WAVEHeader)); + + if (rawChunkSize > sizeof(WAVEHeader)) + discardBytes(rawChunkSize - sizeof(WAVEHeader)); // Swizzle this if (bigEndian) { diff --git a/tests/auto/unit/qwavedecoder/data/isawav_1_16_44100_le_2.wav b/tests/auto/unit/qwavedecoder/data/isawav_1_16_44100_le_2.wav new file mode 100644 index 0000000000000000000000000000000000000000..087e68e82e22a99e1c0e3838750ac8f247ad47e3 GIT binary patch literal 22096 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 Date: Fri, 22 Mar 2013 15:14:17 +0100 Subject: [PATCH 4/5] Add support for m3u8 playlist formats m3u8 is just a unicode version of m3u so we can already handle these without any extra coding other than adding it as a format Change-Id: Icec0f1844bd2b0a0ea3c39b98f7b06cc402a3309 Reviewed-by: Yoann Lopes --- src/plugins/m3u/qm3uhandler.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/plugins/m3u/qm3uhandler.cpp b/src/plugins/m3u/qm3uhandler.cpp index 6dd3fae3..b2e17fc4 100644 --- a/src/plugins/m3u/qm3uhandler.cpp +++ b/src/plugins/m3u/qm3uhandler.cpp @@ -190,7 +190,7 @@ QM3uPlaylistPlugin::~QM3uPlaylistPlugin() bool QM3uPlaylistPlugin::canRead(QIODevice *device, const QByteArray &format) const { - return device->isReadable() && (format == "m3u" || format.isEmpty()); + return device->isReadable() && (format == "m3u" || format == "m3u8" || format.isEmpty()); } bool QM3uPlaylistPlugin::canRead(const QUrl& location, const QByteArray &format) const @@ -198,18 +198,18 @@ bool QM3uPlaylistPlugin::canRead(const QUrl& location, const QByteArray &format) if (!QFileInfo(location.toLocalFile()).isReadable()) return false; - if (format == "m3u") + if (format == "m3u" || format == "m3u8") return true; if (!format.isEmpty()) return false; - else - return location.toLocalFile().toLower().endsWith(QLatin1String("m3u")); + QString localFile = location.toLocalFile().toLower(); + return localFile.endsWith(QLatin1String("m3u")) || localFile.endsWith(QLatin1String("m3u8")); } bool QM3uPlaylistPlugin::canWrite(QIODevice *device, const QByteArray &format) const { - return device->isOpen() && device->isWritable() && format == "m3u"; + return device->isOpen() && device->isWritable() && (format == "m3u" || format == "m3u8"); } QMediaPlaylistReader *QM3uPlaylistPlugin::createReader(QIODevice *device, const QByteArray &format) From 570f05c2d3ca05ac0955940b6b06fb2b3c015e6a Mon Sep 17 00:00:00 2001 From: Sergio Ahumada Date: Mon, 25 Mar 2013 11:13:12 +0100 Subject: [PATCH 5/5] Bump MODULE_VERSION to 5.1.0 Change-Id: Id5c4f69f35bd55f79797f36d766cfe0a6d665766 Reviewed-by: Oswald Buddenhagen --- .qmake.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.qmake.conf b/.qmake.conf index 02554aba..6aa780ca 100644 --- a/.qmake.conf +++ b/.qmake.conf @@ -1,4 +1,4 @@ load(qt_build_config) CONFIG += qt_example_installs -MODULE_VERSION = 5.0.2 +MODULE_VERSION = 5.1.0