diff options
author | Lars Knoll <lars.knoll@qt.io> | 2021-05-19 10:14:59 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2021-05-19 18:11:56 +0000 |
commit | 9f360934cb90b667ac9119ee93f67980b7b4e563 (patch) | |
tree | 753c9d78dcfc6b3739642ab3d43f7f3e31307854 /src | |
parent | 0c40d337ae107d5ab2fde5da022c071c64c67e0e (diff) |
Remove contrast/brightness/hue/saturation properties from QCamera
Those methods are only supported on gstreamer (they don't exist
on macOS/iOS). They are probably better implemented as a
postprocessing effect anyway, so remove the from QCamera to keep
the API smaller and more manageable.
Change-Id: Ic203b3cac3384cdb0b6648366d47f6254f299197
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'src')
6 files changed, 0 insertions, 211 deletions
diff --git a/src/multimedia/camera/qcamera.cpp b/src/multimedia/camera/qcamera.cpp index e69155666..000c591b6 100644 --- a/src/multimedia/camera/qcamera.cpp +++ b/src/multimedia/camera/qcamera.cpp @@ -1038,103 +1038,6 @@ void QCamera::setManualWhiteBalance(qreal colorTemperature) } /*! - Returns the brightness adjustment setting. - */ -qreal QCamera::brightness() const -{ - Q_D(const QCamera); - return d->brightness; -} - -/*! - Set the brightness adjustment to \a value. - - Valid brightness adjustment values range between -1.0 and 1.0, with a default of 0. -*/ -void QCamera::setBrightness(qreal value) -{ - Q_D(QCamera); - if (!d->imageControl || d->brightness == value) - return; - d->brightness = value; - d->imageControl->setParameter(QPlatformCameraImageProcessing::BrightnessAdjustment, - QVariant(value)); - emit brightnessChanged(); -} - -/*! - Returns the contrast adjustment setting. -*/ -qreal QCamera::contrast() const -{ - Q_D(const QCamera); - return d->contrast; -} - -/*! - Set the contrast adjustment to \a value. - - Valid contrast adjustment values range between -1.0 and 1.0, with a default of 0. -*/ -void QCamera::setContrast(qreal value) -{ - Q_D(QCamera); - if (!d->imageControl || d->contrast == value) - return; - d->contrast = value; - d->imageControl->setParameter(QPlatformCameraImageProcessing::ContrastAdjustment, - QVariant(value)); - emit contrastChanged(); -} - -/*! - Returns the saturation adjustment value. -*/ -qreal QCamera::saturation() const -{ - Q_D(const QCamera); - return d->saturation; -} - -/*! - Sets the saturation adjustment value to \a value. - - Valid saturation values range between -1.0 and 1.0, with a default of 0. -*/ -void QCamera::setSaturation(qreal value) -{ - Q_D(QCamera); - if (!d->imageControl || d->saturation == value) - return; - d->saturation = value; - d->imageControl->setParameter(QPlatformCameraImageProcessing::SaturationAdjustment, - QVariant(value)); - emit saturationChanged(); -} - -qreal QCamera::hue() const -{ - Q_D(const QCamera); - return d->hue; -} - -/*! - Sets the hue adjustment value to \a value. - - Valid hue values range between -1.0 and 1.0, with a default of 0. -*/ -void QCamera::setHue(qreal value) -{ - Q_D(QCamera); - if (!d->imageControl || d->hue == value) - return; - d->hue = value; - d->imageControl->setParameter(QPlatformCameraImageProcessing::HueAdjustment, - QVariant(value)); - emit hueChanged(); -} - -/*! \enum QCamera::WhiteBalanceMode \value WhiteBalanceAuto Auto white balance mode. diff --git a/src/multimedia/camera/qcamera.h b/src/multimedia/camera/qcamera.h index a7c959124..7cbab533c 100644 --- a/src/multimedia/camera/qcamera.h +++ b/src/multimedia/camera/qcamera.h @@ -87,10 +87,6 @@ class Q_MULTIMEDIA_EXPORT QCamera : public QObject Q_PROPERTY(WhiteBalanceMode whiteBalanceMode READ whiteBalanceMode WRITE setWhiteBalanceMode NOTIFY whiteBalanceModeChanged) Q_PROPERTY(qreal manualWhiteBalance READ manualWhiteBalance WRITE setManualWhiteBalance NOTIFY manualWhiteBalanceChanged) - Q_PROPERTY(qreal brightness READ brightness WRITE setBrightness NOTIFY brightnessChanged) - Q_PROPERTY(qreal contrast READ contrast WRITE setContrast NOTIFY contrastChanged) - Q_PROPERTY(qreal hue READ hue WRITE setHue NOTIFY hueChanged) - Q_PROPERTY(qreal saturation READ saturation WRITE setSaturation NOTIFY saturationChanged) Q_ENUMS(Status) Q_ENUMS(Error) @@ -238,11 +234,6 @@ public: qreal manualWhiteBalance() const; - qreal brightness() const; - qreal contrast() const; - qreal saturation() const; - qreal hue() const; - public Q_SLOTS: void setActive(bool active); void start() { setActive(true); } @@ -265,11 +256,6 @@ public Q_SLOTS: void setWhiteBalanceMode(WhiteBalanceMode mode); void setManualWhiteBalance(qreal colorTemperature); - void setBrightness(qreal value); - void setContrast(qreal value); - void setSaturation(qreal value); - void setHue(qreal value); - Q_SIGNALS: void activeChanged(bool); void statusChanged(QCamera::Status status); diff --git a/src/multimedia/camera/qcamera_p.h b/src/multimedia/camera/qcamera_p.h index add658454..eae660049 100644 --- a/src/multimedia/camera/qcamera_p.h +++ b/src/multimedia/camera/qcamera_p.h @@ -87,10 +87,6 @@ public: QCamera::WhiteBalanceMode whiteBalance = QCamera::WhiteBalanceAuto; qreal colorTemperature = 0; - qreal brightness = 0; - qreal contrast = 0; - qreal saturation = 0; - qreal hue = 0; void _q_error(int error, const QString &errorString); void unsetError() { error = QCamera::NoError; errorString.clear(); } diff --git a/src/multimedia/platform/gstreamer/mediacapture/qgstreamercameraimageprocessing.cpp b/src/multimedia/platform/gstreamer/mediacapture/qgstreamercameraimageprocessing.cpp index 1871ab590..8a692b866 100644 --- a/src/multimedia/platform/gstreamer/mediacapture/qgstreamercameraimageprocessing.cpp +++ b/src/multimedia/platform/gstreamer/mediacapture/qgstreamercameraimageprocessing.cpp @@ -62,66 +62,12 @@ QGstreamerImageProcessing::QGstreamerImageProcessing(QGstreamerCamera *camera) if (auto *photography = m_camera->photography()) gst_photography_set_white_balance_mode(photography, GST_PHOTOGRAPHY_WB_MODE_AUTO); #endif - updateColorBalanceValues(); } QGstreamerImageProcessing::~QGstreamerImageProcessing() { } -static bool isColorBalanceParameter(QPlatformCameraImageProcessing::ProcessingParameter param) -{ - return param >= QPlatformCameraImageProcessing::ContrastAdjustment && param <= QPlatformCameraImageProcessing::BrightnessAdjustment; -} - -void QGstreamerImageProcessing::updateColorBalanceValues() -{ - for (int i = ContrastAdjustment; i <= BrightnessAdjustment; ++i) - colorBalanceParameters[i] = {}; - - GstColorBalance *balance = m_camera->colorBalance(); - if (!balance) - return; - - const GList *controls = gst_color_balance_list_channels(balance); - - for (const GList *item = controls; item; item = g_list_next (item)) { - GstColorBalanceChannel *channel = (GstColorBalanceChannel *)item->data; - int cur_value = gst_color_balance_get_value (balance, channel); - - int index = -1; - if (!g_ascii_strcasecmp (channel->label, "brightness")) { - index = BrightnessAdjustment; - } else if (!g_ascii_strcasecmp (channel->label, "contrast")) { - index = ContrastAdjustment; - } else if (!g_ascii_strcasecmp (channel->label, "saturation")) { - index = SaturationAdjustment; - } else if (!g_ascii_strcasecmp (channel->label, "hue")) { - index = HueAdjustment; - } - if (index < 0) - continue; - colorBalanceParameters[index] = { channel, cur_value, channel->min_value, channel->max_value }; - } -} - -bool QGstreamerImageProcessing::setColorBalanceValue(ProcessingParameter parameter, qreal value) -{ - Q_ASSERT(isColorBalanceParameter(parameter)); - - GstColorBalance *balance = m_camera->colorBalance(); - if (!balance) - return false; - - auto &p = colorBalanceParameters[parameter]; - if (!p.channel) - return false; - - p.setScaledValue(value); - gst_color_balance_set_value (balance, p.channel, p.current); - return true; -} - bool QGstreamerImageProcessing::setWhiteBalanceMode(QCamera::WhiteBalanceMode mode) { if (!isWhiteBalanceModeSupported(mode)) @@ -197,9 +143,6 @@ bool QGstreamerImageProcessing::isWhiteBalanceModeSupported(QCamera::WhiteBalanc bool QGstreamerImageProcessing::isParameterSupported(QPlatformCameraImageProcessing::ProcessingParameter parameter) const { - if (isColorBalanceParameter(parameter)) - return colorBalanceParameters[parameter].channel != nullptr; - #if QT_CONFIG(linux_v4l) if (m_camera->isV4L2Camera()) { switch (parameter) { @@ -227,12 +170,6 @@ bool QGstreamerImageProcessing::isParameterSupported(QPlatformCameraImageProcess bool QGstreamerImageProcessing::isParameterValueSupported(QPlatformCameraImageProcessing::ProcessingParameter parameter, const QVariant &value) const { switch (parameter) { - case ContrastAdjustment: - case BrightnessAdjustment: - case SaturationAdjustment: - if (qAbs(value.toReal()) > 1) - return false; - return isParameterSupported(parameter); case ColorTemperature: { #if QT_CONFIG(linux_v4l) if (m_camera->isV4L2Camera()) { @@ -253,9 +190,6 @@ bool QGstreamerImageProcessing::isParameterValueSupported(QPlatformCameraImagePr void QGstreamerImageProcessing::setParameter(QPlatformCameraImageProcessing::ProcessingParameter parameter, const QVariant &value) { - if (isColorBalanceParameter(parameter)) - setColorBalanceValue(parameter, value.toDouble()); - #if QT_CONFIG(linux_v4l) if (m_camera->isV4L2Camera()) { if (setV4L2Param(parameter, value)) @@ -276,7 +210,6 @@ void QGstreamerImageProcessing::setParameter(QPlatformCameraImageProcessing::Pro void QGstreamerImageProcessing::update() { - updateColorBalanceValues(); #if QT_CONFIG(linux_v4l) initV4L2Controls(); #endif diff --git a/src/multimedia/platform/gstreamer/mediacapture/qgstreamercameraimageprocessing_p.h b/src/multimedia/platform/gstreamer/mediacapture/qgstreamercameraimageprocessing_p.h index 61415548e..171cb060f 100644 --- a/src/multimedia/platform/gstreamer/mediacapture/qgstreamercameraimageprocessing_p.h +++ b/src/multimedia/platform/gstreamer/mediacapture/qgstreamercameraimageprocessing_p.h @@ -88,32 +88,7 @@ public: void update(); private: - bool setColorBalanceValue(ProcessingParameter param, qreal value); - void updateColorBalanceValues(); - -private: QGstreamerCamera *m_camera; - struct ColorBalanceParameter { - GstColorBalanceChannel *channel = nullptr; - int current = 0; - int min = 0; - int max = 0; - double scaledValue() const { - // map [min..max] to [-1.0 .. 1.0] - if (min == max) - return 0; - return double(current - min) / double(max - min) * 2 - 1; - } - void setScaledValue(double value) { - // map [-1.0 .. 1.0] to [min..max] - if (min == max) - current = min; - value = qBound(-1., value, 1.); - current = min + qRound((value + 1.)/2. * double(max - min)); - } - }; - ColorBalanceParameter colorBalanceParameters[BrightnessAdjustment + 1]; - QCamera::WhiteBalanceMode m_whiteBalanceMode = QCamera::WhiteBalanceAuto; #if QT_CONFIG(linux_v4l) diff --git a/src/multimedia/platform/qplatformcameraimageprocessing_p.h b/src/multimedia/platform/qplatformcameraimageprocessing_p.h index 341bfca61..000939e95 100644 --- a/src/multimedia/platform/qplatformcameraimageprocessing_p.h +++ b/src/multimedia/platform/qplatformcameraimageprocessing_p.h @@ -69,10 +69,6 @@ class Q_MULTIMEDIA_EXPORT QPlatformCameraImageProcessing : public QObject public: enum ProcessingParameter { - ContrastAdjustment, - SaturationAdjustment, - HueAdjustment, - BrightnessAdjustment, WhiteBalancePreset, ColorTemperature }; |