Bug 1435709 - Don't attempt to use stagefright to decode theora. r?padenot draft
authorJean-Yves Avenard <jyavenard@mozilla.com>
Fri, 02 Mar 2018 07:49:25 +0100
changeset 762356 336a32c191ad64b88ab0282897eccf41a3d3cf79
parent 762355 3f89193d86d4f1944f62528931f8d8f9060df270
push id101156
push userbmo:jyavenard@mozilla.com
push dateFri, 02 Mar 2018 08:04:10 +0000
reviewerspadenot
bugs1435709
milestone60.0a1
Bug 1435709 - Don't attempt to use stagefright to decode theora. r?padenot MozReview-Commit-ID: 215BhSSWGBC
dom/media/platforms/android/AndroidDecoderModule.cpp
--- a/dom/media/platforms/android/AndroidDecoderModule.cpp
+++ b/dom/media/platforms/android/AndroidDecoderModule.cpp
@@ -99,16 +99,23 @@ AndroidDecoderModule::SupportsMimeType(
   // Not all android devices support FLAC even when they say they do.
   if (OpusDataDecoder::IsOpus(aMimeType) ||
       VorbisDataDecoder::IsVorbis(aMimeType) ||
       aMimeType.EqualsLiteral("audio/flac")) {
     LOG("Rejecting audio of type %s", aMimeType.Data());
     return false;
   }
 
+  // Prefer the gecko decoder for Theora.
+  // Not all android devices support Theora even when they say they do.
+  if (TheoraDecoder::IsTheora(aMimeType)) {
+    LOG("Rejecting video of type %s", aMimeType.Data());
+    return false;
+  }
+
   return java::HardwareCodecCapabilityUtils::FindDecoderCodecInfoForMimeType(
     nsCString(TranslateMimeType(aMimeType)));
 }
 
 already_AddRefed<MediaDataDecoder>
 AndroidDecoderModule::CreateVideoDecoder(const CreateDecoderParams& aParams)
 {
   // Temporary - forces use of VPXDecoder when alpha is present.