Loading services/audioflinger/MmapTracks.h +2 −1 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ public: audio_format_t format, audio_channel_mask_t channelMask, audio_session_t sessionId, bool isOut, uid_t uid, pid_t pid, audio_port_handle_t portId = AUDIO_PORT_HANDLE_NONE); Loading @@ -40,7 +41,7 @@ public: virtual void stop(); virtual bool isFastTrack() const { return false; } static void appendDumpHeader(String8& result); void appendDumpHeader(String8& result); void appendDump(String8& result, bool active); // protected by MMapThread::mLock Loading services/audioflinger/Threads.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -8170,7 +8170,7 @@ status_t AudioFlinger::MmapThread::start(const AudioClient& client, // Given that MmapThread::mAttr is mutable, should a MmapTrack have attributes ? sp<MmapTrack> track = new MmapTrack(this, mAttr, mSampleRate, mFormat, mChannelMask, mSessionId, client.clientUid, client.clientPid, portId); isOutput(), client.clientUid, client.clientPid, portId); track->setSilenced_l(silenced); mActiveTracks.add(track); Loading Loading @@ -8696,7 +8696,7 @@ void AudioFlinger::MmapThread::dumpTracks(int fd, const Vector<String16>& args _ const char *prefix = " "; if (numtracks) { result.append(prefix); MmapTrack::appendDumpHeader(result); mActiveTracks[0]->appendDumpHeader(result); for (size_t i = 0; i < numtracks ; ++i) { sp<MmapTrack> track = mActiveTracks[i]; result.append(prefix); Loading services/audioflinger/Tracks.cpp +37 −19 Original line number Diff line number Diff line Loading @@ -495,7 +495,8 @@ void AudioFlinger::PlaybackThread::Track::appendDumpHeader(String8& result) { result.appendFormat("T Name Active Client Session S Flags " " Format Chn mask SRate " "ST L dB R dB VS dB " "ST Usg CT " " G db L dB R dB VS dB " " Server FrmCnt FrmRdy F Underruns Flushed" "%s\n", isServerLatencySupported() ? " Latency" : ""); Loading Loading @@ -584,7 +585,8 @@ void AudioFlinger::PlaybackThread::Track::appendDump(String8& result, bool activ result.appendFormat("%7s %6u %7u %2s 0x%03X " "%08X %08X %6u " "%2u %5.2g %5.2g %5.2g%c " "%2u %3x %2x " "%5.2g %5.2g %5.2g %5.2g%c " "%08X %6zu%c %6zu %c %9u%c %7u", active ? "yes" : "no", (mClient == 0) ? getpid() : mClient->pid(), Loading @@ -597,6 +599,10 @@ void AudioFlinger::PlaybackThread::Track::appendDump(String8& result, bool activ sampleRate(), mStreamType, mAttr.usage, mAttr.content_type, 20.0 * log10(mFinalVolume), 20.0 * log10(float_from_gain(gain_minifloat_unpack_left(vlr))), 20.0 * log10(float_from_gain(gain_minifloat_unpack_right(vlr))), 20.0 * log10(vsVolume.first), // VolumeShaper(s) total volume Loading Loading @@ -1809,14 +1815,16 @@ void AudioFlinger::RecordThread::RecordTrack::invalidate() void AudioFlinger::RecordThread::RecordTrack::appendDumpHeader(String8& result) { result.appendFormat("Active Client Session S Flags Format Chn mask SRate Server" " FrmCnt FrmRdy Sil%s\n", isServerLatencySupported() ? " Latency" : ""); result.appendFormat("Active Client Session S Flags " " Format Chn mask SRate Source " " Server FrmCnt FrmRdy Sil%s\n", isServerLatencySupported() ? " Latency" : ""); } void AudioFlinger::RecordThread::RecordTrack::appendDump(String8& result, bool active) { result.appendFormat("%c%5s %6u %7u %2s 0x%03X " "%08X %08X %6u " "%08X %08X %6u %6X " "%08X %6zu %6zu %3c", isFastTrack() ? 'F' : ' ', active ? "yes" : "no", Loading @@ -1828,6 +1836,7 @@ void AudioFlinger::RecordThread::RecordTrack::appendDump(String8& result, bool a mFormat, mChannelMask, mSampleRate, mAttr.source, mCblk->mServer, mFrameCount, Loading Loading @@ -1988,13 +1997,14 @@ AudioFlinger::MmapThread::MmapTrack::MmapTrack(ThreadBase *thread, audio_format_t format, audio_channel_mask_t channelMask, audio_session_t sessionId, bool isOut, uid_t uid, pid_t pid, audio_port_handle_t portId) : TrackBase(thread, NULL, attr, sampleRate, format, channelMask, (size_t)0 /* frameCount */, nullptr /* buffer */, (size_t)0 /* bufferSize */, sessionId, uid, false /* isOut */, sessionId, uid, isOut, ALLOC_NONE, TYPE_DEFAULT, portId), mPid(pid), mSilenced(false), mSilencedNotified(false) Loading Loading @@ -2042,19 +2052,27 @@ void AudioFlinger::MmapThread::MmapTrack::onTimestamp(const ExtendedTimestamp &t { } /*static*/ void AudioFlinger::MmapThread::MmapTrack::appendDumpHeader(String8& result) void AudioFlinger::MmapThread::MmapTrack::appendDumpHeader(String8& result) { result.append("Client Session Format Chn mask SRate\n"); result.appendFormat("Client Session Format Chn mask SRate Flags %s\n", isOut() ? "Usg CT": "Source"); } void AudioFlinger::MmapThread::MmapTrack::appendDump(String8& result, bool active __unused) { result.appendFormat("%6u %7u %08X %08X %6u\n", result.appendFormat("%6u %7u %08X %08X %6u 0x%03X ", mPid, mSessionId, mFormat, mChannelMask, mSampleRate); mSampleRate, mAttr.flags); if (isOut()) { result.appendFormat("%3x %2x", mAttr.usage, mAttr.content_type); } else { result.appendFormat("%6x", mAttr.source); } result.append("\n"); } } // namespace android Loading
services/audioflinger/MmapTracks.h +2 −1 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ public: audio_format_t format, audio_channel_mask_t channelMask, audio_session_t sessionId, bool isOut, uid_t uid, pid_t pid, audio_port_handle_t portId = AUDIO_PORT_HANDLE_NONE); Loading @@ -40,7 +41,7 @@ public: virtual void stop(); virtual bool isFastTrack() const { return false; } static void appendDumpHeader(String8& result); void appendDumpHeader(String8& result); void appendDump(String8& result, bool active); // protected by MMapThread::mLock Loading
services/audioflinger/Threads.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -8170,7 +8170,7 @@ status_t AudioFlinger::MmapThread::start(const AudioClient& client, // Given that MmapThread::mAttr is mutable, should a MmapTrack have attributes ? sp<MmapTrack> track = new MmapTrack(this, mAttr, mSampleRate, mFormat, mChannelMask, mSessionId, client.clientUid, client.clientPid, portId); isOutput(), client.clientUid, client.clientPid, portId); track->setSilenced_l(silenced); mActiveTracks.add(track); Loading Loading @@ -8696,7 +8696,7 @@ void AudioFlinger::MmapThread::dumpTracks(int fd, const Vector<String16>& args _ const char *prefix = " "; if (numtracks) { result.append(prefix); MmapTrack::appendDumpHeader(result); mActiveTracks[0]->appendDumpHeader(result); for (size_t i = 0; i < numtracks ; ++i) { sp<MmapTrack> track = mActiveTracks[i]; result.append(prefix); Loading
services/audioflinger/Tracks.cpp +37 −19 Original line number Diff line number Diff line Loading @@ -495,7 +495,8 @@ void AudioFlinger::PlaybackThread::Track::appendDumpHeader(String8& result) { result.appendFormat("T Name Active Client Session S Flags " " Format Chn mask SRate " "ST L dB R dB VS dB " "ST Usg CT " " G db L dB R dB VS dB " " Server FrmCnt FrmRdy F Underruns Flushed" "%s\n", isServerLatencySupported() ? " Latency" : ""); Loading Loading @@ -584,7 +585,8 @@ void AudioFlinger::PlaybackThread::Track::appendDump(String8& result, bool activ result.appendFormat("%7s %6u %7u %2s 0x%03X " "%08X %08X %6u " "%2u %5.2g %5.2g %5.2g%c " "%2u %3x %2x " "%5.2g %5.2g %5.2g %5.2g%c " "%08X %6zu%c %6zu %c %9u%c %7u", active ? "yes" : "no", (mClient == 0) ? getpid() : mClient->pid(), Loading @@ -597,6 +599,10 @@ void AudioFlinger::PlaybackThread::Track::appendDump(String8& result, bool activ sampleRate(), mStreamType, mAttr.usage, mAttr.content_type, 20.0 * log10(mFinalVolume), 20.0 * log10(float_from_gain(gain_minifloat_unpack_left(vlr))), 20.0 * log10(float_from_gain(gain_minifloat_unpack_right(vlr))), 20.0 * log10(vsVolume.first), // VolumeShaper(s) total volume Loading Loading @@ -1809,14 +1815,16 @@ void AudioFlinger::RecordThread::RecordTrack::invalidate() void AudioFlinger::RecordThread::RecordTrack::appendDumpHeader(String8& result) { result.appendFormat("Active Client Session S Flags Format Chn mask SRate Server" " FrmCnt FrmRdy Sil%s\n", isServerLatencySupported() ? " Latency" : ""); result.appendFormat("Active Client Session S Flags " " Format Chn mask SRate Source " " Server FrmCnt FrmRdy Sil%s\n", isServerLatencySupported() ? " Latency" : ""); } void AudioFlinger::RecordThread::RecordTrack::appendDump(String8& result, bool active) { result.appendFormat("%c%5s %6u %7u %2s 0x%03X " "%08X %08X %6u " "%08X %08X %6u %6X " "%08X %6zu %6zu %3c", isFastTrack() ? 'F' : ' ', active ? "yes" : "no", Loading @@ -1828,6 +1836,7 @@ void AudioFlinger::RecordThread::RecordTrack::appendDump(String8& result, bool a mFormat, mChannelMask, mSampleRate, mAttr.source, mCblk->mServer, mFrameCount, Loading Loading @@ -1988,13 +1997,14 @@ AudioFlinger::MmapThread::MmapTrack::MmapTrack(ThreadBase *thread, audio_format_t format, audio_channel_mask_t channelMask, audio_session_t sessionId, bool isOut, uid_t uid, pid_t pid, audio_port_handle_t portId) : TrackBase(thread, NULL, attr, sampleRate, format, channelMask, (size_t)0 /* frameCount */, nullptr /* buffer */, (size_t)0 /* bufferSize */, sessionId, uid, false /* isOut */, sessionId, uid, isOut, ALLOC_NONE, TYPE_DEFAULT, portId), mPid(pid), mSilenced(false), mSilencedNotified(false) Loading Loading @@ -2042,19 +2052,27 @@ void AudioFlinger::MmapThread::MmapTrack::onTimestamp(const ExtendedTimestamp &t { } /*static*/ void AudioFlinger::MmapThread::MmapTrack::appendDumpHeader(String8& result) void AudioFlinger::MmapThread::MmapTrack::appendDumpHeader(String8& result) { result.append("Client Session Format Chn mask SRate\n"); result.appendFormat("Client Session Format Chn mask SRate Flags %s\n", isOut() ? "Usg CT": "Source"); } void AudioFlinger::MmapThread::MmapTrack::appendDump(String8& result, bool active __unused) { result.appendFormat("%6u %7u %08X %08X %6u\n", result.appendFormat("%6u %7u %08X %08X %6u 0x%03X ", mPid, mSessionId, mFormat, mChannelMask, mSampleRate); mSampleRate, mAttr.flags); if (isOut()) { result.appendFormat("%3x %2x", mAttr.usage, mAttr.content_type); } else { result.appendFormat("%6x", mAttr.source); } result.append("\n"); } } // namespace android