Loading media/libmedia/AudioRecord.cpp +5 −0 Original line number Original line Diff line number Diff line Loading @@ -190,6 +190,11 @@ status_t AudioRecord::set( ALOGE("Invalid format %d", format); ALOGE("Invalid format %d", format); return BAD_VALUE; return BAD_VALUE; } } // Temporary restriction: AudioFlinger currently supports 16-bit PCM only if (format != AUDIO_FORMAT_PCM_16_BIT) { ALOGE("Format %d is not supported", format); return BAD_VALUE; } mFormat = format; mFormat = format; if (!audio_is_input_channel(channelMask)) { if (!audio_is_input_channel(channelMask)) { Loading services/audioflinger/AudioFlinger.cpp +6 −0 Original line number Original line Diff line number Diff line Loading @@ -1227,6 +1227,12 @@ sp<IAudioRecord> AudioFlinger::openRecord( goto Exit; goto Exit; } } if (format != AUDIO_FORMAT_PCM_16_BIT) { ALOGE("openRecord() invalid format %d", format); lStatus = BAD_VALUE; goto Exit; } // add client to list // add client to list { // scope for mLock { // scope for mLock Mutex::Autolock _l(mLock); Mutex::Autolock _l(mLock); Loading services/audioflinger/Threads.cpp +11 −7 Original line number Original line Diff line number Diff line Loading @@ -4290,8 +4290,7 @@ bool AudioFlinger::RecordThread::threadLoop() framesIn = framesOut; framesIn = framesOut; mRsmpInIndex += framesIn; mRsmpInIndex += framesIn; framesOut -= framesIn; framesOut -= framesIn; if (mChannelCount == mReqChannelCount || if (mChannelCount == mReqChannelCount) { mFormat != AUDIO_FORMAT_PCM_16_BIT) { memcpy(dst, src, framesIn * mFrameSize); memcpy(dst, src, framesIn * mFrameSize); } else { } else { if (mChannelCount == 1) { if (mChannelCount == 1) { Loading @@ -4305,9 +4304,7 @@ bool AudioFlinger::RecordThread::threadLoop() } } if (framesOut && mFrameCount == mRsmpInIndex) { if (framesOut && mFrameCount == mRsmpInIndex) { void *readInto; void *readInto; if (framesOut == mFrameCount && if (framesOut == mFrameCount && mChannelCount == mReqChannelCount) { (mChannelCount == mReqChannelCount || mFormat != AUDIO_FORMAT_PCM_16_BIT)) { readInto = buffer.raw; readInto = buffer.raw; framesOut = 0; framesOut = 0; } else { } else { Loading Loading @@ -4779,9 +4776,13 @@ bool AudioFlinger::RecordThread::checkForNewParameters_l() reconfig = true; reconfig = true; } } if (param.getInt(String8(AudioParameter::keyFormat), value) == NO_ERROR) { if (param.getInt(String8(AudioParameter::keyFormat), value) == NO_ERROR) { if ((audio_format_t) value != AUDIO_FORMAT_PCM_16_BIT) { status = BAD_VALUE; } else { reqFormat = (audio_format_t) value; reqFormat = (audio_format_t) value; reconfig = true; reconfig = true; } } } if (param.getInt(String8(AudioParameter::keyChannels), value) == NO_ERROR) { if (param.getInt(String8(AudioParameter::keyChannels), value) == NO_ERROR) { reqChannelCount = popcount(value); reqChannelCount = popcount(value); reconfig = true; reconfig = true; Loading Loading @@ -4918,6 +4919,9 @@ void AudioFlinger::RecordThread::readInputParameters() mChannelMask = mInput->stream->common.get_channels(&mInput->stream->common); mChannelMask = mInput->stream->common.get_channels(&mInput->stream->common); mChannelCount = popcount(mChannelMask); mChannelCount = popcount(mChannelMask); mFormat = mInput->stream->common.get_format(&mInput->stream->common); mFormat = mInput->stream->common.get_format(&mInput->stream->common); if (mFormat != AUDIO_FORMAT_PCM_16_BIT) { ALOGE("HAL format %d not supported; must be AUDIO_FORMAT_PCM_16_BIT", mFormat); } mFrameSize = audio_stream_frame_size(&mInput->stream->common); mFrameSize = audio_stream_frame_size(&mInput->stream->common); mBufferSize = mInput->stream->common.get_buffer_size(&mInput->stream->common); mBufferSize = mInput->stream->common.get_buffer_size(&mInput->stream->common); mFrameCount = mBufferSize / mFrameSize; mFrameCount = mBufferSize / mFrameSize; Loading Loading
media/libmedia/AudioRecord.cpp +5 −0 Original line number Original line Diff line number Diff line Loading @@ -190,6 +190,11 @@ status_t AudioRecord::set( ALOGE("Invalid format %d", format); ALOGE("Invalid format %d", format); return BAD_VALUE; return BAD_VALUE; } } // Temporary restriction: AudioFlinger currently supports 16-bit PCM only if (format != AUDIO_FORMAT_PCM_16_BIT) { ALOGE("Format %d is not supported", format); return BAD_VALUE; } mFormat = format; mFormat = format; if (!audio_is_input_channel(channelMask)) { if (!audio_is_input_channel(channelMask)) { Loading
services/audioflinger/AudioFlinger.cpp +6 −0 Original line number Original line Diff line number Diff line Loading @@ -1227,6 +1227,12 @@ sp<IAudioRecord> AudioFlinger::openRecord( goto Exit; goto Exit; } } if (format != AUDIO_FORMAT_PCM_16_BIT) { ALOGE("openRecord() invalid format %d", format); lStatus = BAD_VALUE; goto Exit; } // add client to list // add client to list { // scope for mLock { // scope for mLock Mutex::Autolock _l(mLock); Mutex::Autolock _l(mLock); Loading
services/audioflinger/Threads.cpp +11 −7 Original line number Original line Diff line number Diff line Loading @@ -4290,8 +4290,7 @@ bool AudioFlinger::RecordThread::threadLoop() framesIn = framesOut; framesIn = framesOut; mRsmpInIndex += framesIn; mRsmpInIndex += framesIn; framesOut -= framesIn; framesOut -= framesIn; if (mChannelCount == mReqChannelCount || if (mChannelCount == mReqChannelCount) { mFormat != AUDIO_FORMAT_PCM_16_BIT) { memcpy(dst, src, framesIn * mFrameSize); memcpy(dst, src, framesIn * mFrameSize); } else { } else { if (mChannelCount == 1) { if (mChannelCount == 1) { Loading @@ -4305,9 +4304,7 @@ bool AudioFlinger::RecordThread::threadLoop() } } if (framesOut && mFrameCount == mRsmpInIndex) { if (framesOut && mFrameCount == mRsmpInIndex) { void *readInto; void *readInto; if (framesOut == mFrameCount && if (framesOut == mFrameCount && mChannelCount == mReqChannelCount) { (mChannelCount == mReqChannelCount || mFormat != AUDIO_FORMAT_PCM_16_BIT)) { readInto = buffer.raw; readInto = buffer.raw; framesOut = 0; framesOut = 0; } else { } else { Loading Loading @@ -4779,9 +4776,13 @@ bool AudioFlinger::RecordThread::checkForNewParameters_l() reconfig = true; reconfig = true; } } if (param.getInt(String8(AudioParameter::keyFormat), value) == NO_ERROR) { if (param.getInt(String8(AudioParameter::keyFormat), value) == NO_ERROR) { if ((audio_format_t) value != AUDIO_FORMAT_PCM_16_BIT) { status = BAD_VALUE; } else { reqFormat = (audio_format_t) value; reqFormat = (audio_format_t) value; reconfig = true; reconfig = true; } } } if (param.getInt(String8(AudioParameter::keyChannels), value) == NO_ERROR) { if (param.getInt(String8(AudioParameter::keyChannels), value) == NO_ERROR) { reqChannelCount = popcount(value); reqChannelCount = popcount(value); reconfig = true; reconfig = true; Loading Loading @@ -4918,6 +4919,9 @@ void AudioFlinger::RecordThread::readInputParameters() mChannelMask = mInput->stream->common.get_channels(&mInput->stream->common); mChannelMask = mInput->stream->common.get_channels(&mInput->stream->common); mChannelCount = popcount(mChannelMask); mChannelCount = popcount(mChannelMask); mFormat = mInput->stream->common.get_format(&mInput->stream->common); mFormat = mInput->stream->common.get_format(&mInput->stream->common); if (mFormat != AUDIO_FORMAT_PCM_16_BIT) { ALOGE("HAL format %d not supported; must be AUDIO_FORMAT_PCM_16_BIT", mFormat); } mFrameSize = audio_stream_frame_size(&mInput->stream->common); mFrameSize = audio_stream_frame_size(&mInput->stream->common); mBufferSize = mInput->stream->common.get_buffer_size(&mInput->stream->common); mBufferSize = mInput->stream->common.get_buffer_size(&mInput->stream->common); mFrameCount = mBufferSize / mFrameSize; mFrameCount = mBufferSize / mFrameSize; Loading