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: