C-ify DataSource
Add a C API for DataSource/Base, and a helper so extractors
can continue using a C++ API.
Bug: 111407253
Test: build, boot, play some files
Change-Id: I1c8b2990e17d18eee53c9abf7ebef2ced0e8b7fd
diff --git a/media/extractors/mp4/ItemTable.cpp b/media/extractors/mp4/ItemTable.cpp
index be442e6..a61e60a 100644
--- a/media/extractors/mp4/ItemTable.cpp
+++ b/media/extractors/mp4/ItemTable.cpp
@@ -18,7 +18,8 @@
#define LOG_TAG "ItemTable"
#include <ItemTable.h>
-#include <media/DataSourceBase.h>
+#include <media/MediaExtractorPluginApi.h>
+#include <media/MediaExtractorPluginHelper.h>
#include <media/stagefright/MetaData.h>
#include <media/stagefright/MediaErrors.h>
#include <media/stagefright/foundation/ABuffer.h>
@@ -92,7 +93,7 @@
struct Box {
protected:
- Box(DataSourceBase *source, uint32_t type) :
+ Box(DataSourceHelper *source, uint32_t type) :
mDataSource(source), mType(type) {}
virtual ~Box() {}
@@ -104,14 +105,14 @@
inline uint32_t type() const { return mType; }
- inline DataSourceBase *source() const { return mDataSource; }
+ inline DataSourceHelper *source() const { return mDataSource; }
status_t parseChunk(off64_t *offset);
status_t parseChunks(off64_t offset, size_t size);
private:
- DataSourceBase *mDataSource;
+ DataSourceHelper *mDataSource;
uint32_t mType;
};
@@ -186,7 +187,7 @@
struct FullBox : public Box {
protected:
- FullBox(DataSourceBase *source, uint32_t type) :
+ FullBox(DataSourceHelper *source, uint32_t type) :
Box(source, type), mVersion(0), mFlags(0) {}
inline uint8_t version() const { return mVersion; }
@@ -221,7 +222,7 @@
//
struct PitmBox : public FullBox {
- PitmBox(DataSourceBase *source) :
+ PitmBox(DataSourceHelper *source) :
FullBox(source, FOURCC('p', 'i', 't', 'm')) {}
status_t parse(off64_t offset, size_t size, uint32_t *primaryItemId);
@@ -301,7 +302,7 @@
};
struct IlocBox : public FullBox {
- IlocBox(DataSourceBase *source, KeyedVector<uint32_t, ItemLoc> *itemLocs) :
+ IlocBox(DataSourceHelper *source, KeyedVector<uint32_t, ItemLoc> *itemLocs) :
FullBox(source, FOURCC('i', 'l', 'o', 'c')),
mItemLocs(itemLocs), mHasConstructMethod1(false) {}
@@ -471,7 +472,7 @@
//
struct ItemReference : public Box, public RefBase {
- ItemReference(DataSourceBase *source, uint32_t type, uint32_t itemIdSize) :
+ ItemReference(DataSourceHelper *source, uint32_t type, uint32_t itemIdSize) :
Box(source, type), mItemId(0), mRefIdSize(itemIdSize) {}
status_t parse(off64_t offset, size_t size);
@@ -626,7 +627,7 @@
}
struct IrefBox : public FullBox {
- IrefBox(DataSourceBase *source, Vector<sp<ItemReference> > *itemRefs) :
+ IrefBox(DataSourceHelper *source, Vector<sp<ItemReference> > *itemRefs) :
FullBox(source, FOURCC('i', 'r', 'e', 'f')), mRefIdSize(0), mItemRefs(itemRefs) {}
status_t parse(off64_t offset, size_t size);
@@ -688,7 +689,7 @@
};
struct IspeBox : public FullBox, public ItemProperty {
- IspeBox(DataSourceBase *source) :
+ IspeBox(DataSourceHelper *source) :
FullBox(source, FOURCC('i', 's', 'p', 'e')), mWidth(0), mHeight(0) {}
status_t parse(off64_t offset, size_t size) override;
@@ -724,7 +725,7 @@
}
struct HvccBox : public Box, public ItemProperty {
- HvccBox(DataSourceBase *source) :
+ HvccBox(DataSourceHelper *source) :
Box(source, FOURCC('h', 'v', 'c', 'C')) {}
status_t parse(off64_t offset, size_t size) override;
@@ -757,7 +758,7 @@
}
struct IrotBox : public Box, public ItemProperty {
- IrotBox(DataSourceBase *source) :
+ IrotBox(DataSourceHelper *source) :
Box(source, FOURCC('i', 'r', 'o', 't')), mAngle(0) {}
status_t parse(off64_t offset, size_t size) override;
@@ -786,7 +787,7 @@
}
struct ColrBox : public Box, public ItemProperty {
- ColrBox(DataSourceBase *source) :
+ ColrBox(DataSourceHelper *source) :
Box(source, FOURCC('c', 'o', 'l', 'r')) {}
status_t parse(off64_t offset, size_t size) override;
@@ -834,7 +835,7 @@
}
struct IpmaBox : public FullBox {
- IpmaBox(DataSourceBase *source, Vector<AssociationEntry> *associations) :
+ IpmaBox(DataSourceHelper *source, Vector<AssociationEntry> *associations) :
FullBox(source, FOURCC('i', 'p', 'm', 'a')), mAssociations(associations) {}
status_t parse(off64_t offset, size_t size);
@@ -908,7 +909,7 @@
}
struct IpcoBox : public Box {
- IpcoBox(DataSourceBase *source, Vector<sp<ItemProperty> > *properties) :
+ IpcoBox(DataSourceHelper *source, Vector<sp<ItemProperty> > *properties) :
Box(source, FOURCC('i', 'p', 'c', 'o')), mItemProperties(properties) {}
status_t parse(off64_t offset, size_t size);
@@ -965,7 +966,7 @@
}
struct IprpBox : public Box {
- IprpBox(DataSourceBase *source,
+ IprpBox(DataSourceHelper *source,
Vector<sp<ItemProperty> > *properties,
Vector<AssociationEntry> *associations) :
Box(source, FOURCC('i', 'p', 'r', 'p')),
@@ -1022,7 +1023,7 @@
};
struct InfeBox : public FullBox {
- InfeBox(DataSourceBase *source) :
+ InfeBox(DataSourceHelper *source) :
FullBox(source, FOURCC('i', 'n', 'f', 'e')) {}
status_t parse(off64_t offset, size_t size, ItemInfo *itemInfo);
@@ -1127,7 +1128,7 @@
}
struct IinfBox : public FullBox {
- IinfBox(DataSourceBase *source, Vector<ItemInfo> *itemInfos) :
+ IinfBox(DataSourceHelper *source, Vector<ItemInfo> *itemInfos) :
FullBox(source, FOURCC('i', 'i', 'n', 'f')),
mItemInfos(itemInfos), mHasGrids(false) {}
@@ -1196,7 +1197,7 @@
//////////////////////////////////////////////////////////////////
-ItemTable::ItemTable(DataSourceBase *source)
+ItemTable::ItemTable(DataSourceHelper *source)
: mDataSource(source),
mPrimaryItemId(0),
mIdatOffset(0),