| Index: media/audio/android/opensles_input.h
|
| diff --git a/media/audio/android/opensles_input.h b/media/audio/android/opensles_input.h
|
| index 9743992fc653e16cacbbce8644acec4e4d361f63..cd753d236657198e8ccc3b943a3914e0e42d37c8 100644
|
| --- a/media/audio/android/opensles_input.h
|
| +++ b/media/audio/android/opensles_input.h
|
| @@ -9,6 +9,8 @@
|
| #include <SLES/OpenSLES_Android.h>
|
|
|
| #include "base/compiler_specific.h"
|
| +#include "base/synchronization/lock.h"
|
| +#include "base/threading/thread_checker.h"
|
| #include "media/audio/audio_io.h"
|
| #include "media/audio/audio_parameters.h"
|
| #include "media/audio/android/opensles_util.h"
|
| @@ -20,7 +22,7 @@ class AudioManagerAndroid;
|
| // Implements PCM audio input support for Android using the OpenSLES API.
|
| class OpenSLESInputStream : public AudioInputStream {
|
| public:
|
| - static const int kNumOfQueuesInBuffer = 2;
|
| + static const int kMaxNumOfBuffersInQueue = 2;
|
|
|
| OpenSLESInputStream(AudioManagerAndroid* manager,
|
| const AudioParameters& params);
|
| @@ -41,9 +43,11 @@ class OpenSLESInputStream : public AudioInputStream {
|
| private:
|
| bool CreateRecorder();
|
|
|
| + // Called from OpenSLES specific audio worker thread.
|
| static void SimpleBufferQueueCallback(
|
| SLAndroidSimpleBufferQueueItf buffer_queue, void* instance);
|
|
|
| + // Called from OpenSLES specific audio worker thread.
|
| void ReadBufferQueue();
|
|
|
| // Called in Open();
|
| @@ -56,6 +60,12 @@ class OpenSLESInputStream : public AudioInputStream {
|
| // the attached AudioInputCallback::OnError().
|
| void HandleError(SLresult error);
|
|
|
| + base::ThreadChecker thread_checker_;
|
| +
|
| + // Protects |started_|, |callback_|, |active_queue_|, |audio_data_|,
|
| + // |buffer_size_bytes_| and |simple_buffer_queue_|.
|
| + base::Lock lock_;
|
| +
|
| AudioManagerAndroid* audio_manager_;
|
|
|
| AudioInputCallback* callback_;
|
| @@ -73,9 +83,9 @@ class OpenSLESInputStream : public AudioInputStream {
|
|
|
| // Audio buffers that are allocated in the constructor based on
|
| // info from audio parameters.
|
| - uint8* audio_data_[kNumOfQueuesInBuffer];
|
| + uint8* audio_data_[kMaxNumOfBuffersInQueue];
|
|
|
| - int active_queue_;
|
| + int active_buffer_;
|
| int buffer_size_bytes_;
|
|
|
| bool started_;
|
|
|