diff --git a/daemon/src/audio/opensl/opensllayer.cpp b/daemon/src/audio/opensl/opensllayer.cpp index ed72b730b5deb9c973d24ae0eb670f58e042848a..8ef3b2692016bb5cdb5b51778863f1285e7d11b0 100644 --- a/daemon/src/audio/opensl/opensllayer.cpp +++ b/daemon/src/audio/opensl/opensllayer.cpp @@ -147,8 +147,8 @@ OpenSLLayer::OpenSLLayer() , recorderBufferQueue_(0) , playbackBufferIndex_(0) , recordBufferIndex_(0) - , playbackBufferStack_(ANDROID_BUFFER_QUEUE_LENGTH, AudioBuffer(3000)) - , recordBufferStack_(ANDROID_BUFFER_QUEUE_LENGTH, AudioBuffer(3000)) + , playbackBufferStack_(ANDROID_BUFFER_QUEUE_LENGTH, AudioBuffer(BUFFER_SIZE)) + , recordBufferStack_(ANDROID_BUFFER_QUEUE_LENGTH, AudioBuffer(BUFFER_SIZE)) { } @@ -257,9 +257,15 @@ OpenSLLayer::shutdownAudioEngine() outputMixer_ = NULL; } + if(recorderObject_ != NULL){ + (*recorderObject_)->Destroy(recorderObject_); + recorderObject_ = NULL; + recorderInterface_ = NULL; + recorderBufferQueue_ = NULL; + } + // destroy engine object, and invalidate all associated interfaces DEBUG("Shutdown audio engine\n"); - if (engineObject_ != NULL) { (*engineObject_)->Destroy(engineObject_); engineObject_ = NULL; diff --git a/daemon/src/audio/opensl/opensllayer.h b/daemon/src/audio/opensl/opensllayer.h index 889137503af884fabb107f0a662f4489a90904d4..f2ef05be4532d4df6f9b7c1e3e734d00bbd8b3e2 100644 --- a/daemon/src/audio/opensl/opensllayer.h +++ b/daemon/src/audio/opensl/opensllayer.h @@ -36,6 +36,7 @@ #include <vector> #include "../audiolayer.h" +#include "logger.h" enum PCMType { @@ -52,6 +53,7 @@ class AudioPreference; class OpenSLThread; #define ANDROID_BUFFER_QUEUE_LENGTH 2 +#define BUFFER_SIZE 5000 /** @@ -238,9 +240,7 @@ class OpenSLLayer : public AudioLayer { * Output mix interface */ SLObjectItf outputMixer_; - SLObjectItf playerObject_; - SLObjectItf recorderObject_; /**