Dump media recorder PID in dumpsys media.player, and fix minor bugs.
diff --git a/media/libmediaplayerservice/MediaPlayerService.cpp b/media/libmediaplayerservice/MediaPlayerService.cpp
index 84be874..9d2c779 100644
--- a/media/libmediaplayerservice/MediaPlayerService.cpp
+++ b/media/libmediaplayerservice/MediaPlayerService.cpp
@@ -225,7 +225,10 @@
 sp<IMediaRecorder> MediaPlayerService::createMediaRecorder(pid_t pid)
 {
 #ifndef NO_OPENCORE
-    sp<MediaRecorderClient> recorder = new MediaRecorderClient(pid);
+    sp<MediaRecorderClient> recorder = new MediaRecorderClient(this, pid);
+    wp<MediaRecorderClient> w = recorder;
+    Mutex::Autolock lock(mLock);
+    mMediaRecorderClients.add(w);
 #else
     sp<MediaRecorderClient> recorder = NULL;
 #endif
@@ -233,6 +236,13 @@
     return recorder;
 }
 
+void MediaPlayerService::removeMediaRecorderClient(wp<MediaRecorderClient> client)
+{
+    Mutex::Autolock lock(mLock);
+    mMediaRecorderClients.remove(client);
+    LOGV("Delete media recorder client");
+}
+
 sp<IMediaMetadataRetriever> MediaPlayerService::createMetadataRetriever(pid_t pid)
 {
     sp<MetadataRetrieverClient> retriever = new MetadataRetrieverClient(pid);
@@ -460,6 +470,13 @@
             sp<Client> c = mClients[i].promote();
             if (c != 0) c->dump(fd, args);
         }
+        for (int i = 0, n = mMediaRecorderClients.size(); i < n; ++i) {
+            result.append(" MediaRecorderClient\n");
+            sp<MediaRecorderClient> c = mMediaRecorderClients[i].promote();
+            snprintf(buffer, 255, "  pid(%d)\n\n", c->mPid);
+            result.append(buffer);
+        }
+
         result.append(" Files opened and/or mapped:\n");
         snprintf(buffer, SIZE, "/proc/%d/maps", myTid());
         FILE *f = fopen(buffer, "r");