diff options
author | Michael Goddard <michael.goddard@nokia.com> | 2011-07-25 15:02:51 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-07-26 06:45:46 +0200 |
commit | a6128410da0fc11b2ce7d3ecb8d5f75a011897ef (patch) | |
tree | 7df32e185f68115f967d94540c6e9389c9669b66 /tests/auto/qvideoframe/tst_qvideoframe.cpp | |
parent | 1e4dda971098656dad390478601ee932e9c4e3e3 (diff) |
API unit tests from Maemo API test team.
A large number of tweaks and changes to original tests, and refactor
a lot of the mock backends to reduce duplication.
Changed viewfinder test case to use mock service and provider so
that it matches the image capture test case.
Reviewed-by: Jonas Rabbe
(cherry picked from commit e40bef5508a4165cec4a46b97115aed461027fa5)
Also licence header fix:
(cherry picked from commit e9ee9e8c48b45b97d62ee4a82e400fa9d8ea8107)
Change-Id: Ic59891d75563bb2e008a336eea859e8c44d8d831
Reviewed-on: http://codereview.qt.nokia.com/2078
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
Diffstat (limited to 'tests/auto/qvideoframe/tst_qvideoframe.cpp')
-rw-r--r-- | tests/auto/qvideoframe/tst_qvideoframe.cpp | 115 |
1 files changed, 113 insertions, 2 deletions
diff --git a/tests/auto/qvideoframe/tst_qvideoframe.cpp b/tests/auto/qvideoframe/tst_qvideoframe.cpp index 58640b71a..37f7dc440 100644 --- a/tests/auto/qvideoframe/tst_qvideoframe.cpp +++ b/tests/auto/qvideoframe/tst_qvideoframe.cpp @@ -83,6 +83,10 @@ private slots: void imageDetach(); void formatConversion_data(); void formatConversion(); + + void isMapped(); + void isReadable(); + void isWritable(); }; Q_DECLARE_METATYPE(QImage::Format) @@ -344,6 +348,27 @@ void tst_QVideoFrame::copy_data() << QVideoFrame::TopField << qint64(63641740) << qint64(63641954); + QTest::newRow("64x64 ARGB32") + << QAbstractVideoBuffer::GLTextureHandle + << QSize(64, 64) + << QVideoFrame::Format_ARGB32 + << QVideoFrame::BottomField + << qint64(63641740) + << qint64(63641954); + QTest::newRow("32x256 YUV420P") + << QAbstractVideoBuffer::UserHandle + << QSize(32, 256) + << QVideoFrame::Format_YUV420P + << QVideoFrame::InterlacedFrame + << qint64(12345) + << qint64(12389); + QTest::newRow("1052x756 ARGB32") + << QAbstractVideoBuffer::NoHandle + << QSize(1052, 756) + << QVideoFrame::Format_ARGB32 + << QVideoFrame::ProgressiveFrame + << qint64(12345) + << qint64(12389); QTest::newRow("32x256 YUV420P") << QAbstractVideoBuffer::UserHandle << QSize(32, 256) @@ -399,7 +424,7 @@ void tst_QVideoFrame::copy() QVERIFY(!buffer.isNull()); - QVERIFY(otherFrame.isValid()); + QVERIFY(otherFrame.isValid()); QCOMPARE(otherFrame.handleType(), handleType); QCOMPARE(otherFrame.pixelFormat(), pixelFormat); QCOMPARE(otherFrame.size(), size); @@ -782,12 +807,98 @@ void tst_QVideoFrame::formatConversion() QFETCH(QVideoFrame::PixelFormat, pixelFormat); QCOMPARE(QVideoFrame::pixelFormatFromImageFormat(imageFormat) == pixelFormat, - imageFormat != QImage::Format_Invalid); + imageFormat != QImage::Format_Invalid); QCOMPARE(QVideoFrame::imageFormatFromPixelFormat(pixelFormat) == imageFormat, pixelFormat != QVideoFrame::Format_Invalid); } +#define TEST_MAPPED(frame, mode) \ +do { \ + QVERIFY(frame.bits()); \ + QVERIFY(frame.isMapped()); \ + QCOMPARE(frame.mappedBytes(), 16384); \ + QCOMPARE(frame.bytesPerLine(), 256); \ + QCOMPARE(frame.mapMode(), mode); \ +} while (0) + +#define TEST_UNMAPPED(frame) \ +do { \ + QVERIFY(!frame.bits()); \ + QVERIFY(!frame.isMapped()); \ + QCOMPARE(frame.mappedBytes(), 0); \ + QCOMPARE(frame.bytesPerLine(), 0); \ + QCOMPARE(frame.mapMode(), QAbstractVideoBuffer::NotMapped); \ +} while (0) + +void tst_QVideoFrame::isMapped() +{ + QVideoFrame frame(16384, QSize(64, 64), 256, QVideoFrame::Format_ARGB32); + TEST_UNMAPPED(frame); + + QVERIFY(frame.map(QAbstractVideoBuffer::ReadOnly)); + TEST_MAPPED(frame, QAbstractVideoBuffer::ReadOnly); + frame.unmap(); + TEST_UNMAPPED(frame); + + QVERIFY(frame.map(QAbstractVideoBuffer::WriteOnly)); + TEST_MAPPED(frame, QAbstractVideoBuffer::WriteOnly); + frame.unmap(); + TEST_UNMAPPED(frame); + + QVERIFY(frame.map(QAbstractVideoBuffer::ReadWrite)); + TEST_MAPPED(frame, QAbstractVideoBuffer::ReadWrite); + frame.unmap(); + TEST_UNMAPPED(frame); +} + +void tst_QVideoFrame::isReadable() +{ + QVideoFrame frame(16384, QSize(64, 64), 256, QVideoFrame::Format_ARGB32); + + QVERIFY(!frame.isMapped()); + QVERIFY(!frame.isReadable()); + + QVERIFY(frame.map(QAbstractVideoBuffer::ReadOnly)); + QVERIFY(frame.isMapped()); + QVERIFY(frame.isReadable()); + frame.unmap(); + + QVERIFY(frame.map(QAbstractVideoBuffer::WriteOnly)); + QVERIFY(frame.isMapped()); + QVERIFY(!frame.isReadable()); + frame.unmap(); + + QVERIFY(frame.map(QAbstractVideoBuffer::ReadWrite)); + QVERIFY(frame.isMapped()); + QVERIFY(frame.isReadable()); + frame.unmap(); +} + +void tst_QVideoFrame::isWritable() +{ + QVideoFrame frame(16384, QSize(64, 64), 256, QVideoFrame::Format_ARGB32); + + QVERIFY(!frame.isMapped()); + QVERIFY(!frame.isWritable()); + + QVERIFY(frame.map(QAbstractVideoBuffer::ReadOnly)); + QVERIFY(frame.isMapped()); + QVERIFY(!frame.isWritable()); + frame.unmap(); + + QVERIFY(frame.map(QAbstractVideoBuffer::WriteOnly)); + QVERIFY(frame.isMapped()); + QVERIFY(frame.isWritable()); + frame.unmap(); + + QVERIFY(frame.map(QAbstractVideoBuffer::ReadWrite)); + QVERIFY(frame.isMapped()); + QVERIFY(frame.isWritable()); + frame.unmap(); +} + + QTEST_MAIN(tst_QVideoFrame) #include "tst_qvideoframe.moc" |