Fix test failures
Bug: 123077756
Test: CTS
Change-Id: I2b440fef382bd7a6b5d956defd7715ec614f8d31
diff --git a/include/media/MediaExtractorPluginHelper.h b/include/media/MediaExtractorPluginHelper.h
index f4d4da6..b86f177 100644
--- a/include/media/MediaExtractorPluginHelper.h
+++ b/include/media/MediaExtractorPluginHelper.h
@@ -171,6 +171,9 @@
};
inline CMediaTrack *wrap(MediaTrackHelper *track) {
+ if (track == nullptr) {
+ return nullptr;
+ }
CMediaTrack *wrapper = (CMediaTrack*) malloc(sizeof(CMediaTrack));
wrapper->data = track;
wrapper->free = [](void *data) -> void {
diff --git a/include/media/MediaTrack.h b/include/media/MediaTrack.h
index e828a7f..493eba3 100644
--- a/include/media/MediaTrack.h
+++ b/include/media/MediaTrack.h
@@ -142,7 +142,7 @@
class MediaTrackCUnwrapper : public MediaTrack {
public:
- explicit MediaTrackCUnwrapper(CMediaTrack *wrapper);
+ static MediaTrackCUnwrapper *create(CMediaTrack *wrapper);
virtual status_t start();
virtual status_t stop();
@@ -155,6 +155,7 @@
virtual ~MediaTrackCUnwrapper();
private:
+ explicit MediaTrackCUnwrapper(CMediaTrack *wrapper);
CMediaTrack *wrapper;
MediaBufferGroup *bufferGroup;
};
diff --git a/media/libstagefright/MediaExtractor.cpp b/media/libstagefright/MediaExtractor.cpp
index 9511931..4ed3382 100644
--- a/media/libstagefright/MediaExtractor.cpp
+++ b/media/libstagefright/MediaExtractor.cpp
@@ -57,7 +57,7 @@
}
MediaTrack *MediaExtractorCUnwrapper::getTrack(size_t index) {
- return new MediaTrackCUnwrapper(plugin->getTrack(plugin->data, index));
+ return MediaTrackCUnwrapper::create(plugin->getTrack(plugin->data, index));
}
status_t MediaExtractorCUnwrapper::getTrackMetaData(
diff --git a/media/libstagefright/MediaTrack.cpp b/media/libstagefright/MediaTrack.cpp
index 036e79d..89c9b25 100644
--- a/media/libstagefright/MediaTrack.cpp
+++ b/media/libstagefright/MediaTrack.cpp
@@ -65,6 +65,13 @@
bufferGroup = nullptr;
}
+MediaTrackCUnwrapper *MediaTrackCUnwrapper::create(CMediaTrack *cmediatrack) {
+ if (cmediatrack == nullptr) {
+ return nullptr;
+ }
+ return new MediaTrackCUnwrapper(cmediatrack);
+}
+
MediaTrackCUnwrapper::~MediaTrackCUnwrapper() {
wrapper->free(wrapper->data);
free(wrapper);