Loading include/media/AudioSystem.h +2 −0 Original line number Diff line number Diff line Loading @@ -108,6 +108,8 @@ public: static unsigned int getInputFramesLost(audio_io_handle_t ioHandle); static int newAudioSessionId(); static void acquireAudioSessionId(int audioSession); static void releaseAudioSessionId(int audioSession); // types of io configuration change events received with ioConfigChanged() enum io_config_event { Loading include/media/IAudioFlinger.h +3 −0 Original line number Diff line number Diff line Loading @@ -139,6 +139,9 @@ public: virtual int newAudioSessionId() = 0; virtual void acquireAudioSessionId(int audioSession) = 0; virtual void releaseAudioSessionId(int audioSession) = 0; virtual status_t queryNumberEffects(uint32_t *numEffects) = 0; virtual status_t queryEffect(uint32_t index, effect_descriptor_t *pDescriptor) = 0; Loading media/libmedia/AudioRecord.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -114,6 +114,7 @@ AudioRecord::~AudioRecord() } mAudioRecord.clear(); IPCThreadState::self()->flushCommands(); AudioSystem::releaseAudioSessionId(mSessionId); } } Loading Loading @@ -233,6 +234,7 @@ status_t AudioRecord::set( mInputSource = (uint8_t)inputSource; mFlags = flags; mInput = input; AudioSystem::acquireAudioSessionId(mSessionId); return NO_ERROR; } Loading Loading @@ -465,6 +467,7 @@ status_t AudioRecord::openRecord_l( ((uint16_t)flags) << 16, &mSessionId, &status); if (record == 0) { LOGE("AudioFlinger could not create record track, status: %d", status); return status; Loading media/libmedia/AudioSystem.cpp +14 −0 Original line number Diff line number Diff line Loading @@ -356,6 +356,20 @@ int AudioSystem::newAudioSessionId() { return af->newAudioSessionId(); } void AudioSystem::acquireAudioSessionId(int audioSession) { const sp<IAudioFlinger>& af = AudioSystem::get_audio_flinger(); if (af != 0) { af->acquireAudioSessionId(audioSession); } } void AudioSystem::releaseAudioSessionId(int audioSession) { const sp<IAudioFlinger>& af = AudioSystem::get_audio_flinger(); if (af != 0) { af->releaseAudioSessionId(audioSession); } } // --------------------------------------------------------------------------- void AudioSystem::AudioFlingerClient::binderDied(const wp<IBinder>& who) { Loading media/libmedia/AudioTrack.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -134,6 +134,7 @@ AudioTrack::~AudioTrack() } mAudioTrack.clear(); IPCThreadState::self()->flushCommands(); AudioSystem::releaseAudioSessionId(mSessionId); } } Loading Loading @@ -259,6 +260,7 @@ status_t AudioTrack::set( mNewPosition = 0; mUpdatePeriod = 0; mFlags = flags; AudioSystem::acquireAudioSessionId(mSessionId); return NO_ERROR; } Loading Loading
include/media/AudioSystem.h +2 −0 Original line number Diff line number Diff line Loading @@ -108,6 +108,8 @@ public: static unsigned int getInputFramesLost(audio_io_handle_t ioHandle); static int newAudioSessionId(); static void acquireAudioSessionId(int audioSession); static void releaseAudioSessionId(int audioSession); // types of io configuration change events received with ioConfigChanged() enum io_config_event { Loading
include/media/IAudioFlinger.h +3 −0 Original line number Diff line number Diff line Loading @@ -139,6 +139,9 @@ public: virtual int newAudioSessionId() = 0; virtual void acquireAudioSessionId(int audioSession) = 0; virtual void releaseAudioSessionId(int audioSession) = 0; virtual status_t queryNumberEffects(uint32_t *numEffects) = 0; virtual status_t queryEffect(uint32_t index, effect_descriptor_t *pDescriptor) = 0; Loading
media/libmedia/AudioRecord.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -114,6 +114,7 @@ AudioRecord::~AudioRecord() } mAudioRecord.clear(); IPCThreadState::self()->flushCommands(); AudioSystem::releaseAudioSessionId(mSessionId); } } Loading Loading @@ -233,6 +234,7 @@ status_t AudioRecord::set( mInputSource = (uint8_t)inputSource; mFlags = flags; mInput = input; AudioSystem::acquireAudioSessionId(mSessionId); return NO_ERROR; } Loading Loading @@ -465,6 +467,7 @@ status_t AudioRecord::openRecord_l( ((uint16_t)flags) << 16, &mSessionId, &status); if (record == 0) { LOGE("AudioFlinger could not create record track, status: %d", status); return status; Loading
media/libmedia/AudioSystem.cpp +14 −0 Original line number Diff line number Diff line Loading @@ -356,6 +356,20 @@ int AudioSystem::newAudioSessionId() { return af->newAudioSessionId(); } void AudioSystem::acquireAudioSessionId(int audioSession) { const sp<IAudioFlinger>& af = AudioSystem::get_audio_flinger(); if (af != 0) { af->acquireAudioSessionId(audioSession); } } void AudioSystem::releaseAudioSessionId(int audioSession) { const sp<IAudioFlinger>& af = AudioSystem::get_audio_flinger(); if (af != 0) { af->releaseAudioSessionId(audioSession); } } // --------------------------------------------------------------------------- void AudioSystem::AudioFlingerClient::binderDied(const wp<IBinder>& who) { Loading
media/libmedia/AudioTrack.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -134,6 +134,7 @@ AudioTrack::~AudioTrack() } mAudioTrack.clear(); IPCThreadState::self()->flushCommands(); AudioSystem::releaseAudioSessionId(mSessionId); } } Loading Loading @@ -259,6 +260,7 @@ status_t AudioTrack::set( mNewPosition = 0; mUpdatePeriod = 0; mFlags = flags; AudioSystem::acquireAudioSessionId(mSessionId); return NO_ERROR; } Loading