diff options
Diffstat (limited to 'media/libmedia/AudioRecord.cpp')
-rw-r--r-- | media/libmedia/AudioRecord.cpp | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/media/libmedia/AudioRecord.cpp b/media/libmedia/AudioRecord.cpp index 4c4aad0..1ec596e 100644 --- a/media/libmedia/AudioRecord.cpp +++ b/media/libmedia/AudioRecord.cpp @@ -162,8 +162,19 @@ status_t AudioRecord::set( int channelCount = popcount(channelMask); + if (sessionId == 0 ) { + mSessionId = AudioSystem::newAudioSessionId(); + } else { + mSessionId = sessionId; + } + LOGV("set(): mSessionId %d", mSessionId); + audio_io_handle_t input = AudioSystem::getInput(inputSource, - sampleRate, format, channelMask, (audio_in_acoustics_t)flags); + sampleRate, + format, + channelMask, + (audio_in_acoustics_t)flags, + mSessionId); if (input == 0) { LOGE("Could not get audio input for record source %d", inputSource); return BAD_VALUE; @@ -187,8 +198,6 @@ status_t AudioRecord::set( notificationFrames = frameCount/2; } - mSessionId = sessionId; - // create the IAudioRecord status = openRecord_l(sampleRate, format, channelMask, frameCount, flags, input); @@ -589,8 +598,10 @@ audio_io_handle_t AudioRecord::getInput_l() { mInput = AudioSystem::getInput(mInputSource, mCblk->sampleRate, - mFormat, mChannelMask, - (audio_in_acoustics_t)mFlags); + mFormat, + mChannelMask, + (audio_in_acoustics_t)mFlags, + mSessionId); return mInput; } |