Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
avfcameraservice.mm
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd and/or its subsidiary(-ies).
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#include <QtCore/qvariant.h>
5#include <QtCore/qdebug.h>
6
8#include "avfcamera_p.h"
10#include "avfimagecapture_p.h"
11#include "avfcamerarenderer_p.h"
12#include "avfimagecapture_p.h"
13#include "avfmediaencoder_p.h"
14#include <qmediadevices.h>
15#include <private/qplatformaudioinput_p.h>
16#include <private/qplatformaudiooutput_p.h>
17#include <qaudioinput.h>
18#include <qaudiooutput.h>
19
21
23{
24 m_session = new AVFCameraSession(this);
25}
26
28{
29 if (m_session)
30 delete m_session;
31}
32
34{
35 return m_cameraControl;
36}
37
39{
40 AVFCamera *control = static_cast<AVFCamera *>(camera);
41 if (m_cameraControl == control)
42 return;
43
44 if (m_cameraControl) {
45 if (m_encoder)
46 m_cameraControl->disconnect(m_encoder);
47 m_cameraControl->setCaptureSession(nullptr);
48 }
49
50 m_cameraControl = control;
51
52 if (m_cameraControl)
53 m_cameraControl->setCaptureSession(this);
54
56}
57
59{
60 return m_imageCaptureControl;
61}
62
64{
65 AVFImageCapture *control = static_cast<AVFImageCapture *>(imageCapture);
66 if (m_imageCaptureControl == control)
67 return;
68
69 if (m_imageCaptureControl)
70 m_imageCaptureControl->setCaptureSession(nullptr);
71
72 m_imageCaptureControl = control;
73 if (m_imageCaptureControl)
74 m_imageCaptureControl->setCaptureSession(this);
75}
76
81
83{
84 AVFMediaEncoder *control = static_cast<AVFMediaEncoder *>(recorder);
85 if (m_encoder == control)
86 return;
87
88 if (m_encoder)
89 m_encoder->setCaptureSession(nullptr);
90
91 m_encoder = control;
92 if (m_encoder)
93 m_encoder->setCaptureSession(this);
94
96}
97
99{
100 if (m_audioInput == input)
101 return;
102 if (m_audioInput)
103 m_audioInput->q->disconnect(this);
104
105 m_audioInput = input;
106
107 if (input) {
112 }
114}
115
117{
118 if (m_audioOutput == output)
119 return;
120 if (m_audioOutput)
121 m_audioOutput->q->disconnect(this);
122
123 m_audioOutput = output;
124
125 if (m_audioOutput) {
130 }
132}
133
135{
136 m_session->updateAudioInput();
137}
138
143
145{
146 m_session->setAudioInputMuted(muted);
147}
148
150{
151 m_session->setAudioInputVolume(volume);
152}
153
155{
156 m_session->setAudioOutputMuted(muted);
157}
158
160{
161 m_session->setAudioOutputVolume(volume);
162}
163
168
169#include "moc_avfcameraservice_p.cpp"
void setAudioInput(QPlatformAudioInput *) override
void setImageCapture(QPlatformImageCapture *imageCapture) override
void setAudioOutputMuted(bool muted)
QPlatformMediaRecorder * mediaRecorder() override
void setAudioOutput(QPlatformAudioOutput *) override
void setVideoPreview(QVideoSink *sink) override
void setCamera(QPlatformCamera *camera) override
void setMediaRecorder(QPlatformMediaRecorder *recorder) override
void setAudioInputMuted(bool muted)
void setAudioOutputVolume(float volume)
QPlatformImageCapture * imageCapture() override
QPlatformCamera * camera() override
void setAudioInputVolume(float volume)
void setAudioOutputMuted(bool muted)
void setAudioInputVolume(float volume)
void setVideoSink(QVideoSink *sink)
void setAudioOutputVolume(float volume)
void setAudioInputMuted(bool muted)
void setCaptureSession(QPlatformMediaCaptureSession *) override
Definition avfcamera.mm:63
void setCaptureSession(QPlatformMediaCaptureSession *session)
void setCaptureSession(QPlatformMediaCaptureSession *session)
void mutedChanged(bool muted)
void volumeChanged(float volume)
void deviceChanged()
void deviceChanged()
void mutedChanged(bool muted)
void volumeChanged(float volume)
static QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
\threadsafe
Definition qobject.cpp:2960
static bool disconnect(const QObject *sender, const char *signal, const QObject *receiver, const char *member)
\threadsafe
Definition qobject.cpp:3236
void destroyed(QObject *=nullptr)
This signal is emitted immediately before the object obj is destroyed, after any instances of QPointe...
The QVideoSink class represents a generic sink for video data.
Definition qvideosink.h:22
QMediaRecorder * recorder
Definition camera.cpp:20
QCamera * camera
Definition camera.cpp:19
QImageCapture * imageCapture
Definition camera.cpp:21
GLsizei GLenum GLboolean sink
GLenum GLenum GLenum input
#define emit
QT_BEGIN_NAMESPACE typedef uchar * output