summaryrefslogtreecommitdiffstats
path: root/media/libmedia/MediaCodecInfo.cpp
diff options
context:
space:
mode:
authorLajos Molnar <lajos@google.com>2014-08-11 16:46:15 -0700
committerLajos Molnar <lajos@google.com>2014-08-12 09:29:29 -0700
commit6ff58f04f78886b07c72c0118eb71a78d08f5651 (patch)
tree99652bd3f5349e5cd8c55c261e7e06b65fc06ea1 /media/libmedia/MediaCodecInfo.cpp
parente7a1737c92cf2e84754ffbc52cfec8edeffcbc75 (diff)
downloadframeworks_av-6ff58f04f78886b07c72c0118eb71a78d08f5651.zip
frameworks_av-6ff58f04f78886b07c72c0118eb71a78d08f5651.tar.gz
frameworks_av-6ff58f04f78886b07c72c0118eb71a78d08f5651.tar.bz2
MediaCodecList: handle errors gracefully
Handle missing OMX codecs, and codecs that do not load. Fix NULL dereference when initializing codec with no type. Bug: 16907578 Bug: 16905025 Change-Id: I5d103db36ebb029d1aab03222bf6e9324beb1566
Diffstat (limited to 'media/libmedia/MediaCodecInfo.cpp')
-rw-r--r--media/libmedia/MediaCodecInfo.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/media/libmedia/MediaCodecInfo.cpp b/media/libmedia/MediaCodecInfo.cpp
index 7900eae..8f47292 100644
--- a/media/libmedia/MediaCodecInfo.cpp
+++ b/media/libmedia/MediaCodecInfo.cpp
@@ -206,6 +206,14 @@ status_t MediaCodecInfo::addMime(const char *mime) {
return OK;
}
+void MediaCodecInfo::removeMime(const char *mime) {
+ ssize_t ix = getCapabilityIndex(mime);
+ if (ix >= 0) {
+ mCaps.removeItemsAt(ix);
+ // mCurrentCaps will be removed when completed
+ }
+}
+
status_t MediaCodecInfo::initializeCapabilities(const CodecCapabilities &caps) {
mCurrentCaps->mProfileLevels.clear();
mCurrentCaps->mColorFormats.clear();