Expand mediaextractor dumpsys

Bug: 22775369
Change-Id: I3366a52ba7a00d1685a2211465f2f18f143d0efc
diff --git a/services/mediaextractor/MediaExtractorService.cpp b/services/mediaextractor/MediaExtractorService.cpp
index a2b35f6..0c93af1 100644
--- a/services/mediaextractor/MediaExtractorService.cpp
+++ b/services/mediaextractor/MediaExtractorService.cpp
@@ -26,69 +26,29 @@
 
 namespace android {
 
-typedef struct {
-    String8 mime;
-    String8 name;
-    pid_t owner;
-    wp<MediaExtractor> extractor;
-    String8 toString() {
-        String8 str = name;
-        str.append(" for mime ");
-        str.append(mime);
-        str.append(String8::format(", pid %d: ", owner));
-        if (extractor.promote() == NULL) {
-            str.append("deleted");
-        } else {
-            str.append("active");
-        }
-        return str;
-    }
-} ExtractorInstance;
-
-static Vector<ExtractorInstance> extractors;
-
 sp<IMediaExtractor> MediaExtractorService::makeExtractor(
         const sp<IDataSource> &remoteSource, const char *mime) {
     ALOGV("@@@ MediaExtractorService::makeExtractor for %s", mime);
 
     sp<DataSource> localSource = DataSource::CreateFromIDataSource(remoteSource);
 
-    sp<MediaExtractor> ret = MediaExtractor::CreateFromService(localSource, mime);
+    sp<IMediaExtractor> ret = MediaExtractor::CreateFromService(localSource, mime);
 
     ALOGV("extractor service created %p (%s)",
             ret.get(),
             ret == NULL ? "" : ret->name());
 
     if (ret != NULL) {
-        ExtractorInstance ex;
-        ex.mime = mime == NULL ? "NULL" : mime;
-        ex.name = ret->name();
-        ex.owner = IPCThreadState::self()->getCallingPid();
-        ex.extractor = ret;
-
-        if (extractors.size() > 10) {
-            extractors.resize(10);
-        }
-        extractors.push_front(ex);
+        registerMediaExtractor(ret, remoteSource, mime);
     }
 
     return ret;
 }
 
 status_t MediaExtractorService::dump(int fd, const Vector<String16>& args) {
-    String8 out;
-    out.append("Recent extractors, most recent first:\n");
-    for (size_t i = 0; i < extractors.size(); i++) {
-        ExtractorInstance ex = extractors.itemAt(i);
-        out.append("  ");
-        out.append(ex.toString());
-        out.append("\n");
-    }
-    write(fd, out.string(), out.size());
-    return OK;
+    return dumpExtractors(fd, args);
 }
 
-
 status_t MediaExtractorService::onTransact(uint32_t code, const Parcel& data, Parcel* reply,
         uint32_t flags)
 {