Ndk wrapper: wrap new Ndk datasource/extractor APIs
Bug: 63934228
Change-Id: Id6200b5b5be3c7fa22cfb0233f749fc0e8ef2bc4
diff --git a/media/ndk/NdkMediaDataSource.cpp b/media/ndk/NdkMediaDataSource.cpp
index 0cae6f4..ba72164 100644
--- a/media/ndk/NdkMediaDataSource.cpp
+++ b/media/ndk/NdkMediaDataSource.cpp
@@ -43,7 +43,15 @@
};
NdkDataSource::NdkDataSource(AMediaDataSource *dataSource)
- : mDataSource(dataSource) {
+ : mDataSource(AMediaDataSource_new()) {
+ AMediaDataSource_setReadAt(mDataSource, dataSource->readAt);
+ AMediaDataSource_setGetSize(mDataSource, dataSource->getSize);
+ AMediaDataSource_setClose(mDataSource, dataSource->close);
+ AMediaDataSource_setUserdata(mDataSource, dataSource->userdata);
+}
+
+NdkDataSource::~NdkDataSource() {
+ AMediaDataSource_delete(mDataSource);
}
status_t NdkDataSource::initCheck() const {
diff --git a/media/ndk/NdkMediaDataSourcePriv.h b/media/ndk/NdkMediaDataSourcePriv.h
index a1cb331..7bb3a26 100644
--- a/media/ndk/NdkMediaDataSourcePriv.h
+++ b/media/ndk/NdkMediaDataSourcePriv.h
@@ -48,6 +48,9 @@
virtual String8 toString();
virtual String8 getMIMEType() const;
+protected:
+ virtual ~NdkDataSource();
+
private:
Mutex mLock;