summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
authorDmytro Poplavskiy <dmytro.poplavskiy@nokia.com>2012-03-09 14:51:07 +1000
committerQt by Nokia <qt-info@nokia.com>2012-03-12 04:38:44 +0100
commite2eaa283fb0494284304c12285c0d3c10086dfe6 (patch)
tree8d7b8da39e2edacf438590b06ce8fcf9f4fa2920 /tests/auto
parent10b006340191d14d33f7f6b7f94a6e13eb8acea5 (diff)
Don't request renderer control if null surface is set as video output.
QCamera and QMediaPlayer are likely to wait for valid surface to be passed to the renderer control before startup, so after player->setVideoOutput(nullSurface) player will not start playback. If the renderer control was already requested before for valid surface it should be released when the null surface is assigned. Change-Id: I3f78f2d82e61fae5f305874874c0ffbc4cb7dc1d Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/unit/qcamera/tst_qcamera.cpp10
-rw-r--r--tests/auto/unit/qmediaplayer/tst_qmediaplayer.cpp10
2 files changed, 20 insertions, 0 deletions
diff --git a/tests/auto/unit/qcamera/tst_qcamera.cpp b/tests/auto/unit/qcamera/tst_qcamera.cpp
index 565a8c2c8..838041db3 100644
--- a/tests/auto/unit/qcamera/tst_qcamera.cpp
+++ b/tests/auto/unit/qcamera/tst_qcamera.cpp
@@ -1031,20 +1031,30 @@ void tst_QCamera::testSetVideoOutput()
camera.setViewfinder(reinterpret_cast<QGraphicsVideoItem *>(0));
+ QCOMPARE(mockCameraService->rendererRef, 0);
+
camera.setViewfinder(&surface);
QVERIFY(mockCameraService->rendererControl->surface() == &surface);
+ QCOMPARE(mockCameraService->rendererRef, 1);
camera.setViewfinder(reinterpret_cast<QAbstractVideoSurface *>(0));
QVERIFY(mockCameraService->rendererControl->surface() == 0);
+ //rendererControl is released
+ QCOMPARE(mockCameraService->rendererRef, 0);
+
camera.setViewfinder(&surface);
QVERIFY(mockCameraService->rendererControl->surface() == &surface);
+ QCOMPARE(mockCameraService->rendererRef, 1);
camera.setViewfinder(reinterpret_cast<QVideoWidget *>(0));
QVERIFY(mockCameraService->rendererControl->surface() == 0);
+ //rendererControl is released
+ QCOMPARE(mockCameraService->rendererRef, 0);
camera.setViewfinder(&surface);
QVERIFY(mockCameraService->rendererControl->surface() == &surface);
+ QCOMPARE(mockCameraService->rendererRef, 1);
}
diff --git a/tests/auto/unit/qmediaplayer/tst_qmediaplayer.cpp b/tests/auto/unit/qmediaplayer/tst_qmediaplayer.cpp
index dbea83f3f..f2bcdc10e 100644
--- a/tests/auto/unit/qmediaplayer/tst_qmediaplayer.cpp
+++ b/tests/auto/unit/qmediaplayer/tst_qmediaplayer.cpp
@@ -999,20 +999,30 @@ void tst_QMediaPlayer::testSetVideoOutput()
player->setVideoOutput(reinterpret_cast<QVideoWidget *>(0));
player->setVideoOutput(reinterpret_cast<QGraphicsVideoItem *>(0));
+ QCOMPARE(mockService->rendererRef, 0);
+
player->setVideoOutput(&surface);
QVERIFY(mockService->rendererControl->surface() == &surface);
+ QCOMPARE(mockService->rendererRef, 1);
player->setVideoOutput(reinterpret_cast<QAbstractVideoSurface *>(0));
QVERIFY(mockService->rendererControl->surface() == 0);
+ //rendererControl is released
+ QCOMPARE(mockService->rendererRef, 0);
+
player->setVideoOutput(&surface);
QVERIFY(mockService->rendererControl->surface() == &surface);
+ QCOMPARE(mockService->rendererRef, 1);
player->setVideoOutput(reinterpret_cast<QVideoWidget *>(0));
QVERIFY(mockService->rendererControl->surface() == 0);
+ //rendererControl is released
+ QCOMPARE(mockService->rendererRef, 0);
player->setVideoOutput(&surface);
QVERIFY(mockService->rendererControl->surface() == &surface);
+ QCOMPARE(mockService->rendererRef, 1);
}