Bug 1408445 - handle exception when querying codec capabilities. r?esawin
MozReview-Commit-ID: 5Ee3eQqAgvG
--- a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/JellyBeanAsyncCodec.java
+++ b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/JellyBeanAsyncCodec.java
@@ -306,20 +306,24 @@ final class JellyBeanAsyncCodec implemen
@Override
public boolean isAdaptivePlaybackSupported(String mimeType) {
return HardwareCodecCapabilityUtils.checkSupportsAdaptivePlayback(mCodec, mimeType);
}
@Override
public boolean isTunneledPlaybackSupported(final String mimeType) {
- return android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP
- && mCodec.getCodecInfo()
- .getCapabilitiesForType(mimeType)
- .isFeatureSupported(CodecCapabilities.FEATURE_TunneledPlayback);
+ try {
+ return android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP
+ && mCodec.getCodecInfo()
+ .getCapabilitiesForType(mimeType)
+ .isFeatureSupported(CodecCapabilities.FEATURE_TunneledPlayback);
+ } catch (Exception e) {
+ return false;
+ }
}
private void assertCallbacks() {
if (mCallbackSender == null) {
throw new IllegalStateException(LOGTAG + ": callback must be supplied with setCallbacks().");
}
}
--- a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/LollipopAsyncCodec.java
+++ b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/LollipopAsyncCodec.java
@@ -149,19 +149,23 @@ import java.nio.ByteBuffer;
@Override
public boolean isAdaptivePlaybackSupported(final String mimeType) {
return HardwareCodecCapabilityUtils.checkSupportsAdaptivePlayback(mCodec, mimeType);
}
@Override
public boolean isTunneledPlaybackSupported(final String mimeType) {
- return mCodec.getCodecInfo()
- .getCapabilitiesForType(mimeType)
- .isFeatureSupported(CodecCapabilities.FEATURE_TunneledPlayback);
+ try {
+ return mCodec.getCodecInfo()
+ .getCapabilitiesForType(mimeType)
+ .isFeatureSupported(CodecCapabilities.FEATURE_TunneledPlayback);
+ } catch (Exception e) {
+ return false;
+ }
}
@Override
public void start() {
mCodec.start();
}
@Override