diff options
author | Tim Blechmann <tim@klingt.org> | 2024-04-25 10:26:45 +0800 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2024-04-26 14:27:25 +0000 |
commit | bd08b0d897706ad5227d9c8d3c9fb3d8ad20765e (patch) | |
tree | 42ea4aec07a2f33bf90a8e968e4a81651b9c10d9 | |
parent | 97b7118e3f3c9534c32d854886e37458a3df0603 (diff) |
GStreamer: QGstreamerMediaEncoder - fix duration updates
`QGstreamerMediaEncoder` has a timer to update the duration. This timer
is stopped when `pause` or `stop`. We should update the duration in this
case to cope with the duration that may have expired since the last
update.
Task-number: QTBUG-124183
Pick-to: 6.5
Change-Id: Ia8b0df7a1e19917b137260069eba1c053188c2b0
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
(cherry picked from commit 99a7883607b4fe1fd8afaebe6ea87be5f4a36f2d)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r-- | src/plugins/multimedia/gstreamer/mediacapture/qgstreamermediaencoder.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/plugins/multimedia/gstreamer/mediacapture/qgstreamermediaencoder.cpp b/src/plugins/multimedia/gstreamer/mediacapture/qgstreamermediaencoder.cpp index 218026ede..11aeca455 100644 --- a/src/plugins/multimedia/gstreamer/mediacapture/qgstreamermediaencoder.cpp +++ b/src/plugins/multimedia/gstreamer/mediacapture/qgstreamermediaencoder.cpp @@ -340,6 +340,7 @@ void QGstreamerMediaEncoder::pause() if (!m_session || m_finalizing || state() != QMediaRecorder::RecordingState) return; signalDurationChangedTimer.stop(); + durationChanged(duration()); gstPipeline.dumpGraph("before-pause"); stateChanged(QMediaRecorder::PausedState); } @@ -357,6 +358,7 @@ void QGstreamerMediaEncoder::stop() { if (!m_session || m_finalizing || state() == QMediaRecorder::StoppedState) return; + durationChanged(duration()); qCDebug(qLcMediaEncoderGst) << "stop"; m_finalizing = true; m_session->unlinkEncoder(); |