Remove RefBase from plugin-side DataSource
Extractor plugins now use DataSourceBase, which is not refcounted.
Framework-side DataSource derives from DataSourceBase and RefBase.
Also remove MediaExtractor::release, because it is not needed
anymore due to the way the extractor/track/datasource lifecycle
is managed now.
Also add source and target pid to CallbackDataSource name, to
make the extractor dumpsys more useful.
Bug: 67908556
Test: build, boot, CTS, skia test app for heif
Change-Id: I6b9cbe903f76b0cf27ba87f4a456f424803efd08
diff --git a/media/libmedia/IMediaExtractor.cpp b/media/libmedia/IMediaExtractor.cpp
index a8a7b82..51ccb5a 100644
--- a/media/libmedia/IMediaExtractor.cpp
+++ b/media/libmedia/IMediaExtractor.cpp
@@ -39,8 +39,7 @@
SETMEDIACAS,
SETUID,
NAME,
- GETMETRICS,
- RELEASE,
+ GETMETRICS
};
class BpMediaExtractor : public BpInterface<IMediaExtractor> {
@@ -140,13 +139,6 @@
ALOGV("name NOT IMPLEMENTED");
return NULL;
}
-
- virtual void release() {
- ALOGV("release");
- Parcel data, reply;
- data.writeInterfaceToken(BpMediaExtractor::getInterfaceDescriptor());
- remote()->transact(RELEASE, data, &reply);
- }
};
IMPLEMENT_META_INTERFACE(MediaExtractor, "android.media.IMediaExtractor");
@@ -224,12 +216,6 @@
reply->writeInt32(setMediaCas(casToken));
return OK;
}
- case RELEASE: {
- ALOGV("release");
- CHECK_INTERFACE(IMediaExtractor, data, reply);
- release();
- return OK;
- }
default:
return BBinder::onTransact(code, data, reply, flags);
}
diff --git a/media/libmedia/MidiIoWrapper.cpp b/media/libmedia/MidiIoWrapper.cpp
index 4e5d67f..0896e75 100644
--- a/media/libmedia/MidiIoWrapper.cpp
+++ b/media/libmedia/MidiIoWrapper.cpp
@@ -47,7 +47,7 @@
mLength = size;
}
-MidiIoWrapper::MidiIoWrapper(const sp<DataSource> &source) {
+MidiIoWrapper::MidiIoWrapper(DataSourceBase *source) {
ALOGV("MidiIoWrapper(DataSource)");
mFd = -1;
mDataSource = source;
diff --git a/media/libmedia/include/media/IMediaExtractor.h b/media/libmedia/include/media/IMediaExtractor.h
index 44f8c1d..9899429 100644
--- a/media/libmedia/include/media/IMediaExtractor.h
+++ b/media/libmedia/include/media/IMediaExtractor.h
@@ -68,8 +68,6 @@
virtual void setUID(uid_t uid) = 0;
virtual const char * name() = 0;
-
- virtual void release() = 0;
};
diff --git a/media/libmedia/include/media/MidiIoWrapper.h b/media/libmedia/include/media/MidiIoWrapper.h
index 2754b2c..a27b410 100644
--- a/media/libmedia/include/media/MidiIoWrapper.h
+++ b/media/libmedia/include/media/MidiIoWrapper.h
@@ -19,7 +19,7 @@
#include <libsonivox/eas_types.h>
-#include <media/DataSource.h>
+#include <media/DataSourceBase.h>
namespace android {
@@ -27,7 +27,7 @@
public:
MidiIoWrapper(const char *path);
MidiIoWrapper(int fd, off64_t offset, int64_t size);
- MidiIoWrapper(const sp<DataSource> &source);
+ MidiIoWrapper(DataSourceBase *source);
~MidiIoWrapper();
@@ -40,7 +40,7 @@
int mFd;
off64_t mBase;
int64_t mLength;
- sp<DataSource> mDataSource;
+ DataSourceBase *mDataSource;
EAS_FILE mEasFile;
};