diff --git a/src/VideoStreaming/VideoReceiver.cc b/src/VideoStreaming/VideoReceiver.cc index 55e12df294f505a5862d0b3f49f28adf6e2c14f8..1f79dc5dea4653ec44abcb2c3bb95b4c050d467b 100644 --- a/src/VideoStreaming/VideoReceiver.cc +++ b/src/VideoStreaming/VideoReceiver.cc @@ -180,6 +180,7 @@ VideoReceiver::VideoReceiver(QObject* parent) : QObject(parent) #if defined(QGC_GST_STREAMING) , _recording(false) + , _streaming(false) , _videoSink(NULL) , _socket(NULL) , _serverPresent(false) @@ -460,6 +461,7 @@ void VideoReceiver::stop() gst_object_unref(_pipeline); _pipeline = NULL; _serverPresent = false; + _streaming = false; } #endif } @@ -494,6 +496,9 @@ void VideoReceiver::_onBusMessage(GstMessage* msg) } while(0); stop(); break; + case GST_MESSAGE_STATE_CHANGED: + _streaming = GST_STATE(_pipeline) == GST_STATE_PLAYING; + break; default: break; } diff --git a/src/VideoStreaming/VideoReceiver.h b/src/VideoStreaming/VideoReceiver.h index 27c78a53130da2d0a5bb522cf0d49cc456d86511..869044d4e549bbc058467bbe0838ebd7186e4fe1 100644 --- a/src/VideoStreaming/VideoReceiver.h +++ b/src/VideoStreaming/VideoReceiver.h @@ -40,7 +40,7 @@ public: #endif bool recording() { return _recording; } - bool streaming() { return GST_STATE(_pipeline) == GST_STATE_PLAYING; } + bool streaming() { return _streaming; } signals: void recordingChanged();