diff --git a/src/blackcore/afv/audio/input.cpp b/src/blackcore/afv/audio/input.cpp index aa75e976b..9fab4ae63 100644 --- a/src/blackcore/afv/audio/input.cpp +++ b/src/blackcore/afv/audio/input.cpp @@ -125,11 +125,9 @@ namespace BlackCore void CInput::stop() { - if (! m_started) { return; } - + if (!m_started) { return; } m_started = false; - - m_audioInput->stop(); + if (m_audioInput) { m_audioInput->stop(); } m_audioInput.reset(); } diff --git a/src/blackcore/afv/audio/input.h b/src/blackcore/afv/audio/input.h index 4778ad68a..f3cea02d5 100644 --- a/src/blackcore/afv/audio/input.h +++ b/src/blackcore/afv/audio/input.h @@ -85,6 +85,12 @@ namespace BlackCore //! Ctor CInput(int sampleRate, QObject *parent = nullptr); + //! Dtor + virtual ~CInput() override + { + this->stop(); + } + int opusBytesEncoded() const { return m_opusBytesEncoded; } void setOpusBytesEncoded(int opusBytesEncoded) { m_opusBytesEncoded = opusBytesEncoded; } diff --git a/src/blackcore/afv/audio/output.h b/src/blackcore/afv/audio/output.h index 48f773d66..8603f83ff 100644 --- a/src/blackcore/afv/audio/output.h +++ b/src/blackcore/afv/audio/output.h @@ -32,6 +32,7 @@ namespace BlackCore double PeakVU = 0.0; }; + //! Output buffer class CAudioOutputBuffer : public QIODevice { Q_OBJECT @@ -71,6 +72,12 @@ namespace BlackCore //! Ctor Output(QObject *parent = nullptr); + //! Dtor + virtual ~Output() override + { + this->stop(); + } + //! Start output void start(const QAudioDeviceInfo &outputDevice, BlackSound::SampleProvider::ISampleProvider *sampleProvider);