summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDmytro Poplavskiy <dmytro.poplavskiy@nokia.com>2012-06-29 12:18:54 +1000
committerQt by Nokia <qt-info@nokia.com>2012-06-29 07:28:19 +0200
commit799a33e34d981067d12b34a541391bc54a0d0807 (patch)
tree83ee9356833711c4e6cdb4e81d2ec3aab4d17542 /src
parentb6848df7c2e56f2937983ad17167775bc7f754da (diff)
Gst capture: don't wait for pipeline to stop
State changes to lower state are synchronous in gstreamer Change-Id: Ib87eabfeee9ec100f24efbaa989ec909ac7f9a1b Reviewed-by: Lev Zelenskiy <lev.zelenskiy@nokia.com> Reviewed-by: Ling Hu <ling.hu@nokia.com>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/gstreamer/mediacapture/qgstreamercapturesession.cpp14
-rw-r--r--src/plugins/gstreamer/mediacapture/qgstreamercapturesession.h1
2 files changed, 0 insertions, 15 deletions
diff --git a/src/plugins/gstreamer/mediacapture/qgstreamercapturesession.cpp b/src/plugins/gstreamer/mediacapture/qgstreamercapturesession.cpp
index e2dc63bb0..ec8351202 100644
--- a/src/plugins/gstreamer/mediacapture/qgstreamercapturesession.cpp
+++ b/src/plugins/gstreamer/mediacapture/qgstreamercapturesession.cpp
@@ -773,17 +773,6 @@ QGstreamerCaptureSession::State QGstreamerCaptureSession::state() const
return m_state;
}
-void QGstreamerCaptureSession::waitForStopped()
-{
- GstState state = GST_STATE_PLAYING;
- gst_element_get_state(m_pipeline, &state, 0, 0);
-
- while (state != GST_STATE_NULL) {
- qApp->processEvents();
- gst_element_get_state(m_pipeline, &state, 0, 0);
- }
-}
-
void QGstreamerCaptureSession::setState(QGstreamerCaptureSession::State newState)
{
if (newState == m_pendingState && !m_waitingForEos)
@@ -829,9 +818,6 @@ void QGstreamerCaptureSession::setState(QGstreamerCaptureSession::State newState
gst_element_set_state(m_pipeline, GST_STATE_NULL);
- //It would be better to do this async. but
- //gstreamer doesn't notify about pipeline went to NULL state
- waitForStopped();
if (!rebuildGraph(newMode)) {
m_pendingState = StoppedState;
m_state = StoppedState;
diff --git a/src/plugins/gstreamer/mediacapture/qgstreamercapturesession.h b/src/plugins/gstreamer/mediacapture/qgstreamercapturesession.h
index cb03b173f..e8fe27cb1 100644
--- a/src/plugins/gstreamer/mediacapture/qgstreamercapturesession.h
+++ b/src/plugins/gstreamer/mediacapture/qgstreamercapturesession.h
@@ -163,7 +163,6 @@ private:
GstElement *buildVideoPreview();
GstElement *buildImageCapture();
- void waitForStopped();
bool rebuildGraph(QGstreamerCaptureSession::PipelineMode newMode);
GstPad *getAudioProbePad();