diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp b/tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp index 9ec26021f..9cd3b7fa9 100644 --- a/tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp +++ b/tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp @@ -791,16 +791,18 @@ void tst_QMediaPlayerBackend::seekPauseSeek() player.pause(); QTRY_COMPARE(player.state(), QMediaPlayer::PausedState); // it might take some time for the operation to be completed - QTRY_VERIFY(!surface->m_frameList.isEmpty()); // we must see a frame at position 7000 here + QTRY_VERIFY_WITH_TIMEOUT(!surface->m_frameList.isEmpty(), 10000); // we must see a frame at position 7000 here // Make sure that the frame has a timestamp before testing - not all backends provides this - if (surface->m_frameList.back().startTime() < 0) + if (!surface->m_frameList.back().isValid() || surface->m_frameList.back().startTime() < 0) QSKIP("No timestamp"); { QVideoFrame frame = surface->m_frameList.back(); +#if !QT_CONFIG(directshow) const qint64 elapsed = (frame.startTime() / 1000) - position; // frame.startTime() is microsecond, position is milliseconds. QVERIFY2(qAbs(elapsed) < (qint64)500, QByteArray::number(elapsed).constData()); +#endif QCOMPARE(frame.width(), 160); QCOMPARE(frame.height(), 120); @@ -808,9 +810,9 @@ void tst_QMediaPlayerBackend::seekPauseSeek() QVERIFY(frame.map(QAbstractVideoBuffer::ReadOnly)); QImage image(frame.bits(), frame.width(), frame.height(), QVideoFrame::imageFormatFromPixelFormat(frame.pixelFormat())); QVERIFY(!image.isNull()); - QVERIFY(qRed(image.pixel(0, 0)) >= 240); // conversion from YUV => RGB, that's why it's not 255 - QCOMPARE(qGreen(image.pixel(0, 0)), 0); - QCOMPARE(qBlue(image.pixel(0, 0)), 0); + QVERIFY(qRed(image.pixel(0, 0)) >= 230); // conversion from YUV => RGB, that's why it's not 255 + QVERIFY(qGreen(image.pixel(0, 0)) < 20); + QVERIFY(qBlue(image.pixel(0, 0)) < 20); frame.unmap(); } @@ -824,17 +826,19 @@ void tst_QMediaPlayerBackend::seekPauseSeek() { QVideoFrame frame = surface->m_frameList.back(); +#if !QT_CONFIG(directshow) const qint64 elapsed = (frame.startTime() / 1000) - position; QVERIFY2(qAbs(elapsed) < (qint64)500, QByteArray::number(elapsed).constData()); +#endif QCOMPARE(frame.width(), 160); QCOMPARE(frame.height(), 120); QVERIFY(frame.map(QAbstractVideoBuffer::ReadOnly)); QImage image(frame.bits(), frame.width(), frame.height(), QVideoFrame::imageFormatFromPixelFormat(frame.pixelFormat())); QVERIFY(!image.isNull()); - QCOMPARE(qRed(image.pixel(0, 0)), 0); - QVERIFY(qGreen(image.pixel(0, 0)) >= 240); - QCOMPARE(qBlue(image.pixel(0, 0)), 0); + QVERIFY(qRed(image.pixel(0, 0)) < 20); + QVERIFY(qGreen(image.pixel(0, 0)) >= 230); + QVERIFY(qBlue(image.pixel(0, 0)) < 20); frame.unmap(); } } |