From 360214c18c43f02992e23800345300f416d1c79c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Fran=C4=8De=C5=A1kin?= Date: Tue, 14 Apr 2020 22:47:06 +0200 Subject: [PATCH] Correctly set decoding state to true when we get first frame --- src/VideoReceiver/GstVideoReceiver.cc | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/VideoReceiver/GstVideoReceiver.cc b/src/VideoReceiver/GstVideoReceiver.cc index 8e35089ce..30ced4614 100644 --- a/src/VideoReceiver/GstVideoReceiver.cc +++ b/src/VideoReceiver/GstVideoReceiver.cc @@ -1119,12 +1119,6 @@ GstVideoReceiver::_addVideoSink(GstPad* pad) }); } - _decoding = true; - qCDebug(VideoReceiverLog) << "Decoding started"; - _dispatchSignal([this](){ - emit decodingChanged(_decoding); - }); - return true; } @@ -1138,6 +1132,13 @@ void GstVideoReceiver::_noteVideoSinkFrame(void) { _lastVideoFrameTime = QDateTime::currentSecsSinceEpoch(); + if (!_decoding) { + _decoding = true; + qCDebug(VideoReceiverLog) << "Decoding started"; + _dispatchSignal([this](){ + emit decodingChanged(_decoding); + }); + } } void @@ -1674,7 +1675,9 @@ GstVideoReceiver::_keyframeWatch(GstPad* pad, GstPadProbeInfo* info, gpointer us qCDebug(VideoReceiverLog) << "Got keyframe, stop dropping buffers"; - pThis->recordingStarted(); + pThis->_dispatchSignal([pThis]() { + pThis->recordingStarted(); + }); return GST_PAD_PROBE_REMOVE; } -- 2.22.0