CameraBinExposure::CameraBinExposure(CameraBinSession *session) :QCameraExposureControl(session), m_session(session) { GstPhotoCaps caps = gst_photography_get_capabilities(m_session->photography()); qDebug() << "Camera caps:" << caps; }
QCamera::LockTypes CameraBinLocks::supportedLocks() const { QCamera::LockTypes locks = QCamera::LockFocus; #if GST_CHECK_VERSION(1, 2, 0) if (GstPhotography *photography = m_session->photography()) { if (gst_photography_get_capabilities(photography) & GST_PHOTOGRAPHY_CAPS_WB_MODE) locks |= QCamera::LockWhiteBalance; if (GstElement *source = m_session->cameraSource()) { if (g_object_class_find_property( G_OBJECT_GET_CLASS(source), "exposure-mode")) { locks |= QCamera::LockExposure; } } } #endif return locks; }
static GstPhotoCaps gst_camerabin_get_capabilities (GstPhotography * photo) { GstCameraBin *camera; /* camerabin can zoom by itself */ GstPhotoCaps pcaps = GST_PHOTOGRAPHY_CAPS_ZOOM; g_return_val_if_fail (photo != NULL, FALSE); camera = GST_CAMERABIN (photo); if (GST_IS_ELEMENT (camera->src_vid_src) && gst_element_implements_interface (camera->src_vid_src, GST_TYPE_PHOTOGRAPHY)) { GstPhotography *p2 = GST_PHOTOGRAPHY (camera->src_vid_src); pcaps |= gst_photography_get_capabilities (p2); } return pcaps; }