diff options
| -rw-r--r-- | media/java/android/media/MediaCodec.java | 3 | ||||
| -rw-r--r-- | media/java/android/media/MediaCodecInfo.java | 12 | ||||
| -rw-r--r-- | media/java/android/media/MediaCodecList.java | 5 |
3 files changed, 13 insertions, 7 deletions
diff --git a/media/java/android/media/MediaCodec.java b/media/java/android/media/MediaCodec.java index 3e8ee93a294e..675916b93db2 100644 --- a/media/java/android/media/MediaCodec.java +++ b/media/java/android/media/MediaCodec.java @@ -1622,8 +1622,7 @@ final public class MediaCodec { * @throws IllegalStateException if in the Uninitialized state. */ public MediaCodecInfo getCodecInfo() { - return MediaCodecList.getCodecInfoAt( - MediaCodecList.findCodecByName(getName())); + return MediaCodecList.getInfoFor(getName()); } private native final ByteBuffer[] getBuffers(boolean input); diff --git a/media/java/android/media/MediaCodecInfo.java b/media/java/android/media/MediaCodecInfo.java index bf5b7c68ca1d..01f8193c0837 100644 --- a/media/java/android/media/MediaCodecInfo.java +++ b/media/java/android/media/MediaCodecInfo.java @@ -321,6 +321,9 @@ public final class MediaCodecInfo { // check feature support for (Feature feat: getValidFeatures()) { Integer yesNo = (Integer)map.get(MediaFormat.KEY_FEATURE_ + feat.mName); + if (yesNo == null) { + continue; + } if ((yesNo == 1 && !isFeatureSupported(feat.mName)) || (yesNo == 0 && isFeatureRequired(feat.mName))) { return false; @@ -470,13 +473,12 @@ public final class MediaCodecInfo { Integer yesNo = (Integer)map.get(key); if (yesNo == null) { continue; - } else if (yesNo > 0) { + } + if (yesNo > 0) { mFlagsRequired |= feat.mValue; - mDefaultFormat.setInteger(key, 1); - } else { - mFlagsSupported |= feat.mValue; - mDefaultFormat.setInteger(key, 1); } + mFlagsSupported |= feat.mValue; + mDefaultFormat.setInteger(key, 1); // TODO restrict features by mFlagsVerified once all codecs reliably verify them } } diff --git a/media/java/android/media/MediaCodecList.java b/media/java/android/media/MediaCodecList.java index 5084c5cf6adf..85e9b1654a65 100644 --- a/media/java/android/media/MediaCodecList.java +++ b/media/java/android/media/MediaCodecList.java @@ -116,6 +116,11 @@ final public class MediaCodecList { /* package private */ static native final int findCodecByName(String codec); + /** @hide */ + public static MediaCodecInfo getInfoFor(String codec) { + return sAllCodecInfos[findCodecByName(codec)]; + } + private static native final void native_init(); /** |