6#include <QtMultimedia/private/qmediaframeinput_p.h>
7#include <QtMultimedia/private/qmediainputencoderinterface_p.h>
8#include <QtMultimedia/private/qplatformaudiobufferinput_p.h>
19 return sendMediaFrame(
20 [&]() { emit m_platfromAudioBufferInput->newAudioBuffer(audioBuffer); });
25 m_platfromAudioBufferInput = std::make_unique<QPlatformAudioBufferInput>(format);
26 addUpdateSignal(m_platfromAudioBufferInput.get(),
27 &QPlatformAudioBufferInput::encoderUpdated);
32 m_platfromAudioBufferInput.reset();
35 captureSession()->setAudioBufferInput(
nullptr);
38 QMediaCaptureSession *
session()
const {
return m_captureSession; }
42 return m_platfromAudioBufferInput.get();
47 QMediaCaptureSession *newSession)
override
50 removeUpdateSignal(prevSession, &QMediaCaptureSession::audioOutputChanged);
53 addUpdateSignal(newSession, &QMediaCaptureSession::audioOutputChanged);
58 if (
auto encoderInterface = m_platfromAudioBufferInput->encoderInterface())
59 return encoderInterface->canPushFrame();
69 QAudioBufferInput *q =
nullptr;
70 QMediaCaptureSession *m_captureSession =
nullptr;
71 std::unique_ptr<QPlatformAudioBufferInput> m_platfromAudioBufferInput;
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
105
106
107QAudioBufferInput::QAudioBufferInput(QObject *parent) : QAudioBufferInput({}, parent) { }
110
111
112
113
114
115
116
117
118
119
120QAudioBufferInput::QAudioBufferInput(
const QAudioFormat &format, QObject *parent)
121 : QObject(*
new QAudioBufferInputPrivate(
this), parent)
123 Q_D(QAudioBufferInput);
124 d->initialize(format);
128
129
130QAudioBufferInput::~QAudioBufferInput()
132 Q_D(QAudioBufferInput);
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152bool QAudioBufferInput::sendAudioBuffer(
const QAudioBuffer &audioBuffer)
154 Q_D(QAudioBufferInput);
155 return d->sendAudioBuffer(audioBuffer);
159
160
161QAudioFormat QAudioBufferInput::format()
const
163 Q_D(
const QAudioBufferInput);
164 return d->platfromAudioBufferInput()->audioFormat();
168
169
170
171
172
173
174QMediaCaptureSession *QAudioBufferInput::captureSession()
const
176 Q_D(
const QAudioBufferInput);
177 return d->captureSession();
180void QAudioBufferInput::setCaptureSession(QMediaCaptureSession *captureSession)
182 Q_D(QAudioBufferInput);
183 d->setCaptureSession(captureSession);
186QPlatformAudioBufferInput *QAudioBufferInput::platformAudioBufferInput()
const
188 Q_D(
const QAudioBufferInput);
189 return d->platfromAudioBufferInput();
193
194
195
196
197
198
199
200
Combined button and popup list for selecting options.