Remove system library classes from DataSourceBase

Test: build.
Bug: 67908556
Change-Id: Ib56b3cd92ecc781fc2c4ff3696e71051ce8e212d
diff --git a/media/extractors/mkv/MatroskaExtractor.cpp b/media/extractors/mkv/MatroskaExtractor.cpp
index 5592a88..3f832bc 100644
--- a/media/extractors/mkv/MatroskaExtractor.cpp
+++ b/media/extractors/mkv/MatroskaExtractor.cpp
@@ -542,12 +542,11 @@
     return ptr[0] << 16 | ptr[1] << 8 | ptr[2];
 }
 
-static AString uriDebugString(const AString &uri) {
+static AString uriDebugString(const char *uri) {
     // find scheme
     AString scheme;
-    const char *chars = uri.c_str();
-    for (size_t i = 0; i < uri.size(); i++) {
-        const char c = chars[i];
+    for (size_t i = 0; i < strlen(uri); i++) {
+        const char c = uri[i];
         if (!isascii(c)) {
             break;
         } else if (isalpha(c)) {
@@ -899,8 +898,12 @@
     }
 
     if (ret < 0) {
+        char uri[1024];
+        if(!mDataSource->getUri(uri, sizeof(uri))) {
+            uri[0] = '\0';
+        }
         ALOGW("Corrupt %s source: %s", mIsWebm ? "webm" : "matroska",
-                uriDebugString(mDataSource->getUri()).c_str());
+                uriDebugString(uri).c_str());
         delete mSegment;
         mSegment = NULL;
         return;
diff --git a/media/extractors/mp4/MPEG4Extractor.h b/media/extractors/mp4/MPEG4Extractor.h
index 9a9f0d1..831f120 100644
--- a/media/extractors/mp4/MPEG4Extractor.h
+++ b/media/extractors/mp4/MPEG4Extractor.h
@@ -24,9 +24,10 @@
 #include <media/MediaExtractor.h>
 #include <media/stagefright/MetaDataBase.h>
 #include <media/stagefright/foundation/AString.h>
+#include <utils/KeyedVector.h>
 #include <utils/List.h>
-#include <utils/Vector.h>
 #include <utils/String8.h>
+#include <utils/Vector.h>
 
 namespace android {
 struct AMessage;
diff --git a/media/libmediaextractor/DataSourceBase.cpp b/media/libmediaextractor/DataSourceBase.cpp
index d3af4eb..8f47ee5 100644
--- a/media/libmediaextractor/DataSourceBase.cpp
+++ b/media/libmediaextractor/DataSourceBase.cpp
@@ -123,8 +123,8 @@
     return ERROR_UNSUPPORTED;
 }
 
-String8 DataSourceBase::getMIMEType() const {
-    return String8("application/octet-stream");
+bool DataSourceBase::getUri(char *uriString __unused, size_t bufferSize __unused) {
+    return false;
 }
 
 }  // namespace android
diff --git a/media/libmediaextractor/include/media/DataSource.h b/media/libmediaextractor/include/media/DataSource.h
index 1ae2e21..0e59f39 100644
--- a/media/libmediaextractor/include/media/DataSource.h
+++ b/media/libmediaextractor/include/media/DataSource.h
@@ -41,6 +41,34 @@
         return nullptr;
     }
 
+    virtual String8 toString() {
+        return String8("<unspecified>");
+    }
+
+    virtual status_t reconnectAtOffset(off64_t /*offset*/) {
+        return ERROR_UNSUPPORTED;
+    }
+
+    ////////////////////////////////////////////////////////////////////////////
+
+    // for DRM
+    virtual sp<DecryptHandle> DrmInitialization(const char * /*mime*/ = NULL) {
+        return NULL;
+    }
+
+    virtual String8 getUri() {
+        return String8();
+    }
+
+    virtual bool getUri(char *uriString, size_t bufferSize) final {
+        int ret = snprintf(uriString, bufferSize, "%s", getUri().c_str());
+        return ret >= 0 && static_cast<size_t>(ret) < bufferSize;
+    }
+
+    virtual String8 getMIMEType() const {
+        return String8("application/octet-stream");
+    }
+
 protected:
     virtual ~DataSource() {}
 
diff --git a/media/libmediaextractor/include/media/DataSourceBase.h b/media/libmediaextractor/include/media/DataSourceBase.h
index 8028dd7..51993da 100644
--- a/media/libmediaextractor/include/media/DataSourceBase.h
+++ b/media/libmediaextractor/include/media/DataSourceBase.h
@@ -19,10 +19,7 @@
 #define DATA_SOURCE_BASE_H_
 
 #include <sys/types.h>
-#include <media/stagefright/MediaErrors.h>
 #include <utils/Errors.h>
-#include <utils/threads.h>
-#include <drm/DrmManagerClient.h>
 
 namespace android {
 
@@ -61,31 +58,12 @@
     // May return ERROR_UNSUPPORTED.
     virtual status_t getSize(off64_t *size);
 
+    virtual bool getUri(char *uriString, size_t bufferSize);
+
     virtual uint32_t flags() {
         return 0;
     }
 
-    virtual String8 toString() {
-        return String8("<unspecified>");
-    }
-
-    virtual status_t reconnectAtOffset(off64_t /*offset*/) {
-        return ERROR_UNSUPPORTED;
-    }
-
-    ////////////////////////////////////////////////////////////////////////////
-
-    // for DRM
-    virtual sp<DecryptHandle> DrmInitialization(const char * /*mime*/ = NULL) {
-        return NULL;
-    }
-
-    virtual String8 getUri() {
-        return String8();
-    }
-
-    virtual String8 getMIMEType() const;
-
     virtual void close() {};
 
 protected: