From e4cfcb82a86e1546474c3fd25101ab561063a1bd Mon Sep 17 00:00:00 2001 From: James Dong Date: Thu, 4 Feb 2010 18:08:06 -0800 Subject: [PATCH] When the extractor is not able to be created successfully, don't crash --- cmds/stagefright/record.cpp | 3 +++ cmds/stagefright/stagefright.cpp | 4 ++++ media/libstagefright/omx/tests/OMXHarness.cpp | 8 +++++++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/cmds/stagefright/record.cpp b/cmds/stagefright/record.cpp index 2ec0b702d41fa..845c85471f920 100644 --- a/cmds/stagefright/record.cpp +++ b/cmds/stagefright/record.cpp @@ -106,6 +106,9 @@ sp createSource(const char *filename) { sp 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 e65cdf11545bf..f7cb227304808 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 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 51fcaf5f4438c..c05d90a48248e 100644 --- a/media/libstagefright/omx/tests/OMXHarness.cpp +++ b/media/libstagefright/omx/tests/OMXHarness.cpp @@ -512,7 +512,9 @@ static sp CreateSourceForMime(const char *mime) { sp extractor = CreateExtractorFromURI(url); - CHECK(extractor != NULL); + if (extractor == NULL) { + return NULL; + } for (size_t i = 0; i < extractor->countTracks(); ++i) { sp meta = extractor->getTrackMetaData(i); @@ -571,6 +573,10 @@ status_t Harness::testSeek( sp source = CreateSourceForMime(mime); sp seekSource = CreateSourceForMime(mime); + if (source == NULL || seekSource == NULL) { + return UNKNOWN_ERROR; + } + CHECK_EQ(seekSource->start(), OK); sp codec = OMXCodec::Create(