diff options
author | Glenn Kasten <gkasten@google.com> | 2012-03-08 12:32:47 -0800 |
---|---|---|
committer | Glenn Kasten <gkasten@google.com> | 2012-03-08 16:18:57 -0800 |
commit | 53d76dbe7c55821e89d9da02e7a563f7fb45de87 (patch) | |
tree | 3d1b5bcc6724a00ae58939712be4b28d068225c9 | |
parent | f3c2e3bd65449b413c378219e08c71bf744cfbf3 (diff) | |
download | frameworks_av-53d76dbe7c55821e89d9da02e7a563f7fb45de87.zip frameworks_av-53d76dbe7c55821e89d9da02e7a563f7fb45de87.tar.gz frameworks_av-53d76dbe7c55821e89d9da02e7a563f7fb45de87.tar.bz2 |
Replace hard-coded 3 by FCC_2 to simplify searches
Change-Id: I92881d04e8378307f849fb343071a58d181a68b4
-rw-r--r-- | services/audioflinger/AudioFlinger.cpp | 8 | ||||
-rw-r--r-- | services/audioflinger/AudioFlinger.h | 9 |
2 files changed, 13 insertions, 4 deletions
diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp index fd7418c..986c40a 100644 --- a/services/audioflinger/AudioFlinger.cpp +++ b/services/audioflinger/AudioFlinger.cpp @@ -5192,8 +5192,8 @@ bool AudioFlinger::RecordThread::checkForNewParameters_l() reqFormat == mInput->stream->common.get_format(&mInput->stream->common) && reqFormat == AUDIO_FORMAT_PCM_16_BIT && ((int)mInput->stream->common.get_sample_rate(&mInput->stream->common) <= (2 * reqSamplingRate)) && - (popcount(mInput->stream->common.get_channels(&mInput->stream->common)) < 3) && - (reqChannelCount < 3)) { + popcount(mInput->stream->common.get_channels(&mInput->stream->common)) <= FCC_2 && + (reqChannelCount <= FCC_2)) { status = NO_ERROR; } if (status == NO_ERROR) { @@ -5270,7 +5270,7 @@ void AudioFlinger::RecordThread::readInputParameters() mFrameCount = mInputBytes / mFrameSize; mRsmpInBuffer = new int16_t[mFrameCount * mChannelCount]; - if (mSampleRate != mReqSampleRate && mChannelCount < 3 && mReqChannelCount < 3) + if (mSampleRate != mReqSampleRate && mChannelCount <= FCC_2 && mReqChannelCount <= FCC_2) { int channelCount; // optmization: if mono to mono, use the resampler in stereo to stereo mode to avoid @@ -5559,7 +5559,7 @@ audio_io_handle_t AudioFlinger::openInput(uint32_t *pDevices, if (inStream == NULL && status == BAD_VALUE && reqFormat == format && format == AUDIO_FORMAT_PCM_16_BIT && (samplingRate <= 2 * reqSamplingRate) && - (popcount(channels) < 3) && (popcount(reqChannels) < 3)) { + (popcount(channels) <= FCC_2) && (popcount(reqChannels) <= FCC_2)) { ALOGV("openInput() reopening with proposed sampling rate and channels"); status = inHwDev->open_input_stream(inHwDev, *pDevices, &format, &channels, &samplingRate, diff --git a/services/audioflinger/AudioFlinger.h b/services/audioflinger/AudioFlinger.h index 2e259c0..d9f2972 100644 --- a/services/audioflinger/AudioFlinger.h +++ b/services/audioflinger/AudioFlinger.h @@ -58,6 +58,15 @@ class AudioResampler; // ---------------------------------------------------------------------------- +// AudioFlinger has a hard-coded upper limit of 2 channels for capture and playback. +// There is support for > 2 channel tracks down-mixed to 2 channel output via a down-mix effect. +// Adding full support for > 2 channel capture or playback would require more than simply changing +// this #define. There is an independent hard-coded upper limit in AudioMixer; +// removing that AudioMixer limit would be necessary but insufficient to support > 2 channels. +// The macro FCC_2 highlights some (but not all) places where there is are 2-channel assumptions. +// Search also for "2", "left", "right", "[0]", "[1]", ">> 16", "<< 16", etc. +#define FCC_2 2 // FCC_2 = Fixed Channel Count 2 + static const nsecs_t kDefaultStandbyTimeInNsecs = seconds(3); class AudioFlinger : |