ndk data source: add close API

Bug: 63934228
Change-Id: I4d5f0d6d6bee22d9ef61b85343beffa9e8bd5e74
diff --git a/media/ndk/NdkMediaDataSource.cpp b/media/ndk/NdkMediaDataSource.cpp
index 0cae6f4..f190f80 100644
--- a/media/ndk/NdkMediaDataSource.cpp
+++ b/media/ndk/NdkMediaDataSource.cpp
@@ -40,6 +40,7 @@
     void *userdata;
     AMediaDataSourceReadAt readAt;
     AMediaDataSourceGetSize getSize;
+    AMediaDataSourceClose close;
 };
 
 NdkDataSource::NdkDataSource(AMediaDataSource *dataSource)
@@ -77,6 +78,12 @@
     return String8("application/octet-stream");
 }
 
+void NdkDataSource::close() {
+    if (mDataSource->close != NULL && mDataSource->userdata != NULL) {
+        mDataSource->close(mDataSource->userdata);
+    }
+}
+
 extern "C" {
 
 EXPORT
@@ -85,6 +92,7 @@
     mSource->userdata = NULL;
     mSource->readAt = NULL;
     mSource->getSize = NULL;
+    mSource->close = NULL;
     return mSource;
 }
 
@@ -111,5 +119,10 @@
     mSource->getSize = getSize;
 }
 
+EXPORT
+void AMediaDataSource_setClose(AMediaDataSource *mSource, AMediaDataSourceClose close) {
+    mSource->close = close;
+}
+
 } // extern "C"