diff options
author | Glenn Kasten <gkasten@google.com> | 2012-05-31 14:35:01 -0700 |
---|---|---|
committer | Glenn Kasten <gkasten@google.com> | 2012-06-13 15:12:42 -0700 |
commit | 0c9d26d187017f7fb028ab52a0fbc6395142faa4 (patch) | |
tree | 35fd2f6babef082b85058fd27a69bda048687295 | |
parent | b4ea1ab821d652cb080910d4081f5f1318597a90 (diff) | |
download | frameworks_av-0c9d26d187017f7fb028ab52a0fbc6395142faa4.zip frameworks_av-0c9d26d187017f7fb028ab52a0fbc6395142faa4.tar.gz frameworks_av-0c9d26d187017f7fb028ab52a0fbc6395142faa4.tar.bz2 |
Log track name on obtain/releaseBuffer warnings
This should help diagnose problems by allowing us to correlate
the logs with the dumpsys media.audio_flinger output.
Change-Id: I8c7c592b4f87d13b0f29c66ce7a2f301a0f063c9
-rw-r--r-- | include/private/media/AudioTrackShared.h | 4 | ||||
-rw-r--r-- | media/libmedia/AudioTrack.cpp | 6 | ||||
-rw-r--r-- | services/audioflinger/AudioFlinger.cpp | 2 |
3 files changed, 6 insertions, 6 deletions
diff --git a/include/private/media/AudioTrackShared.h b/include/private/media/AudioTrackShared.h index 469f5ff..5b133f3 100644 --- a/include/private/media/AudioTrackShared.h +++ b/include/private/media/AudioTrackShared.h @@ -97,9 +97,7 @@ public: // read-only for client, server writes once at initialization and is then read-only uint8_t frameSize; // would normally be size_t, but 8 bits is plenty - - // never used - uint8_t pad1; + uint8_t mName; // normal tracks: track name, fast tracks: track index // used by client only uint16_t bufferTimeoutMs; // Maximum cumulated timeout before restarting audioflinger diff --git a/media/libmedia/AudioTrack.cpp b/media/libmedia/AudioTrack.cpp index e234532..7df9b75 100644 --- a/media/libmedia/AudioTrack.cpp +++ b/media/libmedia/AudioTrack.cpp @@ -987,8 +987,8 @@ status_t AudioTrack::obtainBuffer(Buffer* audioBuffer, int32_t waitCount) // timing out when a loop has been set and we have already written upto loop end // is a normal condition: no need to wake AudioFlinger up. if (cblk->user < cblk->loopEnd) { - ALOGW( "obtainBuffer timed out (is the CPU pegged?) %p " - "user=%08x, server=%08x", this, cblk->user, cblk->server); + ALOGW( "obtainBuffer timed out (is the CPU pegged?) %p name=%#x" + "user=%08x, server=%08x", this, cblk->mName, cblk->user, cblk->server); //unlock cblk mutex before calling mAudioTrack->start() (see issue #1617140) cblk->lock.unlock(); result = mAudioTrack->start(); @@ -1054,7 +1054,7 @@ void AudioTrack::releaseBuffer(Buffer* audioBuffer) // restart track if it was disabled by audioflinger due to previous underrun if (mActive && (mCblk->flags & CBLK_DISABLED_MSK)) { android_atomic_and(~CBLK_DISABLED_ON, &mCblk->flags); - ALOGW("releaseBuffer() track %p disabled, restarting", this); + ALOGW("releaseBuffer() track %p name=%#x disabled, restarting", this, mCblk->mName); mAudioTrack->start(); } } diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp index 586a916..900f74c 100644 --- a/services/audioflinger/AudioFlinger.cpp +++ b/services/audioflinger/AudioFlinger.cpp @@ -4287,6 +4287,7 @@ AudioFlinger::PlaybackThread::Track::Track( mCblk->frameSize = audio_is_linear_pcm(format) ? mChannelCount * sizeof(int16_t) : sizeof(uint8_t); // to avoid leaking a track name, do not allocate one unless there is an mCblk mName = thread->getTrackName_l((audio_channel_mask_t)channelMask); + mCblk->mName = mName; if (mName < 0) { ALOGE("no more track names available"); return; @@ -4302,6 +4303,7 @@ AudioFlinger::PlaybackThread::Track::Track( // this means we are potentially denying other more important fast tracks from // being created. It would be better to allocate the index dynamically. mFastIndex = i; + mCblk->mName = i; // Read the initial underruns because this field is never cleared by the fast mixer mObservedUnderruns = thread->getFastTrackUnderruns(i); thread->mFastTrackAvailMask &= ~(1 << i); |