Convert MP3Extractor to V3 format
Bug: 111407253
Test: manual, CTS
Change-Id: Id3a70df7512d45f8d37b125f1eb65d23f3bd68f7
diff --git a/media/extractors/mp3/Android.bp b/media/extractors/mp3/Android.bp
index 97b687f..4e2f248 100644
--- a/media/extractors/mp3/Android.bp
+++ b/media/extractors/mp3/Android.bp
@@ -12,14 +12,13 @@
shared_libs: [
"liblog",
- "libmediaextractor",
"libmediandk",
- "libstagefright_foundation",
],
static_libs: [
"libutils",
"libstagefright_id3",
+ "libstagefright_foundation",
],
name: "libmp3extractor",
diff --git a/media/extractors/mp3/MP3Extractor.cpp b/media/extractors/mp3/MP3Extractor.cpp
index 0e1ffb4..7abec54 100644
--- a/media/extractors/mp3/MP3Extractor.cpp
+++ b/media/extractors/mp3/MP3Extractor.cpp
@@ -207,7 +207,7 @@
return valid;
}
-class MP3Source : public MediaTrackHelperV2 {
+class MP3Source : public MediaTrackHelperV3 {
public:
MP3Source(
AMediaFormat *meta, DataSourceHelper *source,
@@ -220,7 +220,7 @@
virtual media_status_t getFormat(AMediaFormat *meta);
virtual media_status_t read(
- MediaBufferBase **buffer, const ReadOptions *options = NULL);
+ MediaBufferHelperV3 **buffer, const ReadOptions *options = NULL);
protected:
virtual ~MP3Source();
@@ -235,7 +235,6 @@
int64_t mCurrentTimeUs;
bool mStarted;
MP3Seeker *mSeeker;
- MediaBufferGroup *mGroup;
int64_t mBasisTimeUs;
int64_t mSamplesRead;
@@ -414,7 +413,7 @@
return mInitCheck != OK ? 0 : 1;
}
-MediaTrackHelperV2 *MP3Extractor::getTrack(size_t index) {
+MediaTrackHelperV3 *MP3Extractor::getTrack(size_t index) {
if (mInitCheck != OK || index != 0) {
return NULL;
}
@@ -455,7 +454,6 @@
mCurrentTimeUs(0),
mStarted(false),
mSeeker(seeker),
- mGroup(NULL),
mBasisTimeUs(0),
mSamplesRead(0) {
}
@@ -469,9 +467,7 @@
media_status_t MP3Source::start() {
CHECK(!mStarted);
- mGroup = new MediaBufferGroup;
-
- mGroup->add_buffer(MediaBufferBase::Create(kMaxFrameSize));
+ mBufferGroup->add_buffer(kMaxFrameSize);
mCurrentPos = mFirstFramePos;
mCurrentTimeUs = 0;
@@ -487,9 +483,6 @@
media_status_t MP3Source::stop() {
CHECK(mStarted);
- delete mGroup;
- mGroup = NULL;
-
mStarted = false;
return AMEDIA_OK;
@@ -500,7 +493,7 @@
}
media_status_t MP3Source::read(
- MediaBufferBase **out, const ReadOptions *options) {
+ MediaBufferHelperV3 **out, const ReadOptions *options) {
*out = NULL;
int64_t seekTimeUs;
@@ -530,8 +523,8 @@
mSamplesRead = 0;
}
- MediaBufferBase *buffer;
- status_t err = mGroup->acquire_buffer(&buffer);
+ MediaBufferHelperV3 *buffer;
+ status_t err = mBufferGroup->acquire_buffer(&buffer);
if (err != OK) {
return AMEDIA_ERROR_UNKNOWN;
}
@@ -597,8 +590,9 @@
buffer->set_range(0, frame_size);
- buffer->meta_data().setInt64(kKeyTime, mCurrentTimeUs);
- buffer->meta_data().setInt32(kKeyIsSyncFrame, 1);
+ AMediaFormat *meta = buffer->meta_data();
+ AMediaFormat_setInt64(meta, AMEDIAFORMAT_KEY_TIME_US, mCurrentTimeUs);
+ AMediaFormat_setInt32(meta, AMEDIAFORMAT_KEY_IS_SYNC_FRAME, 1);
mCurrentPos += frame_size;
@@ -674,14 +668,14 @@
return AMEDIA_OK;
}
-static CMediaExtractorV2* CreateExtractor(
+static CMediaExtractorV3* CreateExtractor(
CDataSource *source,
void *meta) {
Mp3Meta *metaData = static_cast<Mp3Meta *>(meta);
- return wrapV2(new MP3Extractor(new DataSourceHelper(source), metaData));
+ return wrapV3(new MP3Extractor(new DataSourceHelper(source), metaData));
}
-static CreatorFuncV2 Sniff(
+static CreatorFuncV3 Sniff(
CDataSource *source, float *confidence, void **meta,
FreeMetaFunc *freeMeta) {
off64_t pos = 0;
@@ -718,11 +712,11 @@
__attribute__ ((visibility ("default")))
ExtractorDef GETEXTRACTORDEF() {
return {
- EXTRACTORDEF_VERSION_CURRENT,
+ EXTRACTORDEF_VERSION_CURRENT + 1,
UUID("812a3f6c-c8cf-46de-b529-3774b14103d4"),
1, // version
"MP3 Extractor",
- { .v2 = Sniff }
+ { .v3 = Sniff }
};
}
diff --git a/media/extractors/mp3/MP3Extractor.h b/media/extractors/mp3/MP3Extractor.h
index 22547e2..fe72cff 100644
--- a/media/extractors/mp3/MP3Extractor.h
+++ b/media/extractors/mp3/MP3Extractor.h
@@ -32,13 +32,13 @@
class String8;
struct Mp3Meta;
-class MP3Extractor : public MediaExtractorPluginHelperV2 {
+class MP3Extractor : public MediaExtractorPluginHelperV3 {
public:
MP3Extractor(DataSourceHelper *source, Mp3Meta *meta);
~MP3Extractor();
virtual size_t countTracks();
- virtual MediaTrackHelperV2 *getTrack(size_t index);
+ virtual MediaTrackHelperV3 *getTrack(size_t index);
virtual media_status_t getTrackMetaData(AMediaFormat *meta, size_t index, uint32_t flags);
virtual media_status_t getMetaData(AMediaFormat *meta);
diff --git a/media/extractors/wav/WAVExtractor.cpp b/media/extractors/wav/WAVExtractor.cpp
index 17b5f81..1f0aae5 100644
--- a/media/extractors/wav/WAVExtractor.cpp
+++ b/media/extractors/wav/WAVExtractor.cpp
@@ -383,7 +383,6 @@
}
WAVSource::~WAVSource() {
- ALOGI("~WAVSource");
if (mStarted) {
stop();
}