Loading media/libaaudio/include/aaudio/AAudioTesting.h +7 −0 Original line number Diff line number Diff line Loading @@ -91,6 +91,13 @@ AAUDIO_API aaudio_policy_t AAudio_getMMapPolicy(); */ AAUDIO_API bool AAudioStream_isMMapUsed(AAudioStream* stream); /** * Returns the count of audio server death. * * @return audio server death count. */ AAUDIO_API int AAudio_getAudioServerDeathCount(); #ifdef __cplusplus } #endif Loading media/libaaudio/src/core/AAudioAudio.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ #include <aaudio/AAudio.h> #include <aaudio/AAudioTesting.h> #include <media/AudioSystem.h> #include "AudioClock.h" #include "AudioGlobal.h" #include "AudioStreamBuilder.h" Loading Loading @@ -604,3 +605,7 @@ AAUDIO_API aaudio_channel_mask_t AAudioStream_getChannelMask(AAudioStream* strea // Do not return channel index masks as they are not public. return AAudio_isChannelIndexMask(channelMask) ? AAUDIO_UNSPECIFIED : channelMask; } AAUDIO_API int AAudio_getAudioServerDeathCount() { return android::AudioSystem::getAudioFlingerDeathCount(); } media/libaaudio/src/libaaudio.map.txt +1 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ LIBAAUDIO { AAudio_convertResultToText; AAudio_convertStreamStateToText; AAudio_createStreamBuilder; AAudio_getAudioServerDeathCount; # introduced=33 AAudio_getMMapPolicy; AAudio_setMMapPolicy; AAudioStreamBuilder_setPerformanceMode; Loading media/libaudioclient/AudioSystem.cpp +10 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,8 @@ #define LOG_TAG "AudioSystem" //#define LOG_NDEBUG 0 #include <atomic> #include <utils/Log.h> #include <android/media/IAudioPolicyService.h> Loading Loading @@ -82,6 +84,8 @@ sp<CaptureStateListenerImpl> gSoundTriggerCaptureStateListener = nullptr; // HotwordDetectionService. sp<IBinder> gAudioFlingerBinder = nullptr; std::atomic<int> gAudioFlingerDeathCount{0}; void AudioSystem::setAudioFlingerBinder(const sp<IBinder>& audioFlinger) { if (audioFlinger->getInterfaceDescriptor() != media::IAudioFlingerService::descriptor) { ALOGE("setAudioFlingerBinder: received a binder of type %s", Loading Loading @@ -535,6 +539,8 @@ void AudioSystem::AudioFlingerClient::binderDied(const wp<IBinder>& who __unused reportError(DEAD_OBJECT); gAudioFlingerDeathCount += 1; ALOGW("AudioFlinger server died!"); } Loading Loading @@ -2410,6 +2416,10 @@ int32_t AudioSystem::getAAudioHardwareBurstMinUsec() { return af->getAAudioHardwareBurstMinUsec(); } int32_t AudioSystem::getAudioFlingerDeathCount() { return gAudioFlingerDeathCount.load(); } // --------------------------------------------------------------------------- int AudioSystem::AudioPolicyServiceClient::addAudioPortCallback( Loading media/libaudioclient/include/media/AudioSystem.h +5 −0 Original line number Diff line number Diff line Loading @@ -565,6 +565,11 @@ public: static status_t getDirectProfilesForAttributes(const audio_attributes_t* attr, std::vector<audio_profile>* audioProfiles); /** * @return count of AudioFlinger death. */ static int32_t getAudioFlingerDeathCount(); // A listener for capture state changes. class CaptureStateListener : public virtual RefBase { public: Loading Loading
media/libaaudio/include/aaudio/AAudioTesting.h +7 −0 Original line number Diff line number Diff line Loading @@ -91,6 +91,13 @@ AAUDIO_API aaudio_policy_t AAudio_getMMapPolicy(); */ AAUDIO_API bool AAudioStream_isMMapUsed(AAudioStream* stream); /** * Returns the count of audio server death. * * @return audio server death count. */ AAUDIO_API int AAudio_getAudioServerDeathCount(); #ifdef __cplusplus } #endif Loading
media/libaaudio/src/core/AAudioAudio.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ #include <aaudio/AAudio.h> #include <aaudio/AAudioTesting.h> #include <media/AudioSystem.h> #include "AudioClock.h" #include "AudioGlobal.h" #include "AudioStreamBuilder.h" Loading Loading @@ -604,3 +605,7 @@ AAUDIO_API aaudio_channel_mask_t AAudioStream_getChannelMask(AAudioStream* strea // Do not return channel index masks as they are not public. return AAudio_isChannelIndexMask(channelMask) ? AAUDIO_UNSPECIFIED : channelMask; } AAUDIO_API int AAudio_getAudioServerDeathCount() { return android::AudioSystem::getAudioFlingerDeathCount(); }
media/libaaudio/src/libaaudio.map.txt +1 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ LIBAAUDIO { AAudio_convertResultToText; AAudio_convertStreamStateToText; AAudio_createStreamBuilder; AAudio_getAudioServerDeathCount; # introduced=33 AAudio_getMMapPolicy; AAudio_setMMapPolicy; AAudioStreamBuilder_setPerformanceMode; Loading
media/libaudioclient/AudioSystem.cpp +10 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,8 @@ #define LOG_TAG "AudioSystem" //#define LOG_NDEBUG 0 #include <atomic> #include <utils/Log.h> #include <android/media/IAudioPolicyService.h> Loading Loading @@ -82,6 +84,8 @@ sp<CaptureStateListenerImpl> gSoundTriggerCaptureStateListener = nullptr; // HotwordDetectionService. sp<IBinder> gAudioFlingerBinder = nullptr; std::atomic<int> gAudioFlingerDeathCount{0}; void AudioSystem::setAudioFlingerBinder(const sp<IBinder>& audioFlinger) { if (audioFlinger->getInterfaceDescriptor() != media::IAudioFlingerService::descriptor) { ALOGE("setAudioFlingerBinder: received a binder of type %s", Loading Loading @@ -535,6 +539,8 @@ void AudioSystem::AudioFlingerClient::binderDied(const wp<IBinder>& who __unused reportError(DEAD_OBJECT); gAudioFlingerDeathCount += 1; ALOGW("AudioFlinger server died!"); } Loading Loading @@ -2410,6 +2416,10 @@ int32_t AudioSystem::getAAudioHardwareBurstMinUsec() { return af->getAAudioHardwareBurstMinUsec(); } int32_t AudioSystem::getAudioFlingerDeathCount() { return gAudioFlingerDeathCount.load(); } // --------------------------------------------------------------------------- int AudioSystem::AudioPolicyServiceClient::addAudioPortCallback( Loading
media/libaudioclient/include/media/AudioSystem.h +5 −0 Original line number Diff line number Diff line Loading @@ -565,6 +565,11 @@ public: static status_t getDirectProfilesForAttributes(const audio_attributes_t* attr, std::vector<audio_profile>* audioProfiles); /** * @return count of AudioFlinger death. */ static int32_t getAudioFlingerDeathCount(); // A listener for capture state changes. class CaptureStateListener : public virtual RefBase { public: Loading