From 48a31bf3f1c1ed5953a4e64f71cdf528f3a38ee5 Mon Sep 17 00:00:00 2001 From: Andy Hung Date: Tue, 28 Apr 2015 19:02:33 -0700 Subject: Omx: Return an error if no IOMX is available Previously caused fatal crash. Bug: 20566134 Change-Id: I9761d043422954615dbe81b301401765146a7283 --- media/libstagefright/MediaCodecList.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'media/libstagefright/MediaCodecList.cpp') diff --git a/media/libstagefright/MediaCodecList.cpp b/media/libstagefright/MediaCodecList.cpp index 26798ae..97640a8 100644 --- a/media/libstagefright/MediaCodecList.cpp +++ b/media/libstagefright/MediaCodecList.cpp @@ -80,6 +80,10 @@ sp MediaCodecList::getLocalInstance() { infos.push_back(gCodecList->getCodecInfo(i)); } } + } else { + // failure to initialize may be temporary. retry on next call. + delete gCodecList; + gCodecList = NULL; } } } @@ -168,7 +172,7 @@ void MediaCodecList::parseTopLevelXMLFile(const char *codecs_xml, bool ignore_er OMXClient client; mInitCheck = client.connect(); if (mInitCheck != OK) { - return; + return; // this may fail if IMediaPlayerService is not available. } mOMX = client.interface(); parseXMLFile(codecs_xml); -- cgit v1.1