Blob Blame History Raw
diff -up firefox-101.0/dom/media/gmp/GMPSharedMemManager.h.1663844 firefox-101.0/dom/media/gmp/GMPSharedMemManager.h
--- firefox-101.0/dom/media/gmp/GMPSharedMemManager.h.1663844	2022-05-27 01:16:53.000000000 +0200
+++ firefox-101.0/dom/media/gmp/GMPSharedMemManager.h	2022-05-30 21:15:20.989993419 +0200
@@ -27,7 +27,7 @@ class GMPSharedMem {
   // returned to the parent pool (which is not included).  If more than
   // this are needed, we presume the client has either crashed or hung
   // (perhaps temporarily).
-  static const uint32_t kGMPBufLimit = 20;
+  static const uint32_t kGMPBufLimit = 40;
 
   GMPSharedMem() {
     for (size_t i = 0; i < sizeof(mGmpAllocated) / sizeof(mGmpAllocated[0]);
diff -up firefox-101.0/dom/media/platforms/agnostic/gmp/GMPDecoderModule.cpp.1663844 firefox-101.0/dom/media/platforms/agnostic/gmp/GMPDecoderModule.cpp
--- firefox-101.0/dom/media/platforms/agnostic/gmp/GMPDecoderModule.cpp.1663844	2022-05-30 21:15:20.989993419 +0200
+++ firefox-101.0/dom/media/platforms/agnostic/gmp/GMPDecoderModule.cpp	2022-05-30 21:24:16.615282035 +0200
@@ -66,6 +66,7 @@ media::DecodeSupportSet GMPDecoderModule
 
   nsCString api = nsLiteralCString(CHROMIUM_CDM_API);
 
+  // TODO: Do we enable it here?
   if (MP4Decoder::IsH264(aMimeType)) {
     isSupported = HaveGMPFor(api, {"h264"_ns, aGMP.value()});
   } else if (VPXDecoder::IsVP9(aMimeType)) {
diff -up firefox-101.0/dom/media/platforms/agnostic/gmp/GMPVideoDecoder.cpp.1663844 firefox-101.0/dom/media/platforms/agnostic/gmp/GMPVideoDecoder.cpp
--- firefox-101.0/dom/media/platforms/agnostic/gmp/GMPVideoDecoder.cpp.1663844	2022-05-27 01:16:53.000000000 +0200
+++ firefox-101.0/dom/media/platforms/agnostic/gmp/GMPVideoDecoder.cpp	2022-05-30 21:15:20.989993419 +0200
@@ -70,6 +70,8 @@ void GMPVideoDecoder::Decoded(GMPVideoi4
   RefPtr<GMPVideoDecoder> self = this;
   if (v) {
     mDecodedData.AppendElement(std::move(v));
+    mDecodePromise.ResolveIfExists(std::move(mDecodedData), __func__);
+    mDecodedData = DecodedData();
   } else {
     mDecodedData.Clear();
     mDecodePromise.RejectIfExists(