diff options
author | Yoann Lopes <yoann.lopes@theqtcompany.com> | 2015-01-21 14:11:42 +0100 |
---|---|---|
committer | Yoann Lopes <yoann.lopes@theqtcompany.com> | 2015-02-18 13:14:59 +0000 |
commit | d9354b2299a9a521854c5c6e6ab29163376f8ebc (patch) | |
tree | 2914442ba45110e6bd93f01a226e5be4869726a8 /src/plugins/gstreamer/camerabin/camerabinfocus.cpp | |
parent | e49d92959c59f7d9650a37b1860c556e5d0cf2a3 (diff) | |
download | qtmultimedia-d9354b2299a9a521854c5c6e6ab29163376f8ebc.tar.gz |
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 <christian.stromme@theqtcompany.com>
Diffstat (limited to 'src/plugins/gstreamer/camerabin/camerabinfocus.cpp')
-rw-r--r-- | src/plugins/gstreamer/camerabin/camerabinfocus.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
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<QRect> &rectangles) { - if (m_cameraState != QCamera::ActiveState) + if (m_cameraStatus != QCamera::ActiveStatus) return; GstElement * const cameraSource = m_session->cameraSource(); |