summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/media/AudioRecord.h3
-rw-r--r--include/media/AudioTrack.h3
-rw-r--r--media/libmedia/AudioRecord.cpp20
-rw-r--r--media/libmedia/AudioTrack.cpp24
-rw-r--r--services/audioflinger/AudioFlinger.cpp8
-rw-r--r--services/audioflinger/AudioFlinger.h6
6 files changed, 27 insertions, 37 deletions
diff --git a/include/media/AudioRecord.h b/include/media/AudioRecord.h
index cd7ff92..ae444c3 100644
--- a/include/media/AudioRecord.h
+++ b/include/media/AudioRecord.h
@@ -183,7 +183,7 @@ public:
/* getters, see constructor and set() */
audio_format_t format() const;
- int channelCount() const;
+ uint32_t channelCount() const;
size_t frameCount() const;
size_t frameSize() const { return mFrameSize; }
audio_source_t inputSource() const;
@@ -351,7 +351,6 @@ private:
status_t openRecord_l(uint32_t sampleRate,
audio_format_t format,
- audio_channel_mask_t channelMask,
size_t frameCount,
audio_io_handle_t input);
audio_io_handle_t getInput_l();
diff --git a/include/media/AudioTrack.h b/include/media/AudioTrack.h
index 61214ec..f1b77ab 100644
--- a/include/media/AudioTrack.h
+++ b/include/media/AudioTrack.h
@@ -223,7 +223,7 @@ public:
audio_stream_type_t streamType() const;
audio_format_t format() const;
- int channelCount() const;
+ uint32_t channelCount() const;
uint32_t frameCount() const;
/* Return channelCount * (bit depth per channel / 8).
@@ -493,7 +493,6 @@ protected:
status_t createTrack_l(audio_stream_type_t streamType,
uint32_t sampleRate,
audio_format_t format,
- audio_channel_mask_t channelMask,
size_t frameCount,
audio_output_flags_t flags,
const sp<IMemory>& sharedBuffer,
diff --git a/media/libmedia/AudioRecord.cpp b/media/libmedia/AudioRecord.cpp
index 2a5a996..c2ef68c 100644
--- a/media/libmedia/AudioRecord.cpp
+++ b/media/libmedia/AudioRecord.cpp
@@ -63,7 +63,7 @@ status_t AudioRecord::getMinFrameCount(
size <<= 1;
if (audio_is_linear_pcm(format)) {
- int channelCount = popcount(channelMask);
+ uint32_t channelCount = popcount(channelMask);
size /= channelCount * audio_bytes_per_sample(format);
}
@@ -162,8 +162,9 @@ status_t AudioRecord::set(
if (!audio_is_input_channel(channelMask)) {
return BAD_VALUE;
}
-
- int channelCount = popcount(channelMask);
+ mChannelMask = channelMask;
+ uint32_t channelCount = popcount(channelMask);
+ mChannelCount = channelCount;
if (sessionId == 0 ) {
mSessionId = AudioSystem::newAudioSessionId();
@@ -201,8 +202,7 @@ status_t AudioRecord::set(
}
// create the IAudioRecord
- status = openRecord_l(sampleRate, format, channelMask,
- frameCount, input);
+ status = openRecord_l(sampleRate, format, frameCount, input);
if (status != NO_ERROR) {
return status;
}
@@ -217,8 +217,6 @@ status_t AudioRecord::set(
mFormat = format;
// Update buffer size in case it has been limited by AudioFlinger during track creation
mFrameCount = mCblk->frameCount_;
- mChannelCount = (uint8_t)channelCount;
- mChannelMask = channelMask;
if (audio_is_linear_pcm(mFormat)) {
mFrameSize = channelCount * audio_bytes_per_sample(format);
@@ -261,7 +259,7 @@ audio_format_t AudioRecord::format() const
return mFormat;
}
-int AudioRecord::channelCount() const
+uint32_t AudioRecord::channelCount() const
{
return mChannelCount;
}
@@ -432,7 +430,6 @@ unsigned int AudioRecord::getInputFramesLost() const
status_t AudioRecord::openRecord_l(
uint32_t sampleRate,
audio_format_t format,
- audio_channel_mask_t channelMask,
size_t frameCount,
audio_io_handle_t input)
{
@@ -449,7 +446,7 @@ status_t AudioRecord::openRecord_l(
int originalSessionId = mSessionId;
sp<IAudioRecord> record = audioFlinger->openRecord(getpid(), input,
sampleRate, format,
- channelMask,
+ mChannelMask,
frameCount,
IAudioFlinger::TRACK_DEFAULT,
tid,
@@ -784,8 +781,7 @@ status_t AudioRecord::restoreRecord_l(audio_track_cblk_t*& refCblk)
// if the new IAudioRecord is created, openRecord_l() will modify the
// following member variables: mAudioRecord, mCblkMemory and mCblk.
// It will also delete the strong references on previous IAudioRecord and IMemory
- result = openRecord_l(cblk->sampleRate, mFormat, mChannelMask,
- mFrameCount, getInput_l());
+ result = openRecord_l(cblk->sampleRate, mFormat, mFrameCount, getInput_l());
if (result == NO_ERROR) {
newCblk = mCblk;
// callback thread or sync event hasn't changed
diff --git a/media/libmedia/AudioTrack.cpp b/media/libmedia/AudioTrack.cpp
index ff1b21b..e40895a 100644
--- a/media/libmedia/AudioTrack.cpp
+++ b/media/libmedia/AudioTrack.cpp
@@ -243,7 +243,9 @@ status_t AudioTrack::set(
ALOGE("Invalid channel mask %#x", channelMask);
return BAD_VALUE;
}
+ mChannelMask = channelMask;
uint32_t channelCount = popcount(channelMask);
+ mChannelCount = channelCount;
audio_io_handle_t output = AudioSystem::getOutput(
streamType,
@@ -275,7 +277,6 @@ status_t AudioTrack::set(
status_t status = createTrack_l(streamType,
sampleRate,
format,
- channelMask,
frameCount,
flags,
sharedBuffer,
@@ -293,8 +294,6 @@ status_t AudioTrack::set(
mStreamType = streamType;
mFormat = format;
- mChannelMask = channelMask;
- mChannelCount = channelCount;
if (audio_is_linear_pcm(format)) {
mFrameSize = channelCount * audio_bytes_per_sample(format);
@@ -340,7 +339,7 @@ audio_format_t AudioTrack::format() const
return mFormat;
}
-int AudioTrack::channelCount() const
+uint32_t AudioTrack::channelCount() const
{
return mChannelCount;
}
@@ -758,7 +757,6 @@ status_t AudioTrack::createTrack_l(
audio_stream_type_t streamType,
uint32_t sampleRate,
audio_format_t format,
- audio_channel_mask_t channelMask,
size_t frameCount,
audio_output_flags_t flags,
const sp<IMemory>& sharedBuffer,
@@ -808,17 +806,16 @@ status_t AudioTrack::createTrack_l(
} else if (sharedBuffer != 0) {
- // Ensure that buffer alignment matches channelCount
- int channelCount = popcount(channelMask);
+ // Ensure that buffer alignment matches channel count
// 8-bit data in shared memory is not currently supported by AudioFlinger
size_t alignment = /* format == AUDIO_FORMAT_PCM_8_BIT ? 1 : */ 2;
- if (channelCount > 1) {
+ if (mChannelCount > 1) {
// More than 2 channels does not require stronger alignment than stereo
alignment <<= 1;
}
- if (((uint32_t)sharedBuffer->pointer() & (alignment - 1)) != 0) {
- ALOGE("Invalid buffer alignment: address %p, channelCount %d",
- sharedBuffer->pointer(), channelCount);
+ if (((size_t)sharedBuffer->pointer() & (alignment - 1)) != 0) {
+ ALOGE("Invalid buffer alignment: address %p, channel count %u",
+ sharedBuffer->pointer(), mChannelCount);
return BAD_VALUE;
}
@@ -826,7 +823,7 @@ status_t AudioTrack::createTrack_l(
// there's no frameCount parameter.
// But when initializing a shared buffer AudioTrack via set(),
// there _is_ a frameCount parameter. We silently ignore it.
- frameCount = sharedBuffer->size()/channelCount/sizeof(int16_t);
+ frameCount = sharedBuffer->size()/mChannelCount/sizeof(int16_t);
} else if (!(flags & AUDIO_OUTPUT_FLAG_FAST)) {
@@ -890,7 +887,7 @@ status_t AudioTrack::createTrack_l(
// AudioFlinger only sees 16-bit PCM
format == AUDIO_FORMAT_PCM_8_BIT ?
AUDIO_FORMAT_PCM_16_BIT : format,
- channelMask,
+ mChannelMask,
frameCount,
&trackFlags,
sharedBuffer,
@@ -1398,7 +1395,6 @@ status_t AudioTrack::restoreTrack_l(audio_track_cblk_t*& refCblk, bool fromStart
result = createTrack_l(mStreamType,
cblk->sampleRate,
mFormat,
- mChannelMask,
mReqFrameCount, // so that frame count never goes down
mFlags,
mSharedBuffer,
diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp
index 5f3754f..0c1ab3c 100644
--- a/services/audioflinger/AudioFlinger.cpp
+++ b/services/audioflinger/AudioFlinger.cpp
@@ -6181,7 +6181,7 @@ bool AudioFlinger::RecordThread::threadLoop()
framesIn = framesOut;
mRsmpInIndex += framesIn;
framesOut -= framesIn;
- if ((int)mChannelCount == mReqChannelCount ||
+ if (mChannelCount == mReqChannelCount ||
mFormat != AUDIO_FORMAT_PCM_16_BIT) {
memcpy(dst, src, framesIn * mFrameSize);
} else {
@@ -6197,7 +6197,7 @@ bool AudioFlinger::RecordThread::threadLoop()
if (framesOut && mFrameCount == mRsmpInIndex) {
void *readInto;
if (framesOut == mFrameCount &&
- ((int)mChannelCount == mReqChannelCount ||
+ (mChannelCount == mReqChannelCount ||
mFormat != AUDIO_FORMAT_PCM_16_BIT)) {
readInto = buffer.raw;
framesOut = 0;
@@ -6576,7 +6576,7 @@ void AudioFlinger::RecordThread::dumpInternals(int fd, const Vector<String16>& a
result.append(buffer);
snprintf(buffer, SIZE, "Resampling: %d\n", (mResampler != NULL));
result.append(buffer);
- snprintf(buffer, SIZE, "Out channel count: %d\n", mReqChannelCount);
+ snprintf(buffer, SIZE, "Out channel count: %u\n", mReqChannelCount);
result.append(buffer);
snprintf(buffer, SIZE, "Out sample rate: %u\n", mReqSampleRate);
result.append(buffer);
@@ -6674,7 +6674,7 @@ bool AudioFlinger::RecordThread::checkForNewParameters_l()
int value;
audio_format_t reqFormat = mFormat;
uint32_t reqSamplingRate = mReqSampleRate;
- int reqChannelCount = mReqChannelCount;
+ uint32_t reqChannelCount = mReqChannelCount;
if (param.getInt(String8(AudioParameter::keySamplingRate), value) == NO_ERROR) {
reqSamplingRate = value;
diff --git a/services/audioflinger/AudioFlinger.h b/services/audioflinger/AudioFlinger.h
index 61f459c..2541b15 100644
--- a/services/audioflinger/AudioFlinger.h
+++ b/services/audioflinger/AudioFlinger.h
@@ -419,7 +419,7 @@ private:
return mFormat;
}
- int channelCount() const { return mChannelCount; }
+ uint32_t channelCount() const { return mChannelCount; }
audio_channel_mask_t channelMask() const { return mChannelMask; }
@@ -565,7 +565,7 @@ private:
// dynamic externally-visible
uint32_t sampleRate() const { return mSampleRate; }
- int channelCount() const { return mChannelCount; }
+ uint32_t channelCount() const { return mChannelCount; }
audio_channel_mask_t channelMask() const { return mChannelMask; }
audio_format_t format() const { return mFormat; }
// Called by AudioFlinger::frameCount(audio_io_handle_t output) and effects,
@@ -1593,7 +1593,7 @@ public:
int16_t *mRsmpInBuffer;
size_t mRsmpInIndex;
size_t mInputBytes;
- const int mReqChannelCount;
+ const uint32_t mReqChannelCount;
const uint32_t mReqSampleRate;
ssize_t mBytesRead;
// sync event triggering actual audio capture. Frames read before this event will