4#ifndef QGSTREAMERCAMERACONTROL_H
5#define QGSTREAMERCAMERACONTROL_H
18#include <private/qplatformcamera_p.h>
19#include <private/qmultimediautils_p.h>
42#if QT_CONFIG(gstreamer_photography)
43 GstPhotography *photography()
const;
69 void updateCameraProperties();
71#if QT_CONFIG(linux_v4l)
72 bool isV4L2Camera()
const;
73 void initV4L2Controls();
74 int setV4L2ColorTemperature(
int temperature);
76 int getV4L2Parameter(
quint32 id)
const;
78 bool v4l2AutoWhiteBalanceSupported =
false;
79 bool v4l2ColorTemperatureSupported =
false;
80 bool v4l2AutoExposureSupported =
false;
81 bool v4l2ManualExposureSupported =
false;
82 qint32 v4l2MinColorTemp = 5600;
83 qint32 v4l2MaxColorTemp = 5600;
84 qint32 v4l2MinExposure = 0;
85 qint32 v4l2MaxExposure = 0;
86 qint32 v4l2MinExposureAdjustment = 0;
87 qint32 v4l2MaxExposureAdjustment = 0;
89 template <
typename Functor>
90 auto withV4L2DeviceFileDescriptor(
Functor &&
f)
const
92 using ReturnType = std::invoke_result_t<Functor, int>;
95 if (
int gstreamerDeviceFd = gstCamera.
getInt(
"device-fd"); gstreamerDeviceFd != -1)
96 return f(gstreamerDeviceFd);
101 if (!v4l2FileDescriptor) {
102 qWarning() <<
"Unable to open the camera" << m_v4l2DevicePath
104 if constexpr (std::is_void_v<ReturnType>)
109 return f(v4l2FileDescriptor.get());
123 bool m_active =
false;
const char * constData() const noexcept
Returns a pointer to the const data stored in the byte array.
The QCameraDevice class provides general information about camera devices.
The QCamera class provides interface for system camera devices.
WhiteBalanceMode
\value WhiteBalanceAuto Auto white balance mode.
FocusMode
\value FocusModeAuto Continuous auto focus mode.
FlashMode
\value FlashOff Flash is Off.
ExposureMode
\value ExposureAuto Automatic mode.
int getInt(const char *property) const
void setWhiteBalanceMode(QCamera::WhiteBalanceMode mode) override
bool isFocusModeSupported(QCamera::FocusMode mode) const override
bool isActive() const override
virtual ~QGstreamerCamera()
bool isFlashModeSupported(QCamera::FlashMode mode) const override
bool isExposureModeSupported(QCamera::ExposureMode mode) const override
bool setCameraFormat(const QCameraFormat &format) override
void setColorTemperature(int temperature) override
void setExposureMode(QCamera::ExposureMode) override
bool isFlashReady() const override
int isoSensitivity() const override
float exposureTime() const override
bool isWhiteBalanceModeSupported(QCamera::WhiteBalanceMode mode) const override
void setFlashMode(QCamera::FlashMode mode) override
void setFocusMode(QCamera::FocusMode mode) override
void setActive(bool active) override
void setManualIsoSensitivity(int) override
void setCamera(const QCameraDevice &camera) override
void setManualExposureTime(float) override
QGstElement gstElement() const
void setExposureCompensation(float) override
\macro QT_RESTRICTED_CAST_FROM_ASCII
QByteArray toLocal8Bit() const &
Combined button and popup list for selecting options.
static int qt_safe_open(const char *pathname, int flags, mode_t mode=0777)
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
QUniqueHandle< QGstImpl::QFileDescriptorHandleTraits > QFileDescriptorHandle
Q_DECL_COLD_FUNCTION Q_CORE_EXPORT QString qt_error_string(int errorCode=-1)
GLint GLsizei GLsizei GLenum format