summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author James Dong <jdong@google.com> 2010-06-17 11:28:28 -0700
committer Android Git Automerger <android-git-automerger@android.com> 2010-06-17 11:28:28 -0700
commit99cc3295cf2abed2e21f2196c986930119d22d7e (patch)
treeb78de01a3dd359128f24ce170ef61bacee14ddc7
parente6ac8b9aade9443ab8456c8f7a47cdfba3b70266 (diff)
parentd8402d7861ed81e90dd0a03b9a630e66551cc783 (diff)
am d8402d78: am cd677a30: Merge "Remove hard-coded number of audio channels in AudioSource" into gingerbread
Merge commit 'd8402d7861ed81e90dd0a03b9a630e66551cc783' * commit 'd8402d7861ed81e90dd0a03b9a630e66551cc783': Remove hard-coded number of audio channels in AudioSource
-rw-r--r--media/libmediaplayerservice/StagefrightRecorder.cpp2
-rw-r--r--media/libstagefright/AudioSource.cpp18
2 files changed, 15 insertions, 5 deletions
diff --git a/media/libmediaplayerservice/StagefrightRecorder.cpp b/media/libmediaplayerservice/StagefrightRecorder.cpp
index a7ccce4c5dcf..9b30d1fa84ef 100644
--- a/media/libmediaplayerservice/StagefrightRecorder.cpp
+++ b/media/libmediaplayerservice/StagefrightRecorder.cpp
@@ -440,7 +440,7 @@ sp<MediaSource> StagefrightRecorder::createAudioSource() {
new AudioSource(
mAudioSource,
mSampleRate,
- AudioSystem::CHANNEL_IN_MONO);
+ mAudioChannels);
status_t err = audioSource->initCheck();
diff --git a/media/libstagefright/AudioSource.cpp b/media/libstagefright/AudioSource.cpp
index 9717aa610a31..d6020a6bb54f 100644
--- a/media/libstagefright/AudioSource.cpp
+++ b/media/libstagefright/AudioSource.cpp
@@ -33,15 +33,25 @@ namespace android {
AudioSource::AudioSource(
int inputSource, uint32_t sampleRate, uint32_t channels)
- : mRecord(new AudioRecord(
- inputSource, sampleRate, AudioSystem::PCM_16_BIT, channels)),
- mInitCheck(mRecord->initCheck()),
- mStarted(false),
+ : mStarted(false),
mCollectStats(false),
mTotalReadTimeUs(0),
mTotalReadBytes(0),
mTotalReads(0),
mGroup(NULL) {
+
+ LOGV("sampleRate: %d, channels: %d", sampleRate, channels);
+ uint32_t flags = AudioRecord::RECORD_AGC_ENABLE |
+ AudioRecord::RECORD_NS_ENABLE |
+ AudioRecord::RECORD_IIR_ENABLE;
+
+ mRecord = new AudioRecord(
+ inputSource, sampleRate, AudioSystem::PCM_16_BIT,
+ channels > 1? AudioSystem::CHANNEL_IN_STEREO: AudioSystem::CHANNEL_IN_MONO,
+ 4 * kMaxBufferSize / sizeof(int16_t), /* Enable ping-pong buffers */
+ flags);
+
+ mInitCheck = mRecord->initCheck();
}
AudioSource::~AudioSource() {