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
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 @@
 
                 // 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 @@
                     // 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 @@
         // 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 @@
         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 @@
             //       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);