Allow MediaExtractor to create FileSource
Remove binder call to MediaServer for reading files.
Test: Photos, Play Music, Play Movies, Youtube
Bug: 29125703
Change-Id: Id6abf592bf6d70b81158f6038b1982f0a537b9b9
diff --git a/services/mediaextractor/MediaExtractorService.cpp b/services/mediaextractor/MediaExtractorService.cpp
index 4a80166..08cbef6 100644
--- a/services/mediaextractor/MediaExtractorService.cpp
+++ b/services/mediaextractor/MediaExtractorService.cpp
@@ -22,6 +22,7 @@
#include <media/stagefright/DataSource.h>
#include <media/stagefright/MediaExtractor.h>
+#include <media/stagefright/RemoteDataSource.h>
#include "MediaExtractorService.h"
namespace android {
@@ -45,6 +46,12 @@
return ret;
}
+sp<IDataSource> MediaExtractorService::makeIDataSource(int fd, int64_t offset, int64_t length)
+{
+ sp<DataSource> source = DataSource::CreateFromFd(fd, offset, length);
+ return source.get() != nullptr ? source->asIDataSource() : nullptr;
+}
+
status_t MediaExtractorService::dump(int fd, const Vector<String16>& args) {
return dumpExtractors(fd, args);
}