summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Blechmann <tim@klingt.org>2024-04-25 10:26:45 +0800
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2024-04-26 14:27:25 +0000
commitbd08b0d897706ad5227d9c8d3c9fb3d8ad20765e (patch)
tree42ea4aec07a2f33bf90a8e968e4a81651b9c10d9
parent97b7118e3f3c9534c32d854886e37458a3df0603 (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.cpp2
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();