From d9354b2299a9a521854c5c6e6ab29163376f8ebc Mon Sep 17 00:00:00 2001 From: Yoann Lopes Date: Wed, 21 Jan 2015 14:11:42 +0100 Subject: GStreamer: fix camerabin state and status changes. Not all status changes where reported and setting the QCamera to LoadedState was not actually loading anything. State and status changes have been refactored. Camera status is now reported directly by the camera session. Setting the camera state to LoadedState now sets the camerabin to GST_STATE_READY, that allows to query for camera capabilities without having to start the camera (and have a valid viewfinder). Change-Id: I249b1ad32690679ff34a427410bc709ed3ab461c Reviewed-by: Christian Stromme --- src/plugins/gstreamer/camerabin/camerabinfocus.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'src/plugins/gstreamer/camerabin/camerabinfocus.cpp') diff --git a/src/plugins/gstreamer/camerabin/camerabinfocus.cpp b/src/plugins/gstreamer/camerabin/camerabinfocus.cpp index 2b777e3ff..32b8d9454 100644 --- a/src/plugins/gstreamer/camerabin/camerabinfocus.cpp +++ b/src/plugins/gstreamer/camerabin/camerabinfocus.cpp @@ -56,7 +56,7 @@ CameraBinFocus::CameraBinFocus(CameraBinSession *session) QGstreamerBufferProbe(ProbeBuffers), #endif m_session(session), - m_cameraState(QCamera::UnloadedState), + m_cameraStatus(QCamera::UnloadedStatus), m_focusMode(QCameraFocus::AutoFocus), m_focusPointMode(QCameraFocus::FocusPointAuto), m_focusStatus(QCamera::Unlocked), @@ -68,8 +68,8 @@ CameraBinFocus::CameraBinFocus(CameraBinSession *session) gst_photography_set_focus_mode(m_session->photography(), GST_PHOTOGRAPHY_FOCUS_MODE_AUTO); - connect(m_session, SIGNAL(stateChanged(QCamera::State)), - this, SLOT(_q_handleCameraStateChange(QCamera::State))); + connect(m_session, SIGNAL(statusChanged(QCamera::Status)), + this, SLOT(_q_handleCameraStatusChange(QCamera::Status))); } CameraBinFocus::~CameraBinFocus() @@ -319,10 +319,10 @@ void CameraBinFocus::_q_setFocusStatus(QCamera::LockStatus status, QCamera::Lock } } -void CameraBinFocus::_q_handleCameraStateChange(QCamera::State state) +void CameraBinFocus::_q_handleCameraStatusChange(QCamera::Status status) { - m_cameraState = state; - if (state == QCamera::ActiveState) { + m_cameraStatus = status; + if (status == QCamera::ActiveStatus) { if (GstPad *pad = gst_element_get_static_pad(m_session->cameraSource(), "vfsrc")) { if (GstCaps *caps = qt_gst_pad_get_current_caps(pad)) { if (GstStructure *structure = gst_caps_get_structure(caps, 0)) { @@ -415,7 +415,7 @@ void CameraBinFocus::updateRegionOfInterest(const QRectF &rectangle) void CameraBinFocus::updateRegionOfInterest(const QVector &rectangles) { - if (m_cameraState != QCamera::ActiveState) + if (m_cameraStatus != QCamera::ActiveStatus) return; GstElement * const cameraSource = m_session->cameraSource(); -- cgit v1.2.3