summaryrefslogtreecommitdiffstats
path: root/src/plugins/android/src/mediacapture/qandroidcamerasession.cpp
diff options
context:
space:
mode:
authorChristian Strømme <christian.stromme@digia.com>2014-04-07 14:04:49 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-04-12 06:40:28 +0200
commitb33e6d46726ee275eaa00be8800339f1fce4585e (patch)
treeeb847aa71c50fa9e83d127e41dc104d2a452ce78 /src/plugins/android/src/mediacapture/qandroidcamerasession.cpp
parent8a047ef087cebba5953ad3ed7b2d99df7966b695 (diff)
Android: Release the surface texture when not in use
With some Android versions the preview texture is released when the application is suspended. If we don't release the texture in our code, the preview will be empty when the application resumes. Task-number: QTBUG-38165 Change-Id: I72244727081d8f94ee5f6cb0ab660ca59f4bb2de Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
Diffstat (limited to 'src/plugins/android/src/mediacapture/qandroidcamerasession.cpp')
-rw-r--r--src/plugins/android/src/mediacapture/qandroidcamerasession.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/plugins/android/src/mediacapture/qandroidcamerasession.cpp b/src/plugins/android/src/mediacapture/qandroidcamerasession.cpp
index b1b3f848e..6051cf964 100644
--- a/src/plugins/android/src/mediacapture/qandroidcamerasession.cpp
+++ b/src/plugins/android/src/mediacapture/qandroidcamerasession.cpp
@@ -286,8 +286,10 @@ void QAndroidCameraSession::close()
void QAndroidCameraSession::setVideoPreview(QObject *videoOutput)
{
- if (m_videoOutput)
+ if (m_videoOutput) {
m_videoOutput->stop();
+ m_videoOutput->reset();
+ }
if (videoOutput) {
connect(videoOutput, SIGNAL(readyChanged(bool)), this, SLOT(onVideoOutputReady(bool)));
@@ -368,8 +370,12 @@ void QAndroidCameraSession::stopPreview()
m_camera->stopPreview();
m_camera->setPreviewSize(QSize());
- if (m_videoOutput)
+ m_camera->setPreviewTexture(0);
+
+ if (m_videoOutput) {
m_videoOutput->stop();
+ m_videoOutput->reset();
+ }
m_previewStarted = false;
}