Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
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
"avfcameraservice_p.h"
5
6
#
include
<
camera
/
avfcamera_p
.
h
>
7
#
include
<
camera
/
avfcamerasession_p
.
h
>
8
#
include
<
camera
/
avfcamerarenderer_p
.
h
>
9
#
include
<
camera
/
avfimagecapture_p
.
h
>
10
#
include
<
camera
/
avfmediaencoder_p
.
h
>
11
12
#
include
<
QtMultimedia
/
qaudioinput
.
h
>
13
#
include
<
QtMultimedia
/
qaudiooutput
.
h
>
14
#
include
<
QtMultimedia
/
qmediadevices
.
h
>
15
#
include
<
QtMultimedia
/
private
/
qplatformaudioinput_p
.
h
>
16
#
include
<
QtMultimedia
/
private
/
qplatformaudiooutput_p
.
h
>
17
#
include
<
QtCore
/
qdebug
.
h
>
18
#
include
<
QtCore
/
qvariant
.
h
>
19
20
QT_USE_NAMESPACE
21
22
AVFCameraService::AVFCameraService()
23
{
24
m_session =
new
AVFCameraSession(
this
);
25
}
26
27
AVFCameraService
::~
AVFCameraService
()
28
{
29
30
delete
m_session;
31
}
32
33
QPlatformCamera *
AVFCameraService
::
camera
()
34
{
35
return
m_cameraControl;
36
}
37
38
void
AVFCameraService
::
setCamera
(QPlatformCamera *camera)
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
55
Q_EMIT cameraChanged();
56
}
57
58
QPlatformImageCapture
*
AVFCameraService
::
imageCapture
()
59
{
60
return
m_imageCaptureControl;
61
}
62
63
void
AVFCameraService
::
setImageCapture
(QPlatformImageCapture *imageCapture)
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
77
QPlatformMediaRecorder *
AVFCameraService
::
mediaRecorder
()
78
{
79
return
m_encoder;
80
}
81
82
void
AVFCameraService
::
setMediaRecorder
(QPlatformMediaRecorder *recorder)
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
95
Q_EMIT encoderChanged();
96
}
97
98
void
AVFCameraService
::
setAudioInput
(QPlatformAudioInput *input)
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) {
108
connect(m_audioInput->q, &QAudioInput::destroyed,
this
, &AVFCameraService::audioInputDestroyed);
109
connect(m_audioInput->q, &QAudioInput::deviceChanged,
this
, &AVFCameraService::audioInputChanged);
110
connect(m_audioInput->q, &QAudioInput::mutedChanged,
this
, &
AVFCameraService
::
setAudioInputMuted
);
111
connect(m_audioInput->q, &QAudioInput::volumeChanged,
this
, &
AVFCameraService
::
setAudioInputVolume
);
112
}
113
audioInputChanged();
114
}
115
116
void
AVFCameraService
::
setAudioOutput
(QPlatformAudioOutput *output)
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) {
126
connect(m_audioOutput->q, &QAudioOutput::destroyed,
this
, &
AVFCameraService
::
audioOutputDestroyed
);
127
connect(m_audioOutput->q, &QAudioOutput::deviceChanged,
this
, &
AVFCameraService
::
audioOutputChanged
);
128
connect(m_audioOutput->q, &QAudioOutput::mutedChanged,
this
, &
AVFCameraService
::
setAudioOutputMuted
);
129
connect(m_audioOutput->q, &QAudioOutput::volumeChanged,
this
, &
AVFCameraService
::
setAudioOutputVolume
);
130
}
131
audioOutputChanged
(
)
;
132
}
133
134
void
AVFCameraService
::audioInputChanged()
135
{
136
m_session
->
updateAudioInput
(
)
;
137
}
138
139
void
AVFCameraService
::
audioOutputChanged
()
140
{
141
m_session
->
updateAudioOutput
(
)
;
142
}
143
144
void
AVFCameraService
::
setAudioInputMuted
(
bool
muted)
145
{
146
m_session
->
setAudioInputMuted
(
muted
)
;
147
}
148
149
void
AVFCameraService
::
setAudioInputVolume
(
float
volume)
150
{
151
m_session
->
setAudioInputVolume
(
volume
)
;
152
}
153
154
void
AVFCameraService
::
setAudioOutputMuted
(
bool
muted)
155
{
156
m_session
->
setAudioOutputMuted
(
muted
)
;
157
}
158
159
void
AVFCameraService
::
setAudioOutputVolume
(
float
volume)
160
{
161
m_session
->
setAudioOutputVolume
(
volume
)
;
162
}
163
164
void
AVFCameraService
::
setVideoPreview
(QVideoSink *sink)
165
{
166
m_session
->
setVideoSink
(
sink
)
;
167
}
168
169
#
include
"moc_avfcameraservice_p.cpp"
AVFCameraService
Definition
avfcameraservice_p.h:33
AVFCameraService::setAudioInput
void setAudioInput(QPlatformAudioInput *) override
Definition
avfcameraservice.mm:98
AVFCameraService::audioOutputDestroyed
void audioOutputDestroyed()
Definition
avfcameraservice_p.h:64
AVFCameraService::setImageCapture
void setImageCapture(QPlatformImageCapture *imageCapture) override
Definition
avfcameraservice.mm:63
AVFCameraService::setAudioOutputMuted
void setAudioOutputMuted(bool muted)
Definition
avfcameraservice.mm:154
AVFCameraService::mediaRecorder
QPlatformMediaRecorder * mediaRecorder() override
Definition
avfcameraservice.mm:77
AVFCameraService::setAudioOutput
void setAudioOutput(QPlatformAudioOutput *) override
Definition
avfcameraservice.mm:116
AVFCameraService::audioOutputChanged
void audioOutputChanged()
Definition
avfcameraservice.mm:139
AVFCameraService::setVideoPreview
void setVideoPreview(QVideoSink *sink) override
Definition
avfcameraservice.mm:164
AVFCameraService::setCamera
void setCamera(QPlatformCamera *camera) override
Definition
avfcameraservice.mm:38
AVFCameraService::setMediaRecorder
void setMediaRecorder(QPlatformMediaRecorder *recorder) override
Definition
avfcameraservice.mm:82
AVFCameraService::setAudioInputMuted
void setAudioInputMuted(bool muted)
Definition
avfcameraservice.mm:144
AVFCameraService::~AVFCameraService
~AVFCameraService() override
Definition
avfcameraservice.mm:27
AVFCameraService::setAudioOutputVolume
void setAudioOutputVolume(float volume)
Definition
avfcameraservice.mm:159
AVFCameraService::imageCapture
QPlatformImageCapture * imageCapture() override
Definition
avfcameraservice.mm:58
AVFCameraService::camera
QPlatformCamera * camera() override
Definition
avfcameraservice.mm:33
AVFCameraService::setAudioInputVolume
void setAudioInputVolume(float volume)
Definition
avfcameraservice.mm:149
AVFCameraSession::updateAudioInput
void updateAudioInput()
Definition
avfcamerasession.mm:446
AVFCameraSession::setAudioOutputMuted
void setAudioOutputMuted(bool muted)
Definition
avfcamerasession.mm:247
AVFCameraSession::setAudioInputVolume
void setAudioInputVolume(float volume)
Definition
avfcamerasession.mm:217
AVFCameraSession::setVideoSink
void setVideoSink(QVideoSink *sink)
Definition
avfcamerasession.mm:409
AVFCameraSession::updateAudioOutput
void updateAudioOutput()
Definition
avfcamerasession.mm:469
AVFCameraSession::setAudioOutputVolume
void setAudioOutputVolume(float volume)
Definition
avfcamerasession.mm:241
AVFCameraSession::setAudioInputMuted
void setAudioInputMuted(bool muted)
Definition
avfcamerasession.mm:235
AVFCamera
Definition
avfcamera_p.h:27
AVFMediaEncoder
Definition
avfmediaencoder_p.h:37
qtmultimedia
src
plugins
multimedia
darwin
camera
avfcameraservice.mm
Generated on
for Qt by
1.18.0