summaryrefslogtreecommitdiffstats
path: root/src/plugins/avfoundation/camera/avfmediarecordercontrol.mm
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/avfoundation/camera/avfmediarecordercontrol.mm')
-rw-r--r--src/plugins/avfoundation/camera/avfmediarecordercontrol.mm10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/plugins/avfoundation/camera/avfmediarecordercontrol.mm b/src/plugins/avfoundation/camera/avfmediarecordercontrol.mm
index 79bf2e932..02261027d 100644
--- a/src/plugins/avfoundation/camera/avfmediarecordercontrol.mm
+++ b/src/plugins/avfoundation/camera/avfmediarecordercontrol.mm
@@ -306,14 +306,16 @@ void AVFMediaRecorderControl::setState(QMediaRecorder::State state)
} break;
case QMediaRecorder::StoppedState:
{
- m_state = QMediaRecorder::StoppedState;
+ m_lastStatus = QMediaRecorder::FinalizingStatus;
+ Q_EMIT statusChanged(m_lastStatus);
[m_movieOutput stopRecording];
unapplySettings();
}
}
updateStatus();
- Q_EMIT stateChanged(m_state);
+ if (state != m_state)
+ Q_EMIT stateChanged(m_state);
}
void AVFMediaRecorderControl::setMuted(bool muted)
@@ -341,6 +343,10 @@ void AVFMediaRecorderControl::handleRecordingStarted()
void AVFMediaRecorderControl::handleRecordingFinished()
{
m_recordingFinished = true;
+ if (m_state != QMediaRecorder::StoppedState) {
+ m_state = QMediaRecorder::StoppedState;
+ Q_EMIT stateChanged(m_state);
+ }
updateStatus();
}