diff options
author | Lars Knoll <lars.knoll@qt.io> | 2021-02-10 16:15:46 +0100 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2021-02-17 08:26:40 +0000 |
commit | f2607d51bba3076e51ff9f67cdbcee793c4f54d0 (patch) | |
tree | 947471211fbb2732dcbdbbe5cff3d5fc8505dd66 | |
parent | a8eb585f239c2e5c0a5fed8a1a279fbd076c8446 (diff) |
Get rid of QCamera::CaptureMode
Whether we capture still images or Video should only
depend on the outputs we have attached to the camera
(QMediaRecoder and QCameraImageCapture). There's no
need for a separate enum here.
Change-Id: I852f5c752abd1184680ca868cb90e995d6d68b27
Reviewed-by: Doris Verria <doris.verria@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
36 files changed, 69 insertions, 760 deletions
diff --git a/examples/multimedia/declarative-camera/declarative-camera.qml b/examples/multimedia/declarative-camera/declarative-camera.qml index 87dee35f3..29640b82b 100644 --- a/examples/multimedia/declarative-camera/declarative-camera.qml +++ b/examples/multimedia/declarative-camera/declarative-camera.qml @@ -65,7 +65,6 @@ Rectangle { name: "PhotoCapture" StateChangeScript { script: { - camera.captureMode = Camera.CaptureStillImage camera.start() } } @@ -77,7 +76,6 @@ Rectangle { name: "VideoCapture" StateChangeScript { script: { - camera.captureMode = Camera.CaptureVideo camera.start() } } @@ -94,7 +92,6 @@ Rectangle { Camera { id: camera - captureMode: Camera.CaptureStillImage imageCapture { onImageCaptured: { diff --git a/examples/multimediawidgets/camera/camera.cpp b/examples/multimediawidgets/camera/camera.cpp index 014c07fc0..28f4f5071 100644 --- a/examples/multimediawidgets/camera/camera.cpp +++ b/examples/multimediawidgets/camera/camera.cpp @@ -129,9 +129,6 @@ void Camera::setCamera(const QCameraInfo &cameraInfo) connect(m_imageCapture, QOverload<int, QCameraImageCapture::Error, const QString &>::of(&QCameraImageCapture::error), this, &Camera::displayCaptureError); - ui->captureWidget->setTabEnabled(0, (m_camera->isCaptureModeSupported(QCamera::CaptureStillImage))); - ui->captureWidget->setTabEnabled(1, (m_camera->isCaptureModeSupported(QCamera::CaptureVideo))); - updateCaptureMode(); m_camera->start(); } @@ -147,7 +144,7 @@ void Camera::keyPressEvent(QKeyEvent * event) event->accept(); break; case Qt::Key_Camera: - if (m_camera->captureMode() == QCamera::CaptureStillImage) { + if (m_doImageCapture) { takeImage(); } else { if (m_mediaRecorder->state() == QMediaRecorder::RecordingState) @@ -189,16 +186,10 @@ void Camera::processCapturedImage(int requestId, const QImage& img) void Camera::configureCaptureSettings() { - switch (m_camera->captureMode()) { - case QCamera::CaptureStillImage: + if (m_doImageCapture) configureImageSettings(); - break; - case QCamera::CaptureVideo: + else configureVideoSettings(); - break; - default: - break; - } } void Camera::configureVideoSettings() @@ -279,10 +270,7 @@ void Camera::stopCamera() void Camera::updateCaptureMode() { int tabIndex = ui->captureWidget->currentIndex(); - QCamera::CaptureModes captureMode = tabIndex == 0 ? QCamera::CaptureStillImage : QCamera::CaptureVideo; - - if (m_camera->isCaptureModeSupported(captureMode)) - m_camera->setCaptureMode(captureMode); + m_doImageCapture = (tabIndex == 0); } void Camera::updateCameraState(QCamera::State state) diff --git a/examples/multimediawidgets/camera/camera.h b/examples/multimediawidgets/camera/camera.h index 5ccac9165..66cc6eee3 100644 --- a/examples/multimediawidgets/camera/camera.h +++ b/examples/multimediawidgets/camera/camera.h @@ -128,6 +128,7 @@ private: QMediaEncoderSettings m_encoderSettings; bool m_isCapturingImage = false; bool m_applicationExiting = false; + bool m_doImageCapture = true; }; #endif diff --git a/src/imports/multimedia/qdeclarativecamera.cpp b/src/imports/multimedia/qdeclarativecamera.cpp index 82fdf2013..949db70fd 100644 --- a/src/imports/multimedia/qdeclarativecamera.cpp +++ b/src/imports/multimedia/qdeclarativecamera.cpp @@ -183,8 +183,6 @@ QDeclarativeCamera::QDeclarativeCamera(QObject *parent) : m_focus = new QDeclarativeCameraFocus(m_camera); m_imageProcessing = new QDeclarativeCameraImageProcessing(m_camera); - connect(m_camera, SIGNAL(captureModeChanged(QCamera::CaptureModes)), - this, SIGNAL(captureModeChanged())); connect(m_camera, &QCamera::stateChanged, this, &QDeclarativeCamera::_q_updateState); connect(m_camera, SIGNAL(statusChanged(QCamera::Status)), this, SIGNAL(cameraStatusChanged())); connect(m_camera, SIGNAL(errorOccurred(QCamera::Error)), this, SLOT(_q_errorOccurred(QCamera::Error))); @@ -228,7 +226,7 @@ void QDeclarativeCamera::componentComplete() You can get all available device IDs from \l{QtMultimedia::QtMultimedia::availableCameras}{QtMultimedia.availableCameras}. If no value is provided or if set to an empty string, the system's default camera will be used. - If possible, \l cameraState, \l captureMode, \l digitalZoom and other camera parameters are + If possible, \l cameraState, \l zoomFactor and other camera parameters are preserved when changing the camera device. \sa displayName, position @@ -258,7 +256,7 @@ void QDeclarativeCamera::setDeviceId(const QString &name) front-facing and back-facing cameras. If this property is set to \c Camera.UnspecifiedPosition, the system's default camera is used. - If possible, \l cameraState, \l captureMode, \l digitalZoom and other camera + If possible, \l cameraState, \l zoomFactor and other camera parameters are preserved when changing the camera device. \value Camera.UnspecifiedPosition @@ -413,31 +411,6 @@ QDeclarativeCamera::Availability QDeclarativeCamera::availability() const return Availability(m_camera->availability()); } - -/*! - \qmlproperty enumeration QtMultimedia::Camera::captureMode - - This property holds the camera capture mode. The default capture mode is - \c CaptureStillImage. - - \value Camera.CaptureViewfinder - Camera is only configured to display viewfinder. - \value Camera.CaptureStillImage - Prepares the Camera for capturing still images. - \value Camera.CaptureVideo - Prepares the Camera for capturing video. -*/ -QDeclarativeCamera::CaptureMode QDeclarativeCamera::captureMode() const -{ - return QDeclarativeCamera::CaptureMode(int(m_camera->captureMode())); -} - -void QDeclarativeCamera::setCaptureMode(QDeclarativeCamera::CaptureMode mode) -{ - m_camera->setCaptureMode(QCamera::CaptureModes(int(mode))); -} - - /*! \qmlproperty enumeration QtMultimedia::Camera::cameraState diff --git a/src/imports/multimedia/qdeclarativecamera_p.h b/src/imports/multimedia/qdeclarativecamera_p.h index 92430c0c4..f5fca68e9 100644 --- a/src/imports/multimedia/qdeclarativecamera_p.h +++ b/src/imports/multimedia/qdeclarativecamera_p.h @@ -81,7 +81,6 @@ class QDeclarativeCamera : public QObject, public QQmlParserStatus Q_PROPERTY(Position position READ position WRITE setPosition NOTIFY positionChanged REVISION 1) Q_PROPERTY(QString displayName READ displayName NOTIFY displayNameChanged REVISION 1) - Q_PROPERTY(CaptureMode captureMode READ captureMode WRITE setCaptureMode NOTIFY captureModeChanged) Q_PROPERTY(State cameraState READ cameraState WRITE setCameraState NOTIFY cameraStateChanged) Q_PROPERTY(Status cameraStatus READ cameraStatus NOTIFY cameraStatusChanged) Q_PROPERTY(Error errorCode READ errorCode NOTIFY errorChanged) @@ -91,7 +90,6 @@ class QDeclarativeCamera : public QObject, public QQmlParserStatus Q_PROPERTY(qreal maximumZoomFactor READ maximumZoomFactor) Q_PROPERTY(qreal zoomFactor READ zoomFactor WRITE setZoomFactor NOTIFY zoomFactorChanged) - Q_PROPERTY(QObject *mediaSource READ mediaSource NOTIFY mediaSourceChanged SCRIPTABLE false DESIGNABLE false) Q_PROPERTY(QDeclarativeCameraCapture* imageCapture READ imageCapture CONSTANT) Q_PROPERTY(QDeclarativeCameraRecorder* videoRecorder READ videoRecorder CONSTANT) Q_PROPERTY(QDeclarativeCameraExposure* exposure READ exposure CONSTANT) @@ -101,7 +99,6 @@ class QDeclarativeCamera : public QObject, public QQmlParserStatus Q_PROPERTY(QDeclarativeMediaMetaData *metaData READ metaData CONSTANT REVISION 1) Q_ENUMS(Position) - Q_ENUMS(CaptureMode) Q_ENUMS(State) Q_ENUMS(Status) Q_ENUMS(Error) @@ -121,11 +118,6 @@ public: FrontFace = QCameraInfo::FrontFace }; - enum CaptureMode { - CaptureStillImage = QCamera::CaptureStillImage, - CaptureVideo = QCamera::CaptureVideo - }; - enum State { ActiveState = QCamera::ActiveState, @@ -241,7 +233,6 @@ public: QString displayName() const; - CaptureMode captureMode() const; State cameraState() const; Status cameraStatus() const; @@ -256,8 +247,6 @@ public: Availability availability() const; public Q_SLOTS: - void setCaptureMode(CaptureMode mode); - void start(); void stop(); @@ -278,14 +267,11 @@ Q_SIGNALS: Q_REVISION(1) void positionChanged(); Q_REVISION(1) void displayNameChanged(); - void captureModeChanged(); void cameraStateChanged(QDeclarativeCamera::State); void cameraStatusChanged(); void zoomFactorChanged(qreal); - void mediaSourceChanged(); - private Q_SLOTS: void _q_updateState(QCamera::State); void _q_errorOccurred(QCamera::Error); diff --git a/src/multimedia/camera/qcamera.cpp b/src/multimedia/camera/qcamera.cpp index 4ca99b2c7..5ecc9018c 100644 --- a/src/multimedia/camera/qcamera.cpp +++ b/src/multimedia/camera/qcamera.cpp @@ -159,8 +159,6 @@ void QCameraPrivate::initControls() if (control) { q->connect(control, SIGNAL(stateChanged(QCamera::State)), q, SLOT(_q_updateState(QCamera::State))); q->connect(control, SIGNAL(statusChanged(QCamera::Status)), q, SIGNAL(statusChanged(QCamera::Status))); - q->connect(control, SIGNAL(captureModeChanged(QCamera::CaptureModes)), - q, SIGNAL(captureModeChanged(QCamera::CaptureModes))); q->connect(control, SIGNAL(error(int,QString)), q, SLOT(_q_error(int,QString))); } @@ -346,46 +344,6 @@ QString QCamera::errorString() const return d_func()->errorString; } - -/*! - Returns true if the capture \a mode is suported. -*/ -bool QCamera::isCaptureModeSupported(QCamera::CaptureModes mode) const -{ - return d_func()->control ? d_func()->control->isCaptureModeSupported(mode) : false; -} - -/*! - \property QCamera::captureMode - - The type of media (video or still images), - the camera is configured to capture. - - It's allowed to change capture mode in any camera state, - but if the camera is currently active, - chaging capture mode is likely to lead to camera status - chaged to QCamera::LoadedStatus, QCamera::LoadingStatus, - and when the camera is ready to QCamera::ActiveStatus. -*/ - -QCamera::CaptureModes QCamera::captureMode() const -{ - return d_func()->control ? d_func()->control->captureMode() : QCamera::CaptureStillImage; -} - -void QCamera::setCaptureMode(QCamera::CaptureModes mode) -{ - Q_D(QCamera); - - if (mode != captureMode()) { - if (d->control) { - d->_q_preparePropertyChange(QCameraControl::CaptureMode); - d->control->setCaptureMode(mode); - } - } -} - - /*! Starts the camera. @@ -554,18 +512,6 @@ void QCamera::setCameraInfo(const QCameraInfo &cameraInfo) \brief The current status of the camera object. */ - -/*! - \enum QCamera::CaptureMode - - This enum holds the capture mode of the camera. - - \value CaptureViewfinder Camera is only configured to display viewfinder. - \value CaptureStillImage Camera is configured for still frames capture. - \value CaptureVideo Camera is configured for video capture. -*/ - - /*! \enum QCamera::Error @@ -609,12 +555,6 @@ void QCamera::setCameraInfo(const QCameraInfo &cameraInfo) */ /*! - \fn void QCamera::captureModeChanged(QCamera::CaptureModes mode) - - Signals the capture \a mode has changed. -*/ - -/*! \fn QCamera::stateChanged(QCamera::State state) Signals the camera \a state has changed. diff --git a/src/multimedia/camera/qcamera.h b/src/multimedia/camera/qcamera.h index 49c0d900d..4d909e9bb 100644 --- a/src/multimedia/camera/qcamera.h +++ b/src/multimedia/camera/qcamera.h @@ -67,11 +67,9 @@ class Q_MULTIMEDIA_EXPORT QCamera : public QMediaSource Q_OBJECT Q_PROPERTY(QCamera::State state READ state NOTIFY stateChanged) Q_PROPERTY(QCamera::Status status READ status NOTIFY statusChanged) - Q_PROPERTY(QCamera::CaptureModes captureMode READ captureMode WRITE setCaptureMode NOTIFY captureModeChanged) Q_ENUMS(Status) Q_ENUMS(State) - Q_ENUMS(CaptureMode) Q_ENUMS(Error) Q_ENUMS(Position) public: @@ -93,13 +91,6 @@ public: ActiveState }; - enum CaptureMode - { - CaptureStillImage = 0x01, - CaptureVideo = 0x02 - }; - Q_DECLARE_FLAGS(CaptureModes, CaptureMode) - enum Error { NoError, @@ -119,9 +110,6 @@ public: QCameraInfo cameraInfo() const; void setCameraInfo(const QCameraInfo &cameraInfo); - CaptureModes captureMode() const; - bool isCaptureModeSupported(CaptureModes mode) const; - QCameraExposure *exposure() const; QCameraFocus *focus() const; QCameraImageProcessing *imageProcessing() const; @@ -133,8 +121,6 @@ public: QString errorString() const; public Q_SLOTS: - void setCaptureMode(QCamera::CaptureModes mode); - void load(); void unload(); @@ -143,7 +129,6 @@ public Q_SLOTS: Q_SIGNALS: void stateChanged(QCamera::State state); - void captureModeChanged(QCamera::CaptureModes); void statusChanged(QCamera::Status status); void errorOccurred(QCamera::Error); @@ -162,6 +147,5 @@ QT_END_NAMESPACE Q_MEDIA_ENUM_DEBUG(QCamera, State) Q_MEDIA_ENUM_DEBUG(QCamera, Status) Q_MEDIA_ENUM_DEBUG(QCamera, Error) -Q_MEDIA_ENUM_DEBUG(QCamera, CaptureMode) #endif // QCAMERA_H diff --git a/src/multimedia/camera/qcamerafocus.cpp b/src/multimedia/camera/qcamerafocus.cpp index 7c07669f6..badc765c3 100644 --- a/src/multimedia/camera/qcamerafocus.cpp +++ b/src/multimedia/camera/qcamerafocus.cpp @@ -274,14 +274,8 @@ void QCameraFocusPrivate::init(QCameraControl *cameraControl) q->connect(focusControl, SIGNAL(focusZonesChanged()), q, SIGNAL(focusZonesChanged())); - q->connect(focusControl, SIGNAL(currentOpticalZoomChanged(qreal)), - q, SIGNAL(opticalZoomChanged(qreal))); - q->connect(focusControl, SIGNAL(currentDigitalZoomChanged(qreal)), - q, SIGNAL(digitalZoomChanged(qreal))); - q->connect(focusControl, SIGNAL(maximumOpticalZoomChanged(qreal)), - q, SIGNAL(maximumOpticalZoomChanged(qreal))); - q->connect(focusControl, SIGNAL(maximumDigitalZoomChanged(qreal)), - q, SIGNAL(maximumDigitalZoomChanged(qreal))); + q->connect(focusControl, SIGNAL(zoomFactorChanged(qreal)), + q, SIGNAL(zoomFactorChanged(qreal))); } /*! diff --git a/src/multimedia/camera/qcameraimagecapture.cpp b/src/multimedia/camera/qcameraimagecapture.cpp index 836468dbb..d67630bcd 100644 --- a/src/multimedia/camera/qcameraimagecapture.cpp +++ b/src/multimedia/camera/qcameraimagecapture.cpp @@ -252,7 +252,7 @@ void QCameraImageCapture::setEncodingSettings(const QImageEncoderSettings &setti if (d->control) { QCamera *camera = qobject_cast<QCamera*>(d->camera); - if (camera && camera->captureMode() == QCamera::CaptureStillImage) { + if (camera) { QMetaObject::invokeMethod(camera, "_q_preparePropertyChange", Qt::DirectConnection, diff --git a/src/multimedia/controls/qcameracontrol.cpp b/src/multimedia/controls/qcameracontrol.cpp index 9dcefd6ed..efd0a920a 100644 --- a/src/multimedia/controls/qcameracontrol.cpp +++ b/src/multimedia/controls/qcameracontrol.cpp @@ -136,39 +136,6 @@ QCameraControl::QCameraControl(QObject *parent) */ /*! - \fn Camera::CaptureModes QCameraControl::captureMode() const = 0 - - Returns the current capture mode. -*/ - -/*! - \fn void QCameraControl::setCaptureMode(QCamera::CaptureModes mode) = 0; - - Sets the current capture \a mode. - - The capture mode changes are synchronous and allowed in any camera state. - - If the capture mode is changed while camera is active, - it's recommended to change status to QCamera::LoadedStatus - and start activating the camera in the next event loop - with the status changed to QCamera::StartingStatus. - This allows the capture settings to be applied before camera is started. - Than change the status to QCamera::StartedStatus when the capture mode change is done. -*/ - -/*! - \fn bool QCameraControl::isCaptureModeSupported(QCamera::CaptureModes mode) const = 0; - - Returns true if the capture \a mode is suported. -*/ - -/*! - \fn QCameraControl::captureModeChanged(QCamera::CaptureModes mode) - - Signal emitted when the camera capture \a mode changes. - */ - -/*! \fn bool QCameraControl::canChangeProperty(PropertyChangeType changeType, QCamera::Status status) const Returns true if backend can effectively apply changing camera properties of \a changeType type diff --git a/src/multimedia/controls/qcameracontrol.h b/src/multimedia/controls/qcameracontrol.h index 68e049d30..0541e26aa 100644 --- a/src/multimedia/controls/qcameracontrol.h +++ b/src/multimedia/controls/qcameracontrol.h @@ -60,7 +60,6 @@ class Q_MULTIMEDIA_EXPORT QCameraControl : public QObject public: enum PropertyChangeType { - CaptureMode = 1, ImageEncodingSettings = 2, VideoEncodingSettings = 3, Viewfinder = 4, @@ -73,10 +72,6 @@ public: virtual void setCamera(const QCameraInfo &camera) = 0; - virtual QCamera::CaptureModes captureMode() const = 0; - virtual void setCaptureMode(QCamera::CaptureModes) = 0; - virtual bool isCaptureModeSupported(QCamera::CaptureModes mode) const = 0; - virtual bool canChangeProperty(PropertyChangeType changeType, QCamera::Status status) const = 0; virtual QCameraFocusControl *focusControl() { return nullptr; } @@ -89,7 +84,6 @@ Q_SIGNALS: void stateChanged(QCamera::State); void statusChanged(QCamera::Status); void error(int error, const QString &errorString); - void captureModeChanged(QCamera::CaptureModes mode); protected: explicit QCameraControl(QObject *parent = nullptr); diff --git a/src/multimedia/platform/android/mediacapture/qandroidcameracontrol.cpp b/src/multimedia/platform/android/mediacapture/qandroidcameracontrol.cpp index 0b17f17b9..0e932c8e9 100644 --- a/src/multimedia/platform/android/mediacapture/qandroidcameracontrol.cpp +++ b/src/multimedia/platform/android/mediacapture/qandroidcameracontrol.cpp @@ -62,9 +62,6 @@ QAndroidCameraControl::QAndroidCameraControl(QAndroidCameraSession *session) connect(m_cameraSession, SIGNAL(error(int,QString)), this, SIGNAL(error(int,QString))); - connect(m_cameraSession, SIGNAL(captureModeChanged(QCamera::CaptureModes)), - this, SIGNAL(captureModeChanged(QCamera::CaptureModes))); - m_recalculateTimer = new QTimer(this); m_recalculateTimer->setInterval(1000); m_recalculateTimer->setSingleShot(true); @@ -76,21 +73,6 @@ QAndroidCameraControl::~QAndroidCameraControl() delete m_renderer; } -QCamera::CaptureModes QAndroidCameraControl::captureMode() const -{ - return m_cameraSession->captureMode(); -} - -void QAndroidCameraControl::setCaptureMode(QCamera::CaptureModes mode) -{ - m_cameraSession->setCaptureMode(mode); -} - -bool QAndroidCameraControl::isCaptureModeSupported(QCamera::CaptureModes mode) const -{ - return m_cameraSession->isCaptureModeSupported(mode); -} - void QAndroidCameraControl::setState(QCamera::State state) { m_cameraSession->setState(state); @@ -125,7 +107,6 @@ bool QAndroidCameraControl::canChangeProperty(PropertyChangeType changeType, QCa Q_UNUSED(status); switch (changeType) { - case QCameraControl::CaptureMode: case QCameraControl::ImageEncodingSettings: case QCameraControl::VideoEncodingSettings: case QCameraControl::Viewfinder: diff --git a/src/multimedia/platform/android/mediacapture/qandroidcameracontrol_p.h b/src/multimedia/platform/android/mediacapture/qandroidcameracontrol_p.h index 6118d0fa8..f6f0d2fe7 100644 --- a/src/multimedia/platform/android/mediacapture/qandroidcameracontrol_p.h +++ b/src/multimedia/platform/android/mediacapture/qandroidcameracontrol_p.h @@ -73,10 +73,6 @@ public: void setCamera(const QCameraInfo &camera) override; - QCamera::CaptureModes captureMode() const override; - void setCaptureMode(QCamera::CaptureModes mode) override; - bool isCaptureModeSupported(QCamera::CaptureModes mode) const override; - bool canChangeProperty(PropertyChangeType changeType, QCamera::Status status) const override; QCameraFocusControl *focusControl() override; diff --git a/src/multimedia/platform/android/mediacapture/qandroidcamerafocuscontrol.cpp b/src/multimedia/platform/android/mediacapture/qandroidcamerafocuscontrol.cpp index b1805ff15..452784937 100644 --- a/src/multimedia/platform/android/mediacapture/qandroidcamerafocuscontrol.cpp +++ b/src/multimedia/platform/android/mediacapture/qandroidcamerafocuscontrol.cpp @@ -70,8 +70,6 @@ QAndroidCameraFocusControl::QAndroidCameraFocusControl(QAndroidCameraSession *se { connect(m_session, SIGNAL(opened()), this, SLOT(onCameraOpened())); - connect(m_session, SIGNAL(captureModeChanged(QCamera::CaptureModes)), - this, SLOT(onCameraCaptureModeChanged())); } QCameraFocus::FocusModes QAndroidCameraFocusControl::focusMode() const @@ -98,8 +96,7 @@ void QAndroidCameraFocusControl::setFocusMode(QCameraFocus::FocusModes mode) } else if (mode.testFlag(QCameraFocus::MacroFocus)) { focusMode = QLatin1String("macro"); } else if (mode.testFlag(QCameraFocus::ContinuousFocus)) { - if ((m_session->captureMode().testFlag(QCamera::CaptureVideo) && m_continuousVideoFocusSupported) - || !m_continuousPictureFocusSupported) { + if (1) { // ###? focusMode = QLatin1String("continuous-video"); } else { focusMode = QLatin1String("continuous-picture"); @@ -297,17 +294,17 @@ void QAndroidCameraFocusControl::onViewportSizeChanged() void QAndroidCameraFocusControl::onCameraCaptureModeChanged() { - if (m_session->camera() && m_focusMode == QCameraFocus::ContinuousFocus) { - QString focusMode; - if ((m_session->captureMode().testFlag(QCamera::CaptureVideo) && m_continuousVideoFocusSupported) - || !m_continuousPictureFocusSupported) { - focusMode = QLatin1String("continuous-video"); - } else { - focusMode = QLatin1String("continuous-picture"); - } - m_session->camera()->setFocusMode(focusMode); - m_session->camera()->cancelAutoFocus(); - } +// if (m_session->camera() && m_focusMode == QCameraFocus::ContinuousFocus) { +// QString focusMode; +// if ((m_session->captureMode().testFlag(QCamera::CaptureVideo) && m_continuousVideoFocusSupported) +// || !m_continuousPictureFocusSupported) { +// focusMode = QLatin1String("continuous-video"); +// } else { +// focusMode = QLatin1String("continuous-picture"); +// } +// m_session->camera()->setFocusMode(focusMode); +// m_session->camera()->cancelAutoFocus(); +// } } void QAndroidCameraFocusControl::onAutoFocusStarted() diff --git a/src/multimedia/platform/android/mediacapture/qandroidcamerasession.cpp b/src/multimedia/platform/android/mediacapture/qandroidcamerasession.cpp index a9d5b32e6..47d347c80 100644 --- a/src/multimedia/platform/android/mediacapture/qandroidcamerasession.cpp +++ b/src/multimedia/platform/android/mediacapture/qandroidcamerasession.cpp @@ -68,7 +68,6 @@ QAndroidCameraSession::QAndroidCameraSession(QObject *parent) , m_camera(0) , m_nativeOrientation(0) , m_videoOutput(0) - , m_captureMode(QCamera::CaptureStillImage) , m_state(QCamera::UnloadedState) , m_savedState(-1) , m_status(QCamera::UnloadedStatus) @@ -104,25 +103,17 @@ QAndroidCameraSession::~QAndroidCameraSession() close(); } -void QAndroidCameraSession::setCaptureMode(QCamera::CaptureModes mode) -{ - if (m_captureMode == mode || !isCaptureModeSupported(mode)) - return; +//void QAndroidCameraSession::setCaptureMode(QCamera::CaptureModes mode) +//{ +// if (m_captureMode == mode || !isCaptureModeSupported(mode)) +// return; - m_captureMode = mode; - emit captureModeChanged(m_captureMode); +// m_captureMode = mode; +// emit captureModeChanged(m_captureMode); - if (m_previewStarted && m_captureMode.testFlag(QCamera::CaptureStillImage)) - applyResolution(m_actualImageSettings.resolution()); -} - -bool QAndroidCameraSession::isCaptureModeSupported(QCamera::CaptureModes mode) const -{ - if (mode & (QCamera::CaptureStillImage & QCamera::CaptureVideo)) - return false; - - return true; -} +// if (m_previewStarted && m_captureMode.testFlag(QCamera::CaptureStillImage)) +// applyResolution(m_actualImageSettings.resolution()); +//} void QAndroidCameraSession::setState(QCamera::State state) { @@ -278,8 +269,7 @@ void QAndroidCameraSession::applyResolution(const QSize &captureSize, bool resta // -- adjust resolution QSize adjustedViewfinderResolution; const bool validCaptureSize = captureSize.width() > 0 && captureSize.height() > 0; - if (m_captureMode.testFlag(QCamera::CaptureVideo) - && validCaptureSize + if (validCaptureSize && m_camera->getPreferredPreviewSizeForVideo().isEmpty()) { // According to the Android doc, if getPreferredPreviewSizeForVideo() returns null, it means // the preview size cannot be different from the capture size @@ -427,8 +417,7 @@ bool QAndroidCameraSession::startPreview() emit statusChanged(m_status); applyImageSettings(); - if (m_captureMode.testFlag(QCamera::CaptureStillImage)) - applyResolution(m_actualImageSettings.resolution()); + applyResolution(m_actualImageSettings.resolution()); AndroidMultimediaUtils::enableOrientationListener(true); @@ -474,7 +463,7 @@ void QAndroidCameraSession::setImageSettings(const QImageEncoderSettings &settin applyImageSettings(); - if (m_readyForCapture && m_captureMode.testFlag(QCamera::CaptureStillImage)) + if (m_readyForCapture) applyResolution(m_actualImageSettings.resolution()); } diff --git a/src/multimedia/platform/android/mediacapture/qandroidcamerasession_p.h b/src/multimedia/platform/android/mediacapture/qandroidcamerasession_p.h index c2278434b..5a3436feb 100644 --- a/src/multimedia/platform/android/mediacapture/qandroidcamerasession_p.h +++ b/src/multimedia/platform/android/mediacapture/qandroidcamerasession_p.h @@ -84,10 +84,6 @@ public: QCamera::Status status() const { return m_status; } - QCamera::CaptureModes captureMode() const { return m_captureMode; } - void setCaptureMode(QCamera::CaptureModes mode); - bool isCaptureModeSupported(QCamera::CaptureModes mode) const; - void applyResolution(const QSize &captureSize = QSize(), bool restartPreview = true); QAndroidVideoOutput *videoOutput() const { return m_videoOutput; } @@ -128,7 +124,6 @@ Q_SIGNALS: void statusChanged(QCamera::Status status); void stateChanged(QCamera::State); void error(int error, const QString &errorString); - void captureModeChanged(QCamera::CaptureModes); void opened(); void captureDestinationChanged(QCameraImageCapture::CaptureDestinations destination); @@ -183,7 +178,6 @@ private: int m_nativeOrientation; QAndroidVideoOutput *m_videoOutput; - QCamera::CaptureModes m_captureMode; QCamera::State m_state; int m_savedState; QCamera::Status m_status; diff --git a/src/multimedia/platform/android/mediacapture/qandroidcapturesession.cpp b/src/multimedia/platform/android/mediacapture/qandroidcapturesession.cpp index 5be3f6cfe..e534f0e80 100644 --- a/src/multimedia/platform/android/mediacapture/qandroidcapturesession.cpp +++ b/src/multimedia/platform/android/mediacapture/qandroidcapturesession.cpp @@ -92,13 +92,6 @@ QAndroidCaptureSession::QAndroidCaptureSession(QAndroidCameraSession *cameraSess if (status == QCamera::LoadingStatus) setStatus(QMediaRecorder::LoadingStatus); }); - connect(cameraSession, &QAndroidCameraSession::captureModeChanged, this, - [this](QCamera::CaptureModes mode) { - if (!mode.testFlag(QCamera::CaptureVideo)) { - setState(QMediaRecorder::StoppedState); - setStatus(QMediaRecorder::UnloadedStatus); - } - }); connect(cameraSession, &QAndroidCameraSession::readyForCaptureChanged, this, [this](bool ready) { if (ready) diff --git a/src/multimedia/platform/darwin/camera/avfcameracontrol.mm b/src/multimedia/platform/darwin/camera/avfcameracontrol.mm index b4cc9116a..7059588da 100644 --- a/src/multimedia/platform/darwin/camera/avfcameracontrol.mm +++ b/src/multimedia/platform/darwin/camera/avfcameracontrol.mm @@ -55,11 +55,9 @@ AVFCameraControl::AVFCameraControl(AVFCameraService *service, QObject *parent) , m_service(service) , m_state(QCamera::UnloadedState) , m_lastStatus(QCamera::UnloadedStatus) - , m_captureMode(QCamera::CaptureStillImage) { Q_UNUSED(service); connect(m_session, SIGNAL(stateChanged(QCamera::State)), SLOT(updateStatus())); - connect(this, &AVFCameraControl::captureModeChanged, m_session, &AVFCameraSession::onCaptureModeChanged); } AVFCameraControl::~AVFCameraControl() @@ -109,30 +107,6 @@ void AVFCameraControl::updateStatus() } } -QCamera::CaptureModes AVFCameraControl::captureMode() const -{ - return m_captureMode; -} - -void AVFCameraControl::setCaptureMode(QCamera::CaptureModes mode) -{ - if (m_captureMode == mode) - return; - - m_captureMode = mode; - Q_EMIT captureModeChanged(mode); -} - -bool AVFCameraControl::isCaptureModeSupported(QCamera::CaptureModes /*mode*/) const -{ - return true; -} - -void AVFCameraControl::setVideoSurface(QAbstractVideoSurface *surface) -{ - m_session->setVideoSurface(surface); -} - bool AVFCameraControl::canChangeProperty(QCameraControl::PropertyChangeType changeType, QCamera::Status status) const { Q_UNUSED(changeType); @@ -209,6 +183,11 @@ bool AVFCameraControl::CVPixelFormatFromQtFormat(QVideoFrame::PixelFormat qtForm return true; } +void AVFCameraControl::setVideoSurface(QAbstractVideoSurface *surface) +{ + m_session->setVideoSurface(surface); +} + AVCaptureConnection *AVFCameraControl::videoConnection() const { if (!m_session->videoOutput() || !m_session->videoOutput()->videoDataOutput()) diff --git a/src/multimedia/platform/darwin/camera/avfcameracontrol_p.h b/src/multimedia/platform/darwin/camera/avfcameracontrol_p.h index 423afa724..5f9aff0d6 100644 --- a/src/multimedia/platform/darwin/camera/avfcameracontrol_p.h +++ b/src/multimedia/platform/darwin/camera/avfcameracontrol_p.h @@ -76,10 +76,6 @@ public: void setCamera(const QCameraInfo &camera) override; - QCamera::CaptureModes captureMode() const override; - void setCaptureMode(QCamera::CaptureModes) override; - bool isCaptureModeSupported(QCamera::CaptureModes mode) const override; - bool canChangeProperty(PropertyChangeType changeType, QCamera::Status status) const override; QCameraFocusControl *focusControl() override; @@ -104,7 +100,6 @@ private: QCamera::State m_state; QCamera::Status m_lastStatus; - QCamera::CaptureModes m_captureMode; }; QT_END_NAMESPACE diff --git a/src/multimedia/platform/darwin/camera/avfcamerasession.mm b/src/multimedia/platform/darwin/camera/avfcamerasession.mm index 1d76e672e..f6772c5d1 100644 --- a/src/multimedia/platform/darwin/camera/avfcamerasession.mm +++ b/src/multimedia/platform/darwin/camera/avfcamerasession.mm @@ -295,14 +295,14 @@ void AVFCameraSession::processSessionStopped() } } -void AVFCameraSession::onCaptureModeChanged(QCamera::CaptureModes mode) -{ - Q_UNUSED(mode); - - const QCamera::State s = state(); - if (s == QCamera::LoadedState || s == QCamera::ActiveState) - applyImageEncoderSettings(); -} +//void AVFCameraSession::onCaptureModeChanged(QCamera::CaptureModes mode) +//{ +// Q_UNUSED(mode); + +// const QCamera::State s = state(); +// if (s == QCamera::LoadedState || s == QCamera::ActiveState) +// applyImageEncoderSettings(); +//} AVCaptureDevice *AVFCameraSession::createCaptureDevice() { diff --git a/src/multimedia/platform/darwin/camera/avfcamerasession_p.h b/src/multimedia/platform/darwin/camera/avfcamerasession_p.h index 0ca3c01f1..b31c04bab 100644 --- a/src/multimedia/platform/darwin/camera/avfcamerasession_p.h +++ b/src/multimedia/platform/darwin/camera/avfcamerasession_p.h @@ -100,8 +100,6 @@ public Q_SLOTS: void processSessionStarted(); void processSessionStopped(); - void onCaptureModeChanged(QCamera::CaptureModes mode); - Q_SIGNALS: void readyToConfigureConnections(); void stateChanged(QCamera::State newState); diff --git a/src/multimedia/platform/darwin/camera/avfimagecapturecontrol.mm b/src/multimedia/platform/darwin/camera/avfimagecapturecontrol.mm index 3ff4a4eb9..27394a2f1 100644 --- a/src/multimedia/platform/darwin/camera/avfimagecapturecontrol.mm +++ b/src/multimedia/platform/darwin/camera/avfimagecapturecontrol.mm @@ -69,11 +69,9 @@ AVFImageCaptureControl::AVFImageCaptureControl(AVFCameraService *service, QObjec [m_stillImageOutput setOutputSettings:outputSettings]; [outputSettings release]; - connect(m_cameraControl, SIGNAL(captureModeChanged(QCamera::CaptureModes)), SLOT(updateReadyStatus())); connect(m_cameraControl, SIGNAL(statusChanged(QCamera::Status)), SLOT(updateReadyStatus())); connect(m_session, SIGNAL(readyToConfigureConnections()), SLOT(updateCaptureConnection())); - connect(m_cameraControl, SIGNAL(captureModeChanged(QCamera::CaptureModes)), SLOT(updateCaptureConnection())); connect(m_session, &AVFCameraSession::newViewfinderFrame, this, &AVFImageCaptureControl::onNewViewfinderFrame, @@ -86,9 +84,7 @@ AVFImageCaptureControl::~AVFImageCaptureControl() bool AVFImageCaptureControl::isReadyForCapture() const { - return m_videoConnection && - m_cameraControl->captureMode().testFlag(QCamera::CaptureStillImage) && - m_cameraControl->status() == QCamera::ActiveStatus; + return m_videoConnection && m_cameraControl->status() == QCamera::ActiveStatus; } void AVFImageCaptureControl::updateReadyStatus() @@ -116,7 +112,7 @@ int AVFImageCaptureControl::capture(const QString &fileName) QString actualFileName; if (destination & QCameraImageCapture::CaptureToFile) { actualFileName = m_storageLocation.generateFileName(fileName, - QCamera::CaptureStillImage, + AVFStorageLocation::Image, QLatin1String("img_"), QLatin1String("jpg")); @@ -256,8 +252,7 @@ void AVFImageCaptureControl::setCaptureDestination(QCameraImageCapture::CaptureD void AVFImageCaptureControl::updateCaptureConnection() { - if (m_session->videoCaptureDevice() - && m_cameraControl->captureMode().testFlag(QCamera::CaptureStillImage)) { + if (m_session->videoCaptureDevice()) { qDebugCamera() << Q_FUNC_INFO; AVCaptureSession *captureSession = m_session->captureSession(); @@ -327,10 +322,8 @@ bool AVFImageCaptureControl::applySettings() AVFCameraSession *session = m_service->session(); if (!session || (session->state() != QCamera::ActiveState - && session->state() != QCamera::LoadedState) - || !m_service->cameraControl()->captureMode().testFlag(QCamera::CaptureStillImage)) { + && session->state() != QCamera::LoadedState)) return false; - } if (!m_service->imageCaptureControl() || !m_service->imageCaptureControl()->stillImageOutput()) { diff --git a/src/multimedia/platform/darwin/camera/avfmediarecordercontrol.mm b/src/multimedia/platform/darwin/camera/avfmediarecordercontrol.mm index e39161cfd..55938780d 100644 --- a/src/multimedia/platform/darwin/camera/avfmediarecordercontrol.mm +++ b/src/multimedia/platform/darwin/camera/avfmediarecordercontrol.mm @@ -147,7 +147,6 @@ AVFMediaRecorderControl::AVFMediaRecorderControl(AVFCameraService *service, QObj connect(m_cameraControl, SIGNAL(stateChanged(QCamera::State)), SLOT(updateStatus())); connect(m_cameraControl, SIGNAL(statusChanged(QCamera::Status)), SLOT(updateStatus())); - connect(m_cameraControl, SIGNAL(captureModeChanged(QCamera::CaptureModes)), SLOT(setupSessionForCapture())); connect(m_session, SIGNAL(readyToConfigureConnections()), SLOT(setupSessionForCapture())); connect(m_session, SIGNAL(stateChanged(QCamera::State)), SLOT(setupSessionForCapture())); } @@ -466,10 +465,8 @@ NSDictionary *avfVideoSettings(QMediaEncoderSettings &encoderSettings, AVCapture void AVFMediaRecorderControl::applySettings() { if (m_state != QMediaRecorder::StoppedState - || (m_session->state() != QCamera::ActiveState && m_session->state() != QCamera::LoadedState) - || !m_service->cameraControl()->captureMode().testFlag(QCamera::CaptureVideo)) { + || (m_session->state() != QCamera::ActiveState && m_session->state() != QCamera::LoadedState)) return; - } QMediaEncoderSettings resolved = m_settings; resolved.resolveFormat(); @@ -550,7 +547,7 @@ void AVFMediaRecorderControl::setState(QMediaRecorder::State state) QUrl actualLocation = QUrl::fromLocalFile( m_storageLocation.generateFileName(outputLocationPath, - QCamera::CaptureVideo, + AVFStorageLocation::Video, QLatin1String("clip_"), extension)); @@ -644,9 +641,7 @@ void AVFMediaRecorderControl::setupSessionForCapture() // request on iOS, but it shoudn't do so until we actually try to record. AVCaptureSession *captureSession = m_session->captureSession(); - if (!m_connected - && m_cameraControl->captureMode().testFlag(QCamera::CaptureVideo) - && m_session->state() != QCamera::UnloadedState) { + if (!m_connected && m_session->state() != QCamera::UnloadedState) { // Lock the video capture device to make sure the active format is not reset const AVFConfigurationLock lock(m_session->videoCaptureDevice()); @@ -678,9 +673,7 @@ void AVFMediaRecorderControl::setupSessionForCapture() Q_EMIT error(QMediaRecorder::ResourceError, tr("Could not connect the video recorder")); qWarning() << "Could not connect the video recorder"; } - } else if (m_connected - && (!m_cameraControl->captureMode().testFlag(QCamera::CaptureVideo) - || m_session->state() == QCamera::UnloadedState)) { + } else if (m_connected || m_session->state() == QCamera::UnloadedState) { // Lock the video capture device to make sure the active format is not reset const AVFConfigurationLock lock(m_session->videoCaptureDevice()); diff --git a/src/multimedia/platform/darwin/camera/avfmediarecordercontrol_ios.mm b/src/multimedia/platform/darwin/camera/avfmediarecordercontrol_ios.mm index 22989953f..c33b66ad0 100644 --- a/src/multimedia/platform/darwin/camera/avfmediarecordercontrol_ios.mm +++ b/src/multimedia/platform/darwin/camera/avfmediarecordercontrol_ios.mm @@ -231,7 +231,7 @@ void AVFMediaRecorderControlIOS::setState(QMediaRecorder::State state) const QString path(m_outputLocation.scheme() == QLatin1String("file") ? m_outputLocation.path() : m_outputLocation.toString()); - const QUrl fileURL(QUrl::fromLocalFile(m_storageLocation.generateFileName(path, QCamera::CaptureVideo, + const QUrl fileURL(QUrl::fromLocalFile(m_storageLocation.generateFileName(path, AVFStorageLocation::Video, QLatin1String("clip_"), m_service->mediaContainerControl()->containerFormat()))); @@ -356,27 +356,6 @@ void AVFMediaRecorderControlIOS::assetWriterFinished() Q_EMIT stateChanged(m_state); } -void AVFMediaRecorderControlIOS::captureModeChanged(QCamera::CaptureModes newMode) -{ - AVFCameraControl *cameraControl = m_service->cameraControl(); - Q_ASSERT(cameraControl); - - const QMediaRecorder::Status lastStatus = m_lastStatus; - - if (newMode & QCamera::CaptureVideo) { - if (cameraControl->status() == QCamera::ActiveStatus) - m_lastStatus = QMediaRecorder::LoadedStatus; - } else { - if (m_lastStatus == QMediaRecorder::RecordingStatus) - return stopWriter(); - else - m_lastStatus = QMediaRecorder::UnloadedStatus; - } - - if (m_lastStatus != lastStatus) - Q_EMIT statusChanged(m_lastStatus); -} - void AVFMediaRecorderControlIOS::cameraStatusChanged(QCamera::Status newStatus) { AVFCameraControl *cameraControl = m_service->cameraControl(); diff --git a/src/multimedia/platform/darwin/camera/avfmediarecordercontrol_ios_p.h b/src/multimedia/platform/darwin/camera/avfmediarecordercontrol_ios_p.h index 178c75cad..f550e59c2 100644 --- a/src/multimedia/platform/darwin/camera/avfmediarecordercontrol_ios_p.h +++ b/src/multimedia/platform/darwin/camera/avfmediarecordercontrol_ios_p.h @@ -101,7 +101,6 @@ private: Q_INVOKABLE void assetWriterFinished(); private Q_SLOTS: - void captureModeChanged(QCamera::CaptureModes); void cameraStatusChanged(QCamera::Status newStatus); private: diff --git a/src/multimedia/platform/darwin/camera/avfstoragelocation.mm b/src/multimedia/platform/darwin/camera/avfstoragelocation.mm index 46671e938..f2c223c82 100644 --- a/src/multimedia/platform/darwin/camera/avfstoragelocation.mm +++ b/src/multimedia/platform/darwin/camera/avfstoragelocation.mm @@ -59,7 +59,7 @@ AVFStorageLocation::~AVFStorageLocation() * or specify the full actual path. */ QString AVFStorageLocation::generateFileName(const QString &requestedName, - QCamera::CaptureMode mode, + Mode mode, const QString &prefix, const QString &ext) const { @@ -72,11 +72,11 @@ QString AVFStorageLocation::generateFileName(const QString &requestedName, return requestedName; } -QDir AVFStorageLocation::defaultDir(QCamera::CaptureMode mode) const +QDir AVFStorageLocation::defaultDir(Mode mode) const { QStringList dirCandidates; - if (mode == QCamera::CaptureVideo) { + if (mode == Video) { dirCandidates << QStandardPaths::writableLocation(QStandardPaths::MoviesLocation); } else { dirCandidates << QStandardPaths::writableLocation(QStandardPaths::PicturesLocation); diff --git a/src/multimedia/platform/darwin/camera/avfstoragelocation_p.h b/src/multimedia/platform/darwin/camera/avfstoragelocation_p.h index 8794f0fae..25221f68c 100644 --- a/src/multimedia/platform/darwin/camera/avfstoragelocation_p.h +++ b/src/multimedia/platform/darwin/camera/avfstoragelocation_p.h @@ -64,13 +64,18 @@ public: AVFStorageLocation(); ~AVFStorageLocation(); + enum Mode { + Image, + Video + }; + QString generateFileName(const QString &requestedName, - QCamera::CaptureMode mode, + Mode mode, const QString &prefix, const QString &ext) const; - QDir defaultDir(QCamera::CaptureMode mode) const; + QDir defaultDir(Mode mode) const; QString generateFileName(const QString &prefix, const QDir &dir, const QString &ext) const; private: diff --git a/src/multimedia/platform/gstreamer/camerabin/camerabincontrol.cpp b/src/multimedia/platform/gstreamer/camerabin/camerabincontrol.cpp index 0b7b014f5..31ae1f6dd 100644 --- a/src/multimedia/platform/gstreamer/camerabin/camerabincontrol.cpp +++ b/src/multimedia/platform/gstreamer/camerabin/camerabincontrol.cpp @@ -83,25 +83,6 @@ CameraBinControl::~CameraBinControl() { } -QCamera::CaptureModes CameraBinControl::captureMode() const -{ - return m_session->captureMode(); -} - -void CameraBinControl::setCaptureMode(QCamera::CaptureModes mode) -{ - if (m_session->captureMode() != mode) { - m_session->setCaptureMode(mode); - - emit captureModeChanged(mode); - } -} - -bool CameraBinControl::isCaptureModeSupported(QCamera::CaptureModes mode) const -{ - return mode == QCamera::CaptureStillImage || mode == QCamera::CaptureVideo; -} - void CameraBinControl::setState(QCamera::State state) { #ifdef CAMEABIN_DEBUG diff --git a/src/multimedia/platform/gstreamer/camerabin/camerabincontrol_p.h b/src/multimedia/platform/gstreamer/camerabin/camerabincontrol_p.h index 0ea4ee73e..cbee17cf3 100644 --- a/src/multimedia/platform/gstreamer/camerabin/camerabincontrol_p.h +++ b/src/multimedia/platform/gstreamer/camerabin/camerabincontrol_p.h @@ -76,10 +76,6 @@ public: void setCamera(const QCameraInfo &camera) override; - QCamera::CaptureModes captureMode() const override; - void setCaptureMode(QCamera::CaptureModes mode) override; - - bool isCaptureModeSupported(QCamera::CaptureModes mode) const override; bool canChangeProperty(PropertyChangeType changeType, QCamera::Status status) const override; bool viewfinderColorSpaceConversion() const; diff --git a/src/multimedia/platform/gstreamer/mediacapture/qgstreamercameracontrol.cpp b/src/multimedia/platform/gstreamer/mediacapture/qgstreamercameracontrol.cpp index abee759e9..332bd0606 100644 --- a/src/multimedia/platform/gstreamer/mediacapture/qgstreamercameracontrol.cpp +++ b/src/multimedia/platform/gstreamer/mediacapture/qgstreamercameracontrol.cpp @@ -49,7 +49,6 @@ QGstreamerCameraControl::QGstreamerCameraControl(QGstreamerCaptureSession *session) :QCameraControl(session), - m_captureMode(QCamera::CaptureStillImage), m_session(session), m_state(QCamera::UnloadedState), m_status(QCamera::UnloadedStatus), @@ -66,43 +65,13 @@ QGstreamerCameraControl::QGstreamerCameraControl(QGstreamerCaptureSession *sessi connect(m_session, SIGNAL(readyChanged(bool)), SLOT(reloadLater())); - m_session->setCaptureMode(QGstreamerCaptureSession::Image); + m_session->setCaptureMode(QGstreamerCaptureSession::AudioAndVideoAndImage); } QGstreamerCameraControl::~QGstreamerCameraControl() { } -void QGstreamerCameraControl::setCaptureMode(QCamera::CaptureModes mode) -{ - if (m_captureMode == mode || !isCaptureModeSupported(mode)) - return; - - m_captureMode = mode; - - switch (mode) { - case QCamera::CaptureStillImage: - m_session->setCaptureMode(QGstreamerCaptureSession::Image); - break; - case QCamera::CaptureVideo: - m_session->setCaptureMode(QGstreamerCaptureSession::AudioAndVideo); - break; - case QCamera::CaptureVideo | QCamera::CaptureStillImage: - m_session->setCaptureMode(QGstreamerCaptureSession::AudioAndVideoAndImage); - break; - } - - emit captureModeChanged(mode); - updateStatus(); - reloadLater(); -} - -bool QGstreamerCameraControl::isCaptureModeSupported(QCamera::CaptureModes mode) const -{ - //only CaptureStillImage and CaptureVideo bits are allowed - return (mode & (QCamera::CaptureStillImage | QCamera::CaptureVideo)) == mode; -} - void QGstreamerCameraControl::setState(QCamera::State state) { if (m_state == state) @@ -192,7 +161,6 @@ bool QGstreamerCameraControl::canChangeProperty(PropertyChangeType changeType, Q Q_UNUSED(status); switch (changeType) { - case QCameraControl::CaptureMode: case QCameraControl::ImageEncodingSettings: case QCameraControl::VideoEncodingSettings: case QCameraControl::Viewfinder: diff --git a/src/multimedia/platform/gstreamer/mediacapture/qgstreamercameracontrol_p.h b/src/multimedia/platform/gstreamer/mediacapture/qgstreamercameracontrol_p.h index 43a3d3adc..2fd67af85 100644 --- a/src/multimedia/platform/gstreamer/mediacapture/qgstreamercameracontrol_p.h +++ b/src/multimedia/platform/gstreamer/mediacapture/qgstreamercameracontrol_p.h @@ -74,11 +74,6 @@ public: void setCamera(const QCameraInfo &camera) override; - QCamera::CaptureModes captureMode() const override { return m_captureMode; } - void setCaptureMode(QCamera::CaptureModes mode) override; - - bool isCaptureModeSupported(QCamera::CaptureModes mode) const override; - bool canChangeProperty(PropertyChangeType changeType, QCamera::Status status) const override; void setVideoSurface(QAbstractVideoSurface *surface) override; @@ -92,7 +87,6 @@ private slots: private: - QCamera::CaptureModes m_captureMode; QGstreamerCaptureSession *m_session; QCamera::State m_state; QCamera::Status m_status; diff --git a/src/multimedia/recording/qmediarecorder.cpp b/src/multimedia/recording/qmediarecorder.cpp index 50b77ab94..8b1b27bec 100644 --- a/src/multimedia/recording/qmediarecorder.cpp +++ b/src/multimedia/recording/qmediarecorder.cpp @@ -158,7 +158,7 @@ void QMediaRecorderPrivate::restartCamera() { //restart camera if it can't apply new settings in the Active state QCamera *camera = qobject_cast<QCamera*>(mediaSource); - if (camera && camera->captureMode() == QCamera::CaptureVideo) { + if (camera) { QMetaObject::invokeMethod(camera, "_q_preparePropertyChange", Qt::DirectConnection, diff --git a/tests/auto/integration/qcamerabackend/tst_qcamerabackend.cpp b/tests/auto/integration/qcamerabackend/tst_qcamerabackend.cpp index 28390cab8..8fe80e4dd 100644 --- a/tests/auto/integration/qcamerabackend/tst_qcamerabackend.cpp +++ b/tests/auto/integration/qcamerabackend/tst_qcamerabackend.cpp @@ -70,7 +70,6 @@ private slots: void testCameraStates(); void testCameraStartError(); - void testCaptureMode(); void testCameraCapture(); void testCaptureToBuffer(); void testCameraCaptureMetadata(); @@ -225,82 +224,6 @@ void tst_QCameraBackend::testCameraStartError() QCOMPARE(errorSpy2.count(), 1); } -void tst_QCameraBackend::testCaptureMode() -{ - QCamera camera; - - QSignalSpy errorSignal(&camera, SIGNAL(errorOccurred(QCamera::Error))); - QSignalSpy stateChangedSignal(&camera, SIGNAL(stateChanged(QCamera::State))); - QSignalSpy captureModeSignal(&camera, SIGNAL(captureModeChanged(QCamera::CaptureModes))); - - QCOMPARE(camera.captureMode(), QCamera::CaptureStillImage); - - if (!camera.isCaptureModeSupported(QCamera::CaptureVideo)) { - camera.setCaptureMode(QCamera::CaptureVideo); - QCOMPARE(camera.captureMode(), QCamera::CaptureStillImage); - QSKIP("Video capture not supported"); - } - - camera.setCaptureMode(QCamera::CaptureVideo); - QCOMPARE(camera.captureMode(), QCamera::CaptureVideo); - QTRY_COMPARE(captureModeSignal.size(), 1); - QCOMPARE(captureModeSignal.last().first().value<QCamera::CaptureModes>(), QCamera::CaptureVideo); - captureModeSignal.clear(); - - camera.load(); - QTRY_COMPARE(camera.status(), QCamera::LoadedStatus); - //capture mode should still be video - QCOMPARE(camera.captureMode(), QCamera::CaptureVideo); - - //it should be possible to switch capture mode in Loaded state - camera.setCaptureMode(QCamera::CaptureStillImage); - QTRY_COMPARE(captureModeSignal.size(), 1); - QCOMPARE(captureModeSignal.last().first().value<QCamera::CaptureModes>(), QCamera::CaptureStillImage); - captureModeSignal.clear(); - - camera.setCaptureMode(QCamera::CaptureVideo); - QTRY_COMPARE(captureModeSignal.size(), 1); - QCOMPARE(captureModeSignal.last().first().value<QCamera::CaptureModes>(), QCamera::CaptureVideo); - captureModeSignal.clear(); - - camera.start(); - QTRY_COMPARE(camera.status(), QCamera::ActiveStatus); - //capture mode should still be video - QCOMPARE(camera.captureMode(), QCamera::CaptureVideo); - - stateChangedSignal.clear(); - //it should be possible to switch capture mode in Active state - camera.setCaptureMode(QCamera::CaptureStillImage); - //camera may leave Active status, but should return to Active - QTest::qWait(10); //camera may leave Active status async - QTRY_COMPARE(camera.status(), QCamera::ActiveStatus); - QCOMPARE(camera.captureMode(), QCamera::CaptureStillImage); - QVERIFY2(stateChangedSignal.isEmpty(), "camera should not change the state during capture mode changes"); - - QCOMPARE(captureModeSignal.size(), 1); - QCOMPARE(captureModeSignal.last().first().value<QCamera::CaptureModes>(), QCamera::CaptureStillImage); - captureModeSignal.clear(); - - camera.setCaptureMode(QCamera::CaptureVideo); - //camera may leave Active status, but should return to Active - QTest::qWait(10); //camera may leave Active status async - QTRY_COMPARE(camera.status(), QCamera::ActiveStatus); - QCOMPARE(camera.captureMode(), QCamera::CaptureVideo); - - QVERIFY2(stateChangedSignal.isEmpty(), "camera should not change the state during capture mode changes"); - - QCOMPARE(captureModeSignal.size(), 1); - QCOMPARE(captureModeSignal.last().first().value<QCamera::CaptureModes>(), QCamera::CaptureVideo); - captureModeSignal.clear(); - - camera.stop(); - QCOMPARE(camera.captureMode(), QCamera::CaptureVideo); - camera.unload(); - QCOMPARE(camera.captureMode(), QCamera::CaptureVideo); - - QVERIFY2(errorSignal.isEmpty(), QString("Camera error: %1").arg(camera.errorString()).toLocal8Bit()); -} - void tst_QCameraBackend::testCameraCapture() { QCamera camera; @@ -540,12 +463,6 @@ void tst_QCameraBackend::testVideoRecording() QSignalSpy recorderErrorSignal(&recorder, SIGNAL(error(QMediaRecorder::Error))); QSignalSpy recorderStatusSignal(&recorder, SIGNAL(statusChanged(QMediaRecorder::Status))); - if (!camera->isCaptureModeSupported(QCamera::CaptureVideo)) { - QSKIP("Video capture not supported"); - } - - camera->setCaptureMode(QCamera::CaptureVideo); - QMediaEncoderSettings videoSettings; videoSettings.setVideoResolution(320, 240); recorder.setEncoderSettings(videoSettings); @@ -587,7 +504,6 @@ void tst_QCameraBackend::testVideoRecording() QVERIFY(QFileInfo(fileName).size() > 0); QFile(fileName).remove(); - camera->setCaptureMode(QCamera::CaptureStillImage); QTRY_COMPARE(recorder.status(), QMediaRecorder::UnloadedStatus); QCOMPARE(recorderStatusSignal.last().first().value<QMediaRecorder::Status>(), recorder.status()); } diff --git a/tests/auto/unit/mockbackend/mockcameracontrol.h b/tests/auto/unit/mockbackend/mockcameracontrol.h index 25262e23b..5a3cdd411 100644 --- a/tests/auto/unit/mockbackend/mockcameracontrol.h +++ b/tests/auto/unit/mockbackend/mockcameracontrol.h @@ -41,7 +41,6 @@ public: MockCameraControl(QObject *parent = 0): QCameraControl(parent), m_state(QCamera::UnloadedState), - m_captureMode(QCamera::CaptureStillImage), m_status(QCamera::UnloadedStatus), m_propertyChangesSupported(false) { @@ -75,26 +74,10 @@ public: QCamera::Status status() const { return m_status; } - QCamera::CaptureModes captureMode() const { return m_captureMode; } - void setCaptureMode(QCamera::CaptureModes mode) - { - if (m_captureMode != mode) { - if (m_state == QCamera::ActiveState && !m_propertyChangesSupported) - return; - m_captureMode = mode; - emit captureModeChanged(mode); - } - } - - bool isCaptureModeSupported(QCamera::CaptureModes mode) const - { - return mode == QCamera::CaptureStillImage || mode == QCamera::CaptureVideo; - } - bool canChangeProperty(PropertyChangeType changeType, QCamera::Status status) const { Q_UNUSED(status); - if (changeType == QCameraControl::ImageEncodingSettings && m_captureMode == QCamera::CaptureVideo) + if (changeType == QCameraControl::ImageEncodingSettings) return true; else if (changeType== QCameraControl::VideoEncodingSettings) return true; @@ -123,7 +106,6 @@ public: void setVideoSurface(QAbstractVideoSurface *) {} QCamera::State m_state; - QCamera::CaptureModes m_captureMode; QCamera::Status m_status; QCameraInfo m_camera; bool m_propertyChangesSupported; diff --git a/tests/auto/unit/multimedia/qcamera/tst_qcamera.cpp b/tests/auto/unit/multimedia/qcamera/tst_qcamera.cpp index f280389db..22a94c997 100644 --- a/tests/auto/unit/multimedia/qcamera/tst_qcamera.cpp +++ b/tests/auto/unit/multimedia/qcamera/tst_qcamera.cpp @@ -80,12 +80,8 @@ private slots: void testCaptureDestination(); void testConstructor(); - void testCaptureMode(); - void testIsCaptureModeSupported(); void testQCameraIsAvailable(); void testQCameraIsNotAvailable(); - void testSetCaptureMode(); - void testCaptureModeChangedSignal(); void testErrorSignal(); void testError(); void testErrorString(); @@ -102,7 +98,6 @@ private slots: // Test cases for QCameraControl class. void testCameraControl(); - void testCaptureModeChanged_signal(); void testEnumsOfQCameraControl(); // Test case for QCameraImageProcessing class @@ -723,75 +718,6 @@ void tst_QCamera::testCameraEncodingProperyChange() QCOMPARE(statusChangedSignal.count(), 1); stateChangedSignal.clear(); statusChangedSignal.clear(); - - - camera.setCaptureMode(QCamera::CaptureVideo); - QCOMPARE(camera.state(), QCamera::ActiveState); - QCOMPARE(camera.status(), QCamera::LoadedStatus); - - QCOMPARE(stateChangedSignal.count(), 0); - QCOMPARE(statusChangedSignal.count(), 1); - stateChangedSignal.clear(); - statusChangedSignal.clear(); - - QCOMPARE(camera.state(), QCamera::ActiveState); - QTRY_COMPARE(camera.status(), QCamera::ActiveStatus); - - QCOMPARE(stateChangedSignal.count(), 0); - QCOMPARE(statusChangedSignal.count(), 1); - stateChangedSignal.clear(); - statusChangedSignal.clear(); - - //backens should not be stopped since the capture mode is Video - imageCapture.setEncodingSettings(QImageEncoderSettings()); - QCOMPARE(stateChangedSignal.count(), 0); - QCOMPARE(statusChangedSignal.count(), 0); - - camera.setCaptureMode(QCamera::CaptureStillImage); - - QCOMPARE(camera.state(), QCamera::ActiveState); - QTRY_COMPARE(camera.status(), QCamera::ActiveStatus); - - stateChangedSignal.clear(); - statusChangedSignal.clear(); - - //the settings change should trigger camera stop/start - imageCapture.setEncodingSettings(QImageEncoderSettings()); - QCOMPARE(camera.state(), QCamera::ActiveState); - QCOMPARE(camera.status(), QCamera::LoadedStatus); - - QCOMPARE(stateChangedSignal.count(), 0); - QCOMPARE(statusChangedSignal.count(), 1); - stateChangedSignal.clear(); - statusChangedSignal.clear(); - - QCOMPARE(camera.state(), QCamera::ActiveState); - QTRY_COMPARE(camera.status(), QCamera::ActiveStatus); - - QCOMPARE(stateChangedSignal.count(), 0); - QCOMPARE(statusChangedSignal.count(), 1); - stateChangedSignal.clear(); - statusChangedSignal.clear(); - - //the settings change should trigger camera stop/start only once - camera.setCaptureMode(QCamera::CaptureVideo); - camera.setCaptureMode(QCamera::CaptureStillImage); - imageCapture.setEncodingSettings(QImageEncoderSettings()); - imageCapture.setEncodingSettings(QImageEncoderSettings()); - - QCOMPARE(camera.state(), QCamera::ActiveState); - QCOMPARE(camera.status(), QCamera::LoadedStatus); - - QCOMPARE(stateChangedSignal.count(), 0); - QCOMPARE(statusChangedSignal.count(), 1); - stateChangedSignal.clear(); - statusChangedSignal.clear(); - - QCOMPARE(camera.state(), QCamera::ActiveState); - QTRY_COMPARE(camera.status(), QCamera::ActiveStatus); - - QCOMPARE(stateChangedSignal.count(), 0); - QCOMPARE(statusChangedSignal.count(), 1); } void tst_QCamera::testSetVideoOutput() @@ -871,8 +797,6 @@ void tst_QCamera::testEnumDebug() qDebug() << QCamera::ActiveState; QTest::ignoreMessage(QtDebugMsg, "QCamera::ActiveStatus"); qDebug() << QCamera::ActiveStatus; - QTest::ignoreMessage(QtDebugMsg, "QCamera::CaptureVideo"); - qDebug() << QCamera::CaptureVideo; QTest::ignoreMessage(QtDebugMsg, "QCamera::CameraError"); qDebug() << QCamera::CameraError; QTest::ignoreMessage(QtDebugMsg, "QCameraInfo::FrontFace "); @@ -945,38 +869,6 @@ void tst_QCamera::testConstructor() } } -/* captureModeChanged Signal test case. */ -void tst_QCamera::testCaptureModeChanged_signal() -{ - MockCameraControl *m_cameraControl= new MockCameraControl(this); - QSignalSpy spy(m_cameraControl, SIGNAL(captureModeChanged(QCamera::CaptureModes))); - QVERIFY(spy.size() == 0); - - m_cameraControl->setCaptureMode(QCamera::CaptureVideo); - QVERIFY(spy.size() == 1); - - m_cameraControl->setCaptureMode(QCamera::CaptureStillImage); - QVERIFY(spy.size() == 2); -} - -/* Test case for captureMode */ -void tst_QCamera::testCaptureMode() -{ - QCamera camera; - QVERIFY(camera.captureMode() == QCamera::CaptureStillImage); - - camera.setCaptureMode(QCamera::CaptureVideo); - QVERIFY(camera.captureMode() == QCamera::CaptureVideo); -} - -/* Test case for isCaptureModeSupported */ -void tst_QCamera::testIsCaptureModeSupported() -{ - QCamera camera; - QVERIFY(camera.isCaptureModeSupported(QCamera::CaptureStillImage) == true); - QVERIFY(camera.isCaptureModeSupported(QCamera::CaptureVideo) == true); -} - /* Test case for isAvailable */ void tst_QCamera::testQCameraIsAvailable() { @@ -996,38 +888,6 @@ void tst_QCamera::testQCameraIsNotAvailable() integration->setFlags({}); } -/* Test case for setCaptureMode() */ -void tst_QCamera::testSetCaptureMode() -{ - QCamera camera; - - /* Set the capture mode and verify if it set correctly */ - camera.setCaptureMode(QCamera::CaptureVideo); - QVERIFY(camera.captureMode() == QCamera::CaptureVideo); - - camera.setCaptureMode(QCamera::CaptureStillImage); - QVERIFY(camera.captureMode() == QCamera::CaptureStillImage); -} - -/* Test case for signal captureModeChanged(QCamera::CaptureModes) */ -void tst_QCamera::testCaptureModeChangedSignal() -{ - QCamera camera; - QVERIFY(camera.captureMode() == QCamera::CaptureStillImage); - - qRegisterMetaType<QCamera::CaptureModes>("QCamera::CaptureModes"); - - /* Spy the signal */ - QSignalSpy lockCaptureModeChangedSignal(&camera, SIGNAL(captureModeChanged(QCamera::CaptureModes))); - - /* set the capture mode and Verify if the signal is emitted */ - camera.setCaptureMode(QCamera::CaptureVideo); - QVERIFY(camera.captureMode() == QCamera::CaptureVideo); - QCOMPARE(lockCaptureModeChangedSignal.count(), 1); - QCamera::CaptureModes lockCaptureMode = qvariant_cast<QCamera::CaptureModes >(lockCaptureModeChangedSignal.at(0).at(0)); - QVERIFY(lockCaptureMode == QCamera::CaptureVideo); -} - /* Test case for verifying if error signal generated correctly */ void tst_QCamera::testErrorSignal() { @@ -1130,9 +990,6 @@ void tst_QCamera::testEnumsOfQCameraControl() bool result; // In still mode, can't change much - QVERIFY(m_cameraControl->captureMode() == QCamera::CaptureStillImage); - result = m_cameraControl->canChangeProperty(MockCameraControl::CaptureMode, QCamera::ActiveStatus); - QVERIFY(!result); result = m_cameraControl->canChangeProperty(MockCameraControl::ImageEncodingSettings, QCamera::ActiveStatus); QVERIFY(!result); result = m_cameraControl->canChangeProperty(MockCameraControl::VideoEncodingSettings, QCamera::ActiveStatus); @@ -1141,18 +998,12 @@ void tst_QCamera::testEnumsOfQCameraControl() QVERIFY(!result); // In video mode can change image encoding settings - m_cameraControl->setCaptureMode(QCamera::CaptureVideo); - result = m_cameraControl->canChangeProperty(MockCameraControl::ImageEncodingSettings, QCamera::ActiveStatus); - QVERIFY(result); result = m_cameraControl->canChangeProperty(MockCameraControl::VideoEncodingSettings, QCamera::ActiveStatus); QVERIFY(result); result = m_cameraControl->canChangeProperty(MockCameraControl::Viewfinder, QCamera::ActiveStatus); QVERIFY(!result); // Flip the allow everything bit - m_cameraControl->m_propertyChangesSupported = true; - result = m_cameraControl->canChangeProperty(MockCameraControl::CaptureMode, QCamera::ActiveStatus); - QVERIFY(result); result = m_cameraControl->canChangeProperty(MockCameraControl::ImageEncodingSettings, QCamera::ActiveStatus); QVERIFY(result); result = m_cameraControl->canChangeProperty(MockCameraControl::VideoEncodingSettings, QCamera::ActiveStatus); diff --git a/tests/auto/unit/multimediawidgets/qcamerawidgets/tst_qcamerawidgets.cpp b/tests/auto/unit/multimediawidgets/qcamerawidgets/tst_qcamerawidgets.cpp index f2f310365..a74d0b998 100644 --- a/tests/auto/unit/multimediawidgets/qcamerawidgets/tst_qcamerawidgets.cpp +++ b/tests/auto/unit/multimediawidgets/qcamerawidgets/tst_qcamerawidgets.cpp @@ -109,100 +109,6 @@ void tst_QCameraWidgets::testCameraEncodingProperyChange() QCOMPARE(statusChangedSignal.count(), 1); stateChangedSignal.clear(); statusChangedSignal.clear(); - - - camera.setCaptureMode(QCamera::CaptureVideo); - QCOMPARE(camera.state(), QCamera::ActiveState); - QCOMPARE(camera.status(), QCamera::LoadedStatus); - - QCOMPARE(stateChangedSignal.count(), 0); - QCOMPARE(statusChangedSignal.count(), 1); - stateChangedSignal.clear(); - statusChangedSignal.clear(); - - QCOMPARE(camera.state(), QCamera::ActiveState); - QTRY_COMPARE(camera.status(), QCamera::ActiveStatus); - - QCOMPARE(stateChangedSignal.count(), 0); - QCOMPARE(statusChangedSignal.count(), 1); - stateChangedSignal.clear(); - statusChangedSignal.clear(); - - //backens should not be stopped since the capture mode is Video - imageCapture.setEncodingSettings(QImageEncoderSettings()); - QCOMPARE(stateChangedSignal.count(), 0); - QCOMPARE(statusChangedSignal.count(), 0); - - camera.setCaptureMode(QCamera::CaptureStillImage); - QTRY_COMPARE(camera.status(), QCamera::ActiveStatus); - stateChangedSignal.clear(); - statusChangedSignal.clear(); - - //the settings change should trigger camera stop/start - imageCapture.setEncodingSettings(QImageEncoderSettings()); - QCOMPARE(camera.state(), QCamera::ActiveState); - QCOMPARE(camera.status(), QCamera::LoadedStatus); - - QCOMPARE(stateChangedSignal.count(), 0); - QCOMPARE(statusChangedSignal.count(), 1); - stateChangedSignal.clear(); - statusChangedSignal.clear(); - - QCOMPARE(camera.state(), QCamera::ActiveState); - QTRY_COMPARE(camera.status(), QCamera::ActiveStatus); - - QCOMPARE(stateChangedSignal.count(), 0); - QCOMPARE(statusChangedSignal.count(), 1); - stateChangedSignal.clear(); - statusChangedSignal.clear(); - - //the settings change should trigger camera stop/start only once - camera.setCaptureMode(QCamera::CaptureVideo); - camera.setCaptureMode(QCamera::CaptureStillImage); - imageCapture.setEncodingSettings(QImageEncoderSettings()); - imageCapture.setEncodingSettings(QImageEncoderSettings()); - - QCOMPARE(camera.state(), QCamera::ActiveState); - QCOMPARE(camera.status(), QCamera::LoadedStatus); - - QCOMPARE(stateChangedSignal.count(), 0); - QCOMPARE(statusChangedSignal.count(), 1); - stateChangedSignal.clear(); - statusChangedSignal.clear(); - - QCOMPARE(camera.state(), QCamera::ActiveState); - QTRY_COMPARE(camera.status(), QCamera::ActiveStatus); - - QCOMPARE(stateChangedSignal.count(), 0); - QCOMPARE(statusChangedSignal.count(), 1); - stateChangedSignal.clear(); - statusChangedSignal.clear(); - - //setting the viewfinder should also trigger backend to be restarted: - camera.setViewfinder(new QGraphicsVideoItem()); - QCOMPARE(camera.state(), QCamera::ActiveState); - QCOMPARE(camera.status(), QCamera::LoadedStatus); - - QCOMPARE(stateChangedSignal.count(), 0); - QCOMPARE(statusChangedSignal.count(), 1); - - QTRY_COMPARE(camera.status(), QCamera::ActiveStatus); - - auto *mockCameraService = mockIntegration->lastCaptureService(); - mockCameraService->mockCameraControl->m_propertyChangesSupported = true; - //the changes to encoding settings, - //capture mode and encoding parameters should not trigger service restart - stateChangedSignal.clear(); - statusChangedSignal.clear(); - - camera.setCaptureMode(QCamera::CaptureVideo); - camera.setCaptureMode(QCamera::CaptureStillImage); - imageCapture.setEncodingSettings(QImageEncoderSettings()); - imageCapture.setEncodingSettings(QImageEncoderSettings()); - camera.setViewfinder(new QGraphicsVideoItem()); - - QCOMPARE(stateChangedSignal.count(), 0); - QCOMPARE(statusChangedSignal.count(), 0); } void tst_QCameraWidgets::testSetVideoOutput() |