diff options
author | Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com> | 2012-06-29 12:18:54 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-06-29 07:28:19 +0200 |
commit | 799a33e34d981067d12b34a541391bc54a0d0807 (patch) | |
tree | 83ee9356833711c4e6cdb4e81d2ec3aab4d17542 /src | |
parent | b6848df7c2e56f2937983ad17167775bc7f754da (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.cpp | 14 | ||||
-rw-r--r-- | src/plugins/gstreamer/mediacapture/qgstreamercapturesession.h | 1 |
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(); |