diff options
author | Glenn Kasten <gkasten@google.com> | 2013-05-31 09:59:02 -0700 |
---|---|---|
committer | Glenn Kasten <gkasten@google.com> | 2013-05-31 12:20:16 -0700 |
commit | 35b37b5e24f6a852fd7b5c5843146497b566d90e (patch) | |
tree | 610d054ff45fdbe46228eb5723195b09aa5e8745 | |
parent | e4818818f2519fad6c1067406a8a2b529ce6f5b8 (diff) | |
download | voip-35b37b5e24f6a852fd7b5c5843146497b566d90e.tar.gz |
Use sp<AudioTrack> instead of raw AudioTrack *
Change-Id: I7681b87da61e5602b20e55d16e96421fe03a558e
-rw-r--r-- | src/jni/rtp/AudioGroup.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/jni/rtp/AudioGroup.cpp b/src/jni/rtp/AudioGroup.cpp index 2f0829e..17d0bfc 100644 --- a/src/jni/rtp/AudioGroup.cpp +++ b/src/jni/rtp/AudioGroup.cpp @@ -805,16 +805,16 @@ bool AudioGroup::DeviceThread::threadLoop() ALOGD("adjusted frame count: output %d, input %d", output, input); // Initialize AudioTrack and AudioRecord. - AudioTrack track; + sp<AudioTrack> track = new AudioTrack(); AudioRecord record; - if (track.set(AUDIO_STREAM_VOICE_CALL, sampleRate, AUDIO_FORMAT_PCM_16_BIT, + if (track->set(AUDIO_STREAM_VOICE_CALL, sampleRate, AUDIO_FORMAT_PCM_16_BIT, AUDIO_CHANNEL_OUT_MONO, output) != NO_ERROR || record.set(AUDIO_SOURCE_VOICE_COMMUNICATION, sampleRate, AUDIO_FORMAT_PCM_16_BIT, AUDIO_CHANNEL_IN_MONO, input) != 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)); @@ -848,7 +848,7 @@ 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 @@ -858,7 +858,7 @@ bool AudioGroup::DeviceThread::threadLoop() int16_t one; record.read(&one, sizeof(one)); } - track.start(); + track->start(); while (!exitPending()) { int16_t output[sampleCount]; @@ -876,12 +876,12 @@ bool AudioGroup::DeviceThread::threadLoop() AudioTrack::Buffer buffer; buffer.frameCount = toWrite; - status_t status = track.obtainBuffer(&buffer, 1); + status_t status = track->obtainBuffer(&buffer, 1); if (status == NO_ERROR) { int offset = sampleCount - toWrite; memcpy(buffer.i8, &output[offset], buffer.size); toWrite -= buffer.frameCount; - track.releaseBuffer(&buffer); + track->releaseBuffer(&buffer); } else if (status != TIMED_OUT && status != WOULD_BLOCK) { ALOGE("cannot write to AudioTrack"); goto exit; |