Fix extractor plugin parameter handling
several extractors weren't returning proper status for invalid parameters.
Bug: 179062958
Test: atest ExtractorUnitTest -- --enable-module-dynamic-download=true
Change-Id: Ie3c63da19ae82a2c78e0fb83a727579f09ce8ad1
diff --git a/media/extractors/mp3/MP3Extractor.cpp b/media/extractors/mp3/MP3Extractor.cpp
index 5165822..5bbabdf 100644
--- a/media/extractors/mp3/MP3Extractor.cpp
+++ b/media/extractors/mp3/MP3Extractor.cpp
@@ -425,8 +425,7 @@
if (mInitCheck != OK || index != 0) {
return AMEDIA_ERROR_UNKNOWN;
}
- AMediaFormat_copy(meta, mMeta);
- return AMEDIA_OK;
+ return AMediaFormat_copy(meta, mMeta);
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/media/extractors/mp4/MPEG4Extractor.cpp b/media/extractors/mp4/MPEG4Extractor.cpp
index 221bf4f..314a822 100644
--- a/media/extractors/mp4/MPEG4Extractor.cpp
+++ b/media/extractors/mp4/MPEG4Extractor.cpp
@@ -640,8 +640,7 @@
}
}
- AMediaFormat_copy(meta, track->meta);
- return AMEDIA_OK;
+ return AMediaFormat_copy(meta, track->meta);
}
status_t MPEG4Extractor::readMetaData() {
diff --git a/media/extractors/mpeg2/MPEG2TSExtractor.cpp b/media/extractors/mpeg2/MPEG2TSExtractor.cpp
index 9e093eb..2e68809 100644
--- a/media/extractors/mpeg2/MPEG2TSExtractor.cpp
+++ b/media/extractors/mpeg2/MPEG2TSExtractor.cpp
@@ -268,6 +268,9 @@
media_status_t MPEG2TSExtractor::getTrackMetaData(
AMediaFormat *meta,
size_t index, uint32_t /* flags */) {
+ if (meta == nullptr) {
+ return AMEDIA_ERROR_INVALID_PARAMETER;
+ }
sp<MetaData> implMeta = index < mSourceImpls.size()
? mSourceImpls.editItemAt(index)->getFormat() : NULL;
if (implMeta == NULL) {