Index: webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioRecord.java |
diff --git a/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioRecord.java b/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioRecord.java |
index f81bab3e93b3e4676e9c8959e3e310b7a3199002..6f00b5aa4c6aa524b97422a1ea80ee9ddf3fdb70 100644 |
--- a/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioRecord.java |
+++ b/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioRecord.java |
@@ -145,6 +145,14 @@ class WebRtcAudioRecord { |
Loge("RECORD_AUDIO permission is missing"); |
return -1; |
} |
+ if (audioRecord != null) { |
+ Loge("InitRecording() called twice without StopRecording()"); |
+ return -1; |
+ } |
+ if (aec != null) { |
magjed_webrtc
2015/09/10 07:23:08
When can this ever happen? Doesn't |aec| have the
henrika_webrtc
2015/09/10 11:27:07
You are correct. They are correlated. Should be en
|
+ aec.release(); |
+ aec = null; |
+ } |
final int bytesPerFrame = channels * (BITS_PER_SAMPLE / 8); |
final int framesPerBuffer = sampleRate / BUFFERS_PER_SECOND; |
byteBuffer = ByteBuffer.allocateDirect(bytesPerFrame * framesPerBuffer); |
@@ -164,11 +172,6 @@ class WebRtcAudioRecord { |
AudioFormat.ENCODING_PCM_16BIT); |
Logd("AudioRecord.getMinBufferSize: " + minBufferSize); |
- if (aec != null) { |
- aec.release(); |
- aec = null; |
- } |
- assertTrue(audioRecord == null); |
int bufferSizeInBytes = Math.max(byteBuffer.capacity(), minBufferSize); |
Logd("bufferSizeInBytes: " + bufferSizeInBytes); |
@@ -180,10 +183,14 @@ class WebRtcAudioRecord { |
bufferSizeInBytes); |
} catch (IllegalArgumentException e) { |
- Logd(e.getMessage()); |
+ Loge(e.getMessage()); |
+ return -1; |
+ } |
+ if (audioRecord == null || |
+ audioRecord.getState() != AudioRecord.STATE_INITIALIZED) { |
+ Loge("Failed to create a new AudioRecord instance"); |
return -1; |
} |
- assertTrue(audioRecord.getState() == AudioRecord.STATE_INITIALIZED); |
Logd("AudioRecord " + |
"session ID: " + audioRecord.getAudioSessionId() + ", " + |