Skip to content
Snippets Groups Projects
Commit d97121c4 authored by Adrien Béraud's avatar Adrien Béraud
Browse files

opensl: init audio engine on first use

Change-Id: Idc8e5bd4614212ecba3b8a075aaf91811ec97af1
parent 790418d6
No related branches found
No related tags found
No related merge requests found
...@@ -44,7 +44,6 @@ namespace jami { ...@@ -44,7 +44,6 @@ namespace jami {
OpenSLLayer::OpenSLLayer(const AudioPreference& pref) OpenSLLayer::OpenSLLayer(const AudioPreference& pref)
: AudioLayer(pref) : AudioLayer(pref)
{ {
initAudioEngine();
} }
// Destructor // Destructor
...@@ -57,8 +56,12 @@ void ...@@ -57,8 +56,12 @@ void
OpenSLLayer::startStream(AudioDeviceType stream) OpenSLLayer::startStream(AudioDeviceType stream)
{ {
using namespace std::placeholders; using namespace std::placeholders;
if (engineObject_)
initAudioEngine();
std::lock_guard<std::mutex> lock(mutex_); std::lock_guard<std::mutex> lock(mutex_);
JAMI_WARN("Start OpenSL audio layer"); JAMI_WARN("Start OpenSL audio layer");
if (stream == AudioDeviceType::PLAYBACK) { if (stream == AudioDeviceType::PLAYBACK) {
if (not player_) { if (not player_) {
try { try {
...@@ -181,8 +184,6 @@ OpenSLLayer::shutdownAudioEngine() ...@@ -181,8 +184,6 @@ OpenSLLayer::shutdownAudioEngine()
{ {
JAMI_DBG("Stopping OpenSL"); JAMI_DBG("Stopping OpenSL");
stopAudioCapture(); stopAudioCapture();
freeRecBufQueue_.clear();
recBufQueue_.clear();
if (player_) { if (player_) {
player_->stop(); player_->stop();
...@@ -192,10 +193,6 @@ OpenSLLayer::shutdownAudioEngine() ...@@ -192,10 +193,6 @@ OpenSLLayer::shutdownAudioEngine()
ringtone_->stop(); ringtone_->stop();
ringtone_.reset(); ringtone_.reset();
} }
freePlayBufQueue_.clear();
playBufQueue_.clear();
freeRingBufQueue_.clear();
ringBufQueue_.clear();
// destroy engine object, and invalidate all associated interfaces // destroy engine object, and invalidate all associated interfaces
JAMI_DBG("Shutdown audio engine"); JAMI_DBG("Shutdown audio engine");
...@@ -205,6 +202,13 @@ OpenSLLayer::shutdownAudioEngine() ...@@ -205,6 +202,13 @@ OpenSLLayer::shutdownAudioEngine()
engineInterface_ = nullptr; engineInterface_ = nullptr;
} }
freeRecBufQueue_.clear();
recBufQueue_.clear();
freePlayBufQueue_.clear();
playBufQueue_.clear();
freeRingBufQueue_.clear();
ringBufQueue_.clear();
startedCv_.notify_all(); startedCv_.notify_all();
bufs_.clear(); bufs_.clear();
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment