diff options
author | Glenn Kasten <gkasten@google.com> | 2013-06-13 13:55:43 -0700 |
---|---|---|
committer | Glenn Kasten <gkasten@google.com> | 2013-06-13 13:55:43 -0700 |
commit | b51ed34abbb70994da221c545678d9dc5fe88141 (patch) | |
tree | 24f2804b6ac4bc09a91e6e767df6a0607d690b01 | |
parent | b0d67543d9926be60ca1198b02a1d644646f6e4e (diff) | |
download | voip-idea133.tar.gz |
AudioRecord must be used as sp<> onlyandroid-sdk-4.4.2_r1.0.1android-sdk-4.4.2_r1android-cts-4.4_r4android-cts-4.4_r1android-4.4w_r1android-4.4_r1.2.0.1android-4.4_r1.2android-4.4_r1.1.0.1android-4.4_r1.1android-4.4_r1.0.1android-4.4_r1android-4.4_r0.9android-4.4_r0.8android-4.4_r0.7android-4.4.4_r2.0.1android-4.4.4_r2android-4.4.4_r1.0.1android-4.4.4_r1android-4.4.3_r1.1.0.1android-4.4.3_r1.1android-4.4.3_r1.0.1android-4.4.3_r1android-4.4.2_r2.0.1android-4.4.2_r2android-4.4.2_r1.0.1android-4.4.2_r1android-4.4.1_r1.0.1android-4.4.1_r1kitkat-wearkitkat-releasekitkat-mr2.2-releasekitkat-mr2.1-releasekitkat-mr2-releasekitkat-mr1.1-releasekitkat-mr1-releasekitkat-devkitkat-cts-releasekitkat-cts-devidea133
Bug: 9423855
Change-Id: Ib78b34a2b139cd0f0f8b119ad64e8d1e0d8140b2
-rw-r--r-- | src/jni/rtp/AudioGroup.cpp | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/jni/rtp/AudioGroup.cpp b/src/jni/rtp/AudioGroup.cpp index 6384dc2..3f9e55e 100644 --- a/src/jni/rtp/AudioGroup.cpp +++ b/src/jni/rtp/AudioGroup.cpp @@ -806,20 +806,20 @@ bool AudioGroup::DeviceThread::threadLoop() // Initialize AudioTrack and AudioRecord. sp<AudioTrack> track = new AudioTrack(); - AudioRecord record; + sp<AudioRecord> record = new AudioRecord(); if (track->set(AUDIO_STREAM_VOICE_CALL, sampleRate, AUDIO_FORMAT_PCM_16_BIT, AUDIO_CHANNEL_OUT_MONO, output, AUDIO_OUTPUT_FLAG_NONE, NULL /*callback_t*/, NULL /*user*/, 0 /*notificationFrames*/, 0 /*sharedBuffer*/, false /*threadCanCallJava*/, 0 /*sessionId*/, AudioTrack::TRANSFER_OBTAIN) != NO_ERROR || - record.set(AUDIO_SOURCE_VOICE_COMMUNICATION, sampleRate, AUDIO_FORMAT_PCM_16_BIT, + record->set(AUDIO_SOURCE_VOICE_COMMUNICATION, sampleRate, AUDIO_FORMAT_PCM_16_BIT, AUDIO_CHANNEL_IN_MONO, input, NULL /*callback_t*/, NULL /*user*/, 0 /*notificationFrames*/, false /*threadCanCallJava*/, 0 /*sessionId*/, AudioRecord::TRANSFER_OBTAIN) != NO_ERROR) { ALOGE("cannot initialize audio device"); return false; } - ALOGD("latency: output %d, input %d", track->latency(), record.latency()); + ALOGD("latency: output %d, input %d", track->latency(), record->latency()); // Give device socket a reasonable buffer size. setsockopt(deviceSocket, SOL_SOCKET, SO_RCVBUF, &output, sizeof(output)); @@ -840,8 +840,8 @@ bool AudioGroup::DeviceThread::threadLoop() 0, 0, 0, - record.getSessionId(), - record.getInput()); + record->getSessionId(), + record->getInput()); status_t status = aec->initCheck(); if (status == NO_ERROR || status == ALREADY_EXISTS) { aec->setEnabled(true); @@ -853,16 +853,16 @@ bool AudioGroup::DeviceThread::threadLoop() // Create local echo suppressor if platform AEC cannot be used. if (aec == NULL) { echo = new EchoSuppressor(sampleCount, - (track->latency() + record.latency()) * sampleRate / 1000); + (track->latency() + record->latency()) * sampleRate / 1000); } } // Start AudioRecord before AudioTrack. This prevents AudioTrack from being // disabled due to buffer underrun while waiting for AudioRecord. if (mode != MUTED) { - record.start(); + record->start(); int16_t one; // FIXME this may not work any more - record.read(&one, sizeof(one)); + record->read(&one, sizeof(one)); } track->start(); @@ -898,12 +898,12 @@ bool AudioGroup::DeviceThread::threadLoop() AudioRecord::Buffer buffer; buffer.frameCount = toRead; - status_t status = record.obtainBuffer(&buffer, 1); + status_t status = record->obtainBuffer(&buffer, 1); if (status == NO_ERROR) { int offset = sampleCount - toRead; memcpy(&input[offset], buffer.i8, buffer.size); toRead -= buffer.frameCount; - record.releaseBuffer(&buffer); + record->releaseBuffer(&buffer); } else if (status != TIMED_OUT && status != WOULD_BLOCK) { ALOGE("cannot read from AudioRecord"); goto exit; |