summaryrefslogtreecommitdiffstats
path: root/src/multimedia/recording/qmediarecorder.h
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2021-03-05 11:16:53 +0100
committerLars Knoll <lars.knoll@qt.io>2021-03-16 12:58:22 +0000
commitc93b4b54c44ca28e34fe7e12cc2fb279f3e84b54 (patch)
tree74dcff9f6fca1d5a7706b242b0a9bae8c9bd38fc /src/multimedia/recording/qmediarecorder.h
parent4c7a93115a6346d318c4a23f70cf858781ec4591 (diff)
Make QMediaCaptureSession the new central class for media capturing
You now need to instantiate a capture session and hook up camera, image capture and recording to it. This gives a cleaner architecture for the whole capturing process. Change-Id: I7c7f6c4a841512b038834f4653ef7ab790c43f8f Reviewed-by: Doris Verria <doris.verria@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/multimedia/recording/qmediarecorder.h')
-rw-r--r--src/multimedia/recording/qmediarecorder.h14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/multimedia/recording/qmediarecorder.h b/src/multimedia/recording/qmediarecorder.h
index b024b8a22..eb0c02b56 100644
--- a/src/multimedia/recording/qmediarecorder.h
+++ b/src/multimedia/recording/qmediarecorder.h
@@ -59,6 +59,7 @@ class QMediaRecorderService;
class QAudioEncoderSettings;
class QVideoEncoderSettings;
class QAudioDeviceInfo;
+class QMediaCaptureSession;
class QMediaRecorderPrivate;
class Q_MULTIMEDIA_EXPORT QMediaRecorder : public QObject
@@ -107,8 +108,7 @@ public:
AudioAndVideo
};
- QMediaRecorder(CaptureMode mode = AudioOnly, QObject *parent = nullptr);
- explicit QMediaRecorder(QCamera *mediaSource, QObject *parent = nullptr);
+ QMediaRecorder(QObject *parent = nullptr);
~QMediaRecorder();
bool isAvailable() const;
@@ -139,7 +139,7 @@ public:
QAudioDeviceInfo audioInput() const;
QCameraInfo videoInput() const;
- QCamera *camera() const;
+ QMediaCaptureSession *captureSession() const;
public Q_SLOTS:
void record();
@@ -162,11 +162,13 @@ Q_SIGNALS:
void metaDataChanged();
-protected:
- bool setCamera(QCamera *object);
+private:
+ // This is here to flag an incompatibilities with Qt 5
+ QMediaRecorder(QCamera *) = delete;
QMediaRecorderPrivate *d_ptr;
-private:
+ friend class QMediaCaptureSession;
+ void setCaptureSession(QMediaCaptureSession *session);
Q_DISABLE_COPY(QMediaRecorder)
Q_DECLARE_PRIVATE(QMediaRecorder)
Q_PRIVATE_SLOT(d_func(), void _q_stateChanged(QMediaRecorder::State))