Loading services/audioflinger/AudioFlinger.cpp +0 −8 Original line number Diff line number Diff line Loading @@ -254,14 +254,6 @@ class DevicesFactoryHalCallbackImpl : public DevicesFactoryHalCallback { // ---------------------------------------------------------------------------- std::string formatToString(audio_format_t format) { std::string result; FormatConverter::toString(format, result); return result; } // ---------------------------------------------------------------------------- void AudioFlinger::instantiate() { sp<IServiceManager> sm(defaultServiceManager()); sm->addService(String16(IAudioFlinger::DEFAULT_SERVICE_NAME), Loading services/audioflinger/AudioFlinger.h +0 −16 Original line number Diff line number Diff line Loading @@ -152,11 +152,6 @@ class ServerProxy; using android::content::AttributionSourceState; struct stream_type_t { float volume = 1.f; bool mute = false; }; class AudioFlinger : public AudioFlingerServerAdapter::Delegate // IAudioFlinger client interface , public IAfClientCallback Loading Loading @@ -802,11 +797,6 @@ private: static inline constexpr const char *mMetricsId = AMEDIAMETRICS_KEY_AUDIO_FLINGER; public: // Keep in sync with java definition in media/java/android/media/AudioRecord.java static constexpr int32_t kMaxSharedAudioHistoryMs = 5000; private: std::map<media::audio::common::AudioMMapPolicyType, std::vector<media::audio::common::AudioMMapPolicyInfo>> mPolicyInfos; int32_t mAAudioBurstsPerBuffer = 0; Loading @@ -819,12 +809,6 @@ private: std::atomic_bool mBluetoothLatencyModesEnabled; }; std::string formatToString(audio_format_t format); std::string inputFlagsToString(audio_input_flags_t flags); std::string outputFlagsToString(audio_output_flags_t flags); std::string devicesToString(audio_devices_t devices); const char *sourceToString(audio_source_t source); // ---------------------------------------------------------------------------- } // namespace android Loading services/audioflinger/IAfThread.h +7 −0 Original line number Diff line number Diff line Loading @@ -57,6 +57,12 @@ class IAfTrackBase; class Client; class MelReporter; // Used internally for Threads.cpp and AudioFlinger.cpp struct stream_type_t { float volume = 1.f; bool mute = false; }; // Note this is exposed through IAfThreadBase::afThreadCallback() // and hence may be used by the Effect / Track framework. class IAfThreadCallback : public virtual RefBase { Loading Loading @@ -117,6 +123,7 @@ public: }; static const char* threadTypeToString(type_t type); static std::string formatToString(audio_format_t format); // compliant for MediaMetrics static bool isValidPcmSinkChannelMask(audio_channel_mask_t channelMask); static bool isValidPcmSinkFormat(audio_format_t format); Loading services/audioflinger/Threads.cpp +75 −66 Original line number Diff line number Diff line Loading @@ -20,45 +20,49 @@ // #define LOG_NDEBUG 0 #define ATRACE_TAG ATRACE_TAG_AUDIO #include "Configuration.h" #include <math.h> #include <fcntl.h> #include <memory> #include <sstream> #include <string> #include <linux/futex.h> #include <sys/stat.h> #include <sys/syscall.h> #include "Threads.h" #include "Client.h" #include "IAfEffect.h" #include "MelReporter.h" #include "ResamplerBufferProvider.h" #include <afutils/DumpTryLock.h> #include <afutils/Permission.h> #include <afutils/TypedLogger.h> #include <afutils/Vibrator.h> #include <audio_utils/MelProcessor.h> #include <audio_utils/Metadata.h> #ifdef DEBUG_CPU_USAGE #include <audio_utils/Statistics.h> #include <cpustats/ThreadCpuUsage.h> #endif #include <audio_utils/channels.h> #include <audio_utils/format.h> #include <audio_utils/minifloat.h> #include <audio_utils/mono_blend.h> #include <audio_utils/primitives.h> #include <audio_utils/safe_math.h> #include <audiomanager/AudioManager.h> #include <binder/IPCThreadState.h> #include <binder/IServiceManager.h> #include <binder/PersistableBundle.h> #include <cutils/bitops.h> #include <cutils/properties.h> #include <binder/PersistableBundle.h> #include <fastpath/AutoPark.h> #include <media/AudioContainers.h> #include <media/AudioDeviceTypeAddr.h> #include <media/AudioParameter.h> #include <media/AudioResamplerPublic.h> #ifdef ADD_BATTERY_DATA #include <media/IMediaPlayerService.h> #include <media/IMediaDeathNotifier.h> #endif #include <media/MmapStreamCallback.h> #include <media/RecordBufferConverter.h> #include <media/TypeConverter.h> #include <utils/Log.h> #include <utils/Trace.h> #include <private/media/AudioTrackShared.h> #include <private/android_filesystem_config.h> #include <audio_utils/Balance.h> #include <audio_utils/MelProcessor.h> #include <audio_utils/Metadata.h> #include <audio_utils/channels.h> #include <audio_utils/mono_blend.h> #include <audio_utils/primitives.h> #include <audio_utils/format.h> #include <audio_utils/minifloat.h> #include <audio_utils/safe_math.h> #include <system/audio_effects/effect_aec.h> #include <system/audio_effects/effect_downmix.h> #include <system/audio_effects/effect_ns.h> #include <system/audio_effects/effect_spatializer.h> #include <system/audio.h> // NBAIO implementations #include <media/audiohal/EffectsFactoryHalInterface.h> #include <media/audiohal/StreamHalInterface.h> #include <media/nbaio/AudioStreamInSource.h> #include <media/nbaio/AudioStreamOutSink.h> #include <media/nbaio/MonoPipe.h> Loading @@ -68,36 +72,27 @@ #include <media/nbaio/SourceAudioBufferProvider.h> #include <mediautils/BatteryNotifier.h> #include <mediautils/Process.h> #include <audiomanager/AudioManager.h> #include <powermanager/PowerManager.h> #include <media/audiohal/EffectsFactoryHalInterface.h> #include <media/audiohal/StreamHalInterface.h> #include "AudioFlinger.h" #include "Threads.h" #include <mediautils/SchedulingPolicyService.h> #include <mediautils/ServiceUtilities.h> #include <powermanager/PowerManager.h> #include <private/android_filesystem_config.h> #include <private/media/AudioTrackShared.h> #include <system/audio_effects/effect_aec.h> #include <system/audio_effects/effect_downmix.h> #include <system/audio_effects/effect_ns.h> #include <system/audio_effects/effect_spatializer.h> #include <utils/Log.h> #include <utils/Trace.h> #ifdef ADD_BATTERY_DATA #include <media/IMediaPlayerService.h> #include <media/IMediaDeathNotifier.h> #endif #ifdef DEBUG_CPU_USAGE #include <audio_utils/Statistics.h> #include <cpustats/ThreadCpuUsage.h> #endif #include <fastpath/AutoPark.h> #include <fcntl.h> #include <linux/futex.h> #include <math.h> #include <memory> #include <pthread.h> #include <afutils/DumpTryLock.h> #include <afutils/Permission.h> #include <afutils/TypedLogger.h> #include <afutils/Vibrator.h> #include <sstream> #include <string> #include <sys/stat.h> #include <sys/syscall.h> // ---------------------------------------------------------------------------- Loading Loading @@ -129,6 +124,9 @@ using audioflinger::SyncEvent; using media::IEffectClient; using content::AttributionSourceState; // Keep in sync with java definition in media/java/android/media/AudioRecord.java static constexpr int32_t kMaxSharedAudioHistoryMs = 5000; // retry counts for buffer fill timeout // 50 * ~20msecs = 1 second static const int8_t kMaxTrackRetries = 50; Loading Loading @@ -245,7 +243,7 @@ static int sFastTrackMultiplier = kFastTrackMultiplier; // and that all "fast" AudioRecord clients read from. In either case, the size can be small. static const size_t kRecordThreadReadOnlyHeapSize = 0xD000; static constexpr nsecs_t kDefaultStandbyTimeInNsecs = seconds(3); static const nsecs_t kDefaultStandbyTimeInNsecs = seconds(3); static nsecs_t getStandbyTimeInNanos() { static nsecs_t standbyTimeInNanos = []() { Loading Loading @@ -314,6 +312,15 @@ bool IAfThreadBase::isValidPcmSinkFormat(audio_format_t format) { // ---------------------------------------------------------------------------- // formatToString() needs to be exact for MediaMetrics purposes. // Do not use media/TypeConverter.h toString(). /* static */ std::string IAfThreadBase::formatToString(audio_format_t format) { std::string result; FormatConverter::toString(format, result); return result; } // TODO: move all toString helpers to audio.h // under #ifdef __cplusplus #endif static std::string patchSinksToString(const struct audio_patch *patch) Loading Loading @@ -1057,12 +1064,14 @@ void ThreadBase::dumpBase_l(int fd, const Vector<String16>& /* args */) dprintf(fd, " Standby: %s\n", mStandby ? "yes" : "no"); dprintf(fd, " Sample rate: %u Hz\n", mSampleRate); dprintf(fd, " HAL frame count: %zu\n", mFrameCount); dprintf(fd, " HAL format: 0x%x (%s)\n", mHALFormat, formatToString(mHALFormat).c_str()); dprintf(fd, " HAL format: 0x%x (%s)\n", mHALFormat, IAfThreadBase::formatToString(mHALFormat).c_str()); dprintf(fd, " HAL buffer size: %zu bytes\n", mBufferSize); dprintf(fd, " Channel count: %u\n", mChannelCount); dprintf(fd, " Channel mask: 0x%08x (%s)\n", mChannelMask, channelMaskToString(mChannelMask, mType != RECORD).string()); dprintf(fd, " Processing format: 0x%x (%s)\n", mFormat, formatToString(mFormat).c_str()); dprintf(fd, " Processing format: 0x%x (%s)\n", mFormat, IAfThreadBase::formatToString(mFormat).c_str()); dprintf(fd, " Processing frame size: %zu bytes\n", mFrameSize); dprintf(fd, " Pending config events:"); size_t numConfig = mConfigEvents.size(); Loading Loading @@ -3267,7 +3276,7 @@ void PlaybackThread::readOutputParameters_l() audio_output_flags_t flags = mOutput->flags; mediametrics::LogItem item(mThreadMetrics.getMetricsId()); // TODO: method in ThreadMetrics? item.set(AMEDIAMETRICS_PROP_EVENT, AMEDIAMETRICS_PROP_EVENT_VALUE_READPARAMETERS) .set(AMEDIAMETRICS_PROP_ENCODING, formatToString(mFormat).c_str()) .set(AMEDIAMETRICS_PROP_ENCODING, IAfThreadBase::formatToString(mFormat).c_str()) .set(AMEDIAMETRICS_PROP_SAMPLERATE, (int32_t)mSampleRate) .set(AMEDIAMETRICS_PROP_CHANNELMASK, (int32_t)mChannelMask) .set(AMEDIAMETRICS_PROP_CHANNELCOUNT, (int32_t)mChannelCount) Loading @@ -3278,7 +3287,7 @@ void PlaybackThread::readOutputParameters_l() .set(AMEDIAMETRICS_PROP_PREFIX_HAPTIC AMEDIAMETRICS_PROP_CHANNELCOUNT, (int32_t)mHapticChannelCount) .set(AMEDIAMETRICS_PROP_PREFIX_HAL AMEDIAMETRICS_PROP_ENCODING, formatToString(mHALFormat).c_str()) IAfThreadBase::formatToString(mHALFormat).c_str()) .set(AMEDIAMETRICS_PROP_PREFIX_HAL AMEDIAMETRICS_PROP_FRAMECOUNT, (int32_t)mFrameCount) // sic - added HAL ; Loading Loading @@ -8726,7 +8735,7 @@ sp<IAfRecordTrack> RecordThread::createRecordTrack_l( goto Exit; } if (maxSharedAudioHistoryMs < 0 || maxSharedAudioHistoryMs > AudioFlinger::kMaxSharedAudioHistoryMs) { || maxSharedAudioHistoryMs > kMaxSharedAudioHistoryMs) { lStatus = BAD_VALUE; goto Exit; } Loading Loading @@ -9550,7 +9559,7 @@ void RecordThread::readInputParameters_l() audio_input_flags_t flags = mInput->flags; mediametrics::LogItem item(mThreadMetrics.getMetricsId()); item.set(AMEDIAMETRICS_PROP_EVENT, AMEDIAMETRICS_PROP_EVENT_VALUE_READPARAMETERS) .set(AMEDIAMETRICS_PROP_ENCODING, formatToString(mFormat).c_str()) .set(AMEDIAMETRICS_PROP_ENCODING, IAfThreadBase::formatToString(mFormat).c_str()) .set(AMEDIAMETRICS_PROP_FLAGS, toString(flags).c_str()) .set(AMEDIAMETRICS_PROP_SAMPLERATE, (int32_t)mSampleRate) .set(AMEDIAMETRICS_PROP_CHANNELMASK, (int32_t)mChannelMask) Loading Loading @@ -10289,7 +10298,7 @@ void MmapThread::readHalParameters_l() // TODO: make a readHalParameters call? mediametrics::LogItem item(mThreadMetrics.getMetricsId()); item.set(AMEDIAMETRICS_PROP_EVENT, AMEDIAMETRICS_PROP_EVENT_VALUE_READPARAMETERS) .set(AMEDIAMETRICS_PROP_ENCODING, formatToString(mFormat).c_str()) .set(AMEDIAMETRICS_PROP_ENCODING, IAfThreadBase::formatToString(mFormat).c_str()) .set(AMEDIAMETRICS_PROP_SAMPLERATE, (int32_t)mSampleRate) .set(AMEDIAMETRICS_PROP_CHANNELMASK, (int32_t)mChannelMask) .set(AMEDIAMETRICS_PROP_CHANNELCOUNT, (int32_t)mChannelCount) Loading @@ -10302,7 +10311,7 @@ void MmapThread::readHalParameters_l() (int32_t)mHapticChannelCount) */ .set(AMEDIAMETRICS_PROP_PREFIX_HAL AMEDIAMETRICS_PROP_ENCODING, formatToString(mHALFormat).c_str()) IAfThreadBase::formatToString(mHALFormat).c_str()) .set(AMEDIAMETRICS_PROP_PREFIX_HAL AMEDIAMETRICS_PROP_FRAMECOUNT, (int32_t)mFrameCount) // sic - added HAL .record(); Loading services/audioflinger/Threads.h +19 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,25 @@ #pragma once // ADD_BATTERY_DATA AUDIO_WATCHDOG FAST_THREAD_STATISTICS STATE_QUEUE_DUMP TEE_SINK #include "Configuration.h" #include "IAfThread.h" #include "IAfTrack.h" #include <android-base/macros.h> // DISALLOW_COPY_AND_ASSIGN #include <android/os/IPowerManager.h> #include <afutils/AudioWatchdog.h> #include <afutils/NBAIO_Tee.h> #include <audio_utils/Balance.h> #include <audio_utils/SimpleLog.h> #include <datapath/ThreadMetrics.h> #include <fastpath/FastCapture.h> #include <fastpath/FastMixer.h> #include <mediautils/Synchronization.h> #include <mediautils/ThreadSnapshot.h> #include <timing/MonotonicFrameCounter.h> #include <utils/Log.h> namespace android { class AsyncCallbackThread; Loading Loading
services/audioflinger/AudioFlinger.cpp +0 −8 Original line number Diff line number Diff line Loading @@ -254,14 +254,6 @@ class DevicesFactoryHalCallbackImpl : public DevicesFactoryHalCallback { // ---------------------------------------------------------------------------- std::string formatToString(audio_format_t format) { std::string result; FormatConverter::toString(format, result); return result; } // ---------------------------------------------------------------------------- void AudioFlinger::instantiate() { sp<IServiceManager> sm(defaultServiceManager()); sm->addService(String16(IAudioFlinger::DEFAULT_SERVICE_NAME), Loading
services/audioflinger/AudioFlinger.h +0 −16 Original line number Diff line number Diff line Loading @@ -152,11 +152,6 @@ class ServerProxy; using android::content::AttributionSourceState; struct stream_type_t { float volume = 1.f; bool mute = false; }; class AudioFlinger : public AudioFlingerServerAdapter::Delegate // IAudioFlinger client interface , public IAfClientCallback Loading Loading @@ -802,11 +797,6 @@ private: static inline constexpr const char *mMetricsId = AMEDIAMETRICS_KEY_AUDIO_FLINGER; public: // Keep in sync with java definition in media/java/android/media/AudioRecord.java static constexpr int32_t kMaxSharedAudioHistoryMs = 5000; private: std::map<media::audio::common::AudioMMapPolicyType, std::vector<media::audio::common::AudioMMapPolicyInfo>> mPolicyInfos; int32_t mAAudioBurstsPerBuffer = 0; Loading @@ -819,12 +809,6 @@ private: std::atomic_bool mBluetoothLatencyModesEnabled; }; std::string formatToString(audio_format_t format); std::string inputFlagsToString(audio_input_flags_t flags); std::string outputFlagsToString(audio_output_flags_t flags); std::string devicesToString(audio_devices_t devices); const char *sourceToString(audio_source_t source); // ---------------------------------------------------------------------------- } // namespace android Loading
services/audioflinger/IAfThread.h +7 −0 Original line number Diff line number Diff line Loading @@ -57,6 +57,12 @@ class IAfTrackBase; class Client; class MelReporter; // Used internally for Threads.cpp and AudioFlinger.cpp struct stream_type_t { float volume = 1.f; bool mute = false; }; // Note this is exposed through IAfThreadBase::afThreadCallback() // and hence may be used by the Effect / Track framework. class IAfThreadCallback : public virtual RefBase { Loading Loading @@ -117,6 +123,7 @@ public: }; static const char* threadTypeToString(type_t type); static std::string formatToString(audio_format_t format); // compliant for MediaMetrics static bool isValidPcmSinkChannelMask(audio_channel_mask_t channelMask); static bool isValidPcmSinkFormat(audio_format_t format); Loading
services/audioflinger/Threads.cpp +75 −66 Original line number Diff line number Diff line Loading @@ -20,45 +20,49 @@ // #define LOG_NDEBUG 0 #define ATRACE_TAG ATRACE_TAG_AUDIO #include "Configuration.h" #include <math.h> #include <fcntl.h> #include <memory> #include <sstream> #include <string> #include <linux/futex.h> #include <sys/stat.h> #include <sys/syscall.h> #include "Threads.h" #include "Client.h" #include "IAfEffect.h" #include "MelReporter.h" #include "ResamplerBufferProvider.h" #include <afutils/DumpTryLock.h> #include <afutils/Permission.h> #include <afutils/TypedLogger.h> #include <afutils/Vibrator.h> #include <audio_utils/MelProcessor.h> #include <audio_utils/Metadata.h> #ifdef DEBUG_CPU_USAGE #include <audio_utils/Statistics.h> #include <cpustats/ThreadCpuUsage.h> #endif #include <audio_utils/channels.h> #include <audio_utils/format.h> #include <audio_utils/minifloat.h> #include <audio_utils/mono_blend.h> #include <audio_utils/primitives.h> #include <audio_utils/safe_math.h> #include <audiomanager/AudioManager.h> #include <binder/IPCThreadState.h> #include <binder/IServiceManager.h> #include <binder/PersistableBundle.h> #include <cutils/bitops.h> #include <cutils/properties.h> #include <binder/PersistableBundle.h> #include <fastpath/AutoPark.h> #include <media/AudioContainers.h> #include <media/AudioDeviceTypeAddr.h> #include <media/AudioParameter.h> #include <media/AudioResamplerPublic.h> #ifdef ADD_BATTERY_DATA #include <media/IMediaPlayerService.h> #include <media/IMediaDeathNotifier.h> #endif #include <media/MmapStreamCallback.h> #include <media/RecordBufferConverter.h> #include <media/TypeConverter.h> #include <utils/Log.h> #include <utils/Trace.h> #include <private/media/AudioTrackShared.h> #include <private/android_filesystem_config.h> #include <audio_utils/Balance.h> #include <audio_utils/MelProcessor.h> #include <audio_utils/Metadata.h> #include <audio_utils/channels.h> #include <audio_utils/mono_blend.h> #include <audio_utils/primitives.h> #include <audio_utils/format.h> #include <audio_utils/minifloat.h> #include <audio_utils/safe_math.h> #include <system/audio_effects/effect_aec.h> #include <system/audio_effects/effect_downmix.h> #include <system/audio_effects/effect_ns.h> #include <system/audio_effects/effect_spatializer.h> #include <system/audio.h> // NBAIO implementations #include <media/audiohal/EffectsFactoryHalInterface.h> #include <media/audiohal/StreamHalInterface.h> #include <media/nbaio/AudioStreamInSource.h> #include <media/nbaio/AudioStreamOutSink.h> #include <media/nbaio/MonoPipe.h> Loading @@ -68,36 +72,27 @@ #include <media/nbaio/SourceAudioBufferProvider.h> #include <mediautils/BatteryNotifier.h> #include <mediautils/Process.h> #include <audiomanager/AudioManager.h> #include <powermanager/PowerManager.h> #include <media/audiohal/EffectsFactoryHalInterface.h> #include <media/audiohal/StreamHalInterface.h> #include "AudioFlinger.h" #include "Threads.h" #include <mediautils/SchedulingPolicyService.h> #include <mediautils/ServiceUtilities.h> #include <powermanager/PowerManager.h> #include <private/android_filesystem_config.h> #include <private/media/AudioTrackShared.h> #include <system/audio_effects/effect_aec.h> #include <system/audio_effects/effect_downmix.h> #include <system/audio_effects/effect_ns.h> #include <system/audio_effects/effect_spatializer.h> #include <utils/Log.h> #include <utils/Trace.h> #ifdef ADD_BATTERY_DATA #include <media/IMediaPlayerService.h> #include <media/IMediaDeathNotifier.h> #endif #ifdef DEBUG_CPU_USAGE #include <audio_utils/Statistics.h> #include <cpustats/ThreadCpuUsage.h> #endif #include <fastpath/AutoPark.h> #include <fcntl.h> #include <linux/futex.h> #include <math.h> #include <memory> #include <pthread.h> #include <afutils/DumpTryLock.h> #include <afutils/Permission.h> #include <afutils/TypedLogger.h> #include <afutils/Vibrator.h> #include <sstream> #include <string> #include <sys/stat.h> #include <sys/syscall.h> // ---------------------------------------------------------------------------- Loading Loading @@ -129,6 +124,9 @@ using audioflinger::SyncEvent; using media::IEffectClient; using content::AttributionSourceState; // Keep in sync with java definition in media/java/android/media/AudioRecord.java static constexpr int32_t kMaxSharedAudioHistoryMs = 5000; // retry counts for buffer fill timeout // 50 * ~20msecs = 1 second static const int8_t kMaxTrackRetries = 50; Loading Loading @@ -245,7 +243,7 @@ static int sFastTrackMultiplier = kFastTrackMultiplier; // and that all "fast" AudioRecord clients read from. In either case, the size can be small. static const size_t kRecordThreadReadOnlyHeapSize = 0xD000; static constexpr nsecs_t kDefaultStandbyTimeInNsecs = seconds(3); static const nsecs_t kDefaultStandbyTimeInNsecs = seconds(3); static nsecs_t getStandbyTimeInNanos() { static nsecs_t standbyTimeInNanos = []() { Loading Loading @@ -314,6 +312,15 @@ bool IAfThreadBase::isValidPcmSinkFormat(audio_format_t format) { // ---------------------------------------------------------------------------- // formatToString() needs to be exact for MediaMetrics purposes. // Do not use media/TypeConverter.h toString(). /* static */ std::string IAfThreadBase::formatToString(audio_format_t format) { std::string result; FormatConverter::toString(format, result); return result; } // TODO: move all toString helpers to audio.h // under #ifdef __cplusplus #endif static std::string patchSinksToString(const struct audio_patch *patch) Loading Loading @@ -1057,12 +1064,14 @@ void ThreadBase::dumpBase_l(int fd, const Vector<String16>& /* args */) dprintf(fd, " Standby: %s\n", mStandby ? "yes" : "no"); dprintf(fd, " Sample rate: %u Hz\n", mSampleRate); dprintf(fd, " HAL frame count: %zu\n", mFrameCount); dprintf(fd, " HAL format: 0x%x (%s)\n", mHALFormat, formatToString(mHALFormat).c_str()); dprintf(fd, " HAL format: 0x%x (%s)\n", mHALFormat, IAfThreadBase::formatToString(mHALFormat).c_str()); dprintf(fd, " HAL buffer size: %zu bytes\n", mBufferSize); dprintf(fd, " Channel count: %u\n", mChannelCount); dprintf(fd, " Channel mask: 0x%08x (%s)\n", mChannelMask, channelMaskToString(mChannelMask, mType != RECORD).string()); dprintf(fd, " Processing format: 0x%x (%s)\n", mFormat, formatToString(mFormat).c_str()); dprintf(fd, " Processing format: 0x%x (%s)\n", mFormat, IAfThreadBase::formatToString(mFormat).c_str()); dprintf(fd, " Processing frame size: %zu bytes\n", mFrameSize); dprintf(fd, " Pending config events:"); size_t numConfig = mConfigEvents.size(); Loading Loading @@ -3267,7 +3276,7 @@ void PlaybackThread::readOutputParameters_l() audio_output_flags_t flags = mOutput->flags; mediametrics::LogItem item(mThreadMetrics.getMetricsId()); // TODO: method in ThreadMetrics? item.set(AMEDIAMETRICS_PROP_EVENT, AMEDIAMETRICS_PROP_EVENT_VALUE_READPARAMETERS) .set(AMEDIAMETRICS_PROP_ENCODING, formatToString(mFormat).c_str()) .set(AMEDIAMETRICS_PROP_ENCODING, IAfThreadBase::formatToString(mFormat).c_str()) .set(AMEDIAMETRICS_PROP_SAMPLERATE, (int32_t)mSampleRate) .set(AMEDIAMETRICS_PROP_CHANNELMASK, (int32_t)mChannelMask) .set(AMEDIAMETRICS_PROP_CHANNELCOUNT, (int32_t)mChannelCount) Loading @@ -3278,7 +3287,7 @@ void PlaybackThread::readOutputParameters_l() .set(AMEDIAMETRICS_PROP_PREFIX_HAPTIC AMEDIAMETRICS_PROP_CHANNELCOUNT, (int32_t)mHapticChannelCount) .set(AMEDIAMETRICS_PROP_PREFIX_HAL AMEDIAMETRICS_PROP_ENCODING, formatToString(mHALFormat).c_str()) IAfThreadBase::formatToString(mHALFormat).c_str()) .set(AMEDIAMETRICS_PROP_PREFIX_HAL AMEDIAMETRICS_PROP_FRAMECOUNT, (int32_t)mFrameCount) // sic - added HAL ; Loading Loading @@ -8726,7 +8735,7 @@ sp<IAfRecordTrack> RecordThread::createRecordTrack_l( goto Exit; } if (maxSharedAudioHistoryMs < 0 || maxSharedAudioHistoryMs > AudioFlinger::kMaxSharedAudioHistoryMs) { || maxSharedAudioHistoryMs > kMaxSharedAudioHistoryMs) { lStatus = BAD_VALUE; goto Exit; } Loading Loading @@ -9550,7 +9559,7 @@ void RecordThread::readInputParameters_l() audio_input_flags_t flags = mInput->flags; mediametrics::LogItem item(mThreadMetrics.getMetricsId()); item.set(AMEDIAMETRICS_PROP_EVENT, AMEDIAMETRICS_PROP_EVENT_VALUE_READPARAMETERS) .set(AMEDIAMETRICS_PROP_ENCODING, formatToString(mFormat).c_str()) .set(AMEDIAMETRICS_PROP_ENCODING, IAfThreadBase::formatToString(mFormat).c_str()) .set(AMEDIAMETRICS_PROP_FLAGS, toString(flags).c_str()) .set(AMEDIAMETRICS_PROP_SAMPLERATE, (int32_t)mSampleRate) .set(AMEDIAMETRICS_PROP_CHANNELMASK, (int32_t)mChannelMask) Loading Loading @@ -10289,7 +10298,7 @@ void MmapThread::readHalParameters_l() // TODO: make a readHalParameters call? mediametrics::LogItem item(mThreadMetrics.getMetricsId()); item.set(AMEDIAMETRICS_PROP_EVENT, AMEDIAMETRICS_PROP_EVENT_VALUE_READPARAMETERS) .set(AMEDIAMETRICS_PROP_ENCODING, formatToString(mFormat).c_str()) .set(AMEDIAMETRICS_PROP_ENCODING, IAfThreadBase::formatToString(mFormat).c_str()) .set(AMEDIAMETRICS_PROP_SAMPLERATE, (int32_t)mSampleRate) .set(AMEDIAMETRICS_PROP_CHANNELMASK, (int32_t)mChannelMask) .set(AMEDIAMETRICS_PROP_CHANNELCOUNT, (int32_t)mChannelCount) Loading @@ -10302,7 +10311,7 @@ void MmapThread::readHalParameters_l() (int32_t)mHapticChannelCount) */ .set(AMEDIAMETRICS_PROP_PREFIX_HAL AMEDIAMETRICS_PROP_ENCODING, formatToString(mHALFormat).c_str()) IAfThreadBase::formatToString(mHALFormat).c_str()) .set(AMEDIAMETRICS_PROP_PREFIX_HAL AMEDIAMETRICS_PROP_FRAMECOUNT, (int32_t)mFrameCount) // sic - added HAL .record(); Loading
services/audioflinger/Threads.h +19 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,25 @@ #pragma once // ADD_BATTERY_DATA AUDIO_WATCHDOG FAST_THREAD_STATISTICS STATE_QUEUE_DUMP TEE_SINK #include "Configuration.h" #include "IAfThread.h" #include "IAfTrack.h" #include <android-base/macros.h> // DISALLOW_COPY_AND_ASSIGN #include <android/os/IPowerManager.h> #include <afutils/AudioWatchdog.h> #include <afutils/NBAIO_Tee.h> #include <audio_utils/Balance.h> #include <audio_utils/SimpleLog.h> #include <datapath/ThreadMetrics.h> #include <fastpath/FastCapture.h> #include <fastpath/FastMixer.h> #include <mediautils/Synchronization.h> #include <mediautils/ThreadSnapshot.h> #include <timing/MonotonicFrameCounter.h> #include <utils/Log.h> namespace android { class AsyncCallbackThread; Loading