diff options
author | James Dong <jdong@google.com> | 2010-02-04 18:08:06 -0800 |
---|---|---|
committer | James Dong <jdong@google.com> | 2010-02-04 18:11:32 -0800 |
commit | b93ad64a423975748c7f5e1a5ea94ab8681bc899 (patch) | |
tree | ed9b6df646a893ade81f560e90c0dc33adaae132 | |
parent | b399aa37056a3ce7a38b4a20cc0aef8e0e01b23e (diff) | |
download | frameworks_av-b93ad64a423975748c7f5e1a5ea94ab8681bc899.zip frameworks_av-b93ad64a423975748c7f5e1a5ea94ab8681bc899.tar.gz frameworks_av-b93ad64a423975748c7f5e1a5ea94ab8681bc899.tar.bz2 |
When the extractor is not able to be created successfully, don't crash
-rw-r--r-- | cmds/stagefright/record.cpp | 3 | ||||
-rw-r--r-- | cmds/stagefright/stagefright.cpp | 4 | ||||
-rw-r--r-- | media/libstagefright/omx/tests/OMXHarness.cpp | 8 |
3 files changed, 14 insertions, 1 deletions
diff --git a/cmds/stagefright/record.cpp b/cmds/stagefright/record.cpp index 2ec0b70..845c854 100644 --- a/cmds/stagefright/record.cpp +++ b/cmds/stagefright/record.cpp @@ -106,6 +106,9 @@ sp<MediaSource> createSource(const char *filename) { sp<MediaExtractor> extractor = MediaExtractor::Create(new FileSource(filename)); + if (extractor == NULL) { + return NULL; + } size_t num_tracks = extractor->countTracks(); diff --git a/cmds/stagefright/stagefright.cpp b/cmds/stagefright/stagefright.cpp index e65cdf1..f7cb227 100644 --- a/cmds/stagefright/stagefright.cpp +++ b/cmds/stagefright/stagefright.cpp @@ -431,6 +431,10 @@ int main(int argc, char **argv) { mediaSource = new JPEGSource(dataSource); } else { sp<MediaExtractor> extractor = MediaExtractor::Create(dataSource); + if (extractor == NULL) { + fprintf(stderr, "could not create data source\n"); + return -1; + } size_t numTracks = extractor->countTracks(); diff --git a/media/libstagefright/omx/tests/OMXHarness.cpp b/media/libstagefright/omx/tests/OMXHarness.cpp index 51fcaf5..c05d90a 100644 --- a/media/libstagefright/omx/tests/OMXHarness.cpp +++ b/media/libstagefright/omx/tests/OMXHarness.cpp @@ -512,7 +512,9 @@ static sp<MediaSource> CreateSourceForMime(const char *mime) { sp<MediaExtractor> extractor = CreateExtractorFromURI(url); - CHECK(extractor != NULL); + if (extractor == NULL) { + return NULL; + } for (size_t i = 0; i < extractor->countTracks(); ++i) { sp<MetaData> meta = extractor->getTrackMetaData(i); @@ -571,6 +573,10 @@ status_t Harness::testSeek( sp<MediaSource> source = CreateSourceForMime(mime); sp<MediaSource> seekSource = CreateSourceForMime(mime); + if (source == NULL || seekSource == NULL) { + return UNKNOWN_ERROR; + } + CHECK_EQ(seekSource->start(), OK); sp<MediaSource> codec = OMXCodec::Create( |