diff options
author | Christian Strømme <christian.stromme@theqtcompany.com> | 2016-01-08 17:46:20 +0100 |
---|---|---|
committer | Yoann Lopes <yoann.lopes@theqtcompany.com> | 2016-01-11 14:17:22 +0000 |
commit | c953ef391086f4b689f6adc6d29cb8021db64845 (patch) | |
tree | f017358e1572b8089ffe577aebbc3ca71c05cd40 /src/plugins | |
parent | 9f35d7763e50676eb8521eaaf4542eaf6851c769 (diff) | |
download | qtmultimedia-c953ef391086f4b689f6adc6d29cb8021db64845.tar.gz |
Android: Don't call restartViewfinder() for audio only recordings.
Calling restartViewfinder() would try to access m_cameraSession without
checking if it was valid. This change adds guards around the calls to
restartViewfinder(), and one in the function itself.
Task-number: QTBUG-50282
Change-Id: I1f2b4d2b2342bf2dc2b7f28a7bcd00e08a0edb44
Reviewed-by: jian liang <jianliang79@gmail.com>
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/android/src/mediacapture/qandroidcapturesession.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/plugins/android/src/mediacapture/qandroidcapturesession.cpp b/src/plugins/android/src/mediacapture/qandroidcapturesession.cpp index f2ea1b9d7..cf62e6100 100644 --- a/src/plugins/android/src/mediacapture/qandroidcapturesession.cpp +++ b/src/plugins/android/src/mediacapture/qandroidcapturesession.cpp @@ -219,13 +219,15 @@ void QAndroidCaptureSession::start() if (!m_mediaRecorder->prepare()) { emit error(QMediaRecorder::FormatError, QLatin1String("Unable to prepare the media recorder.")); - restartViewfinder(); + if (m_cameraSession) + restartViewfinder(); return; } if (!m_mediaRecorder->start()) { emit error(QMediaRecorder::FormatError, QLatin1String("Unable to start the media recorder.")); - restartViewfinder(); + if (m_cameraSession) + restartViewfinder(); return; } @@ -418,6 +420,9 @@ void QAndroidCaptureSession::updateViewfinder() void QAndroidCaptureSession::restartViewfinder() { + if (!m_cameraSession) + return; + m_cameraSession->camera()->reconnect(); m_cameraSession->camera()->startPreview(); m_cameraSession->setReadyForCapture(true); |