6 #ifndef SWIFT_CORE_AFV_AUDIO_AUDIO_INPUT_H
7 #define SWIFT_CORE_AFV_AUDIO_AUDIO_INPUT_H
17 #include <QAudioSource>
20 namespace swift::core::afv::audio
32 void start(
const QAudioFormat &format);
38 virtual qint64
readData(
char *data, qint64 maxlen)
override;
41 virtual qint64
writeData(
const char *data, qint64 len)
override;
48 static constexpr qint64 frameSize = 960;
50 QAudioFormat m_format;
67 double PeakDB = -1.0 * std::numeric_limits<double>::infinity();
80 CInput(
int sampleRate, QObject *parent =
nullptr);
130 void audioInDataAvailable(
const QByteArray &frame);
132 void initMicrophone();
134 static constexpr qint64 c_frameSize = 960;
135 int m_sampleRate = 0;
138 QScopedPointer<QAudioSource> m_audioInput;
140 QAudioFormat m_inputFormat;
142 bool m_started =
false;
143 int m_opusBytesEncoded = 0;
144 int m_sampleCount = 0;
145 double m_gainRatio = 1.0;
146 qint16 m_maxSampleInput = 0.0;
148 const int SampleCountPerEvent = 4800;
149 const double maxDb = 0;
150 const double minDb = -40;
152 uint m_audioSequenceCounter = 0;
157 void initMicrophoneMacOS();
Wrapper around MacOS 10.14 AVCaptureDevice AVCaptureDevice authorization.
Value object encapsulating information of a audio device.
uint sequenceCounter
sequence counter
QByteArray audio
audio data