e2a4b7e
diff -up firefox-101.0.1/dom/media/gmp/GMPSharedMemManager.h.1663844 firefox-101.0.1/dom/media/gmp/GMPSharedMemManager.h
e2a4b7e
--- firefox-101.0.1/dom/media/gmp/GMPSharedMemManager.h.1663844	2022-06-08 23:06:36.000000000 +0200
e2a4b7e
+++ firefox-101.0.1/dom/media/gmp/GMPSharedMemManager.h	2022-06-09 16:45:32.341742564 +0200
feba2cc
@@ -27,7 +27,7 @@ class GMPSharedMem {
feba2cc
   // returned to the parent pool (which is not included).  If more than
feba2cc
   // this are needed, we presume the client has either crashed or hung
feba2cc
   // (perhaps temporarily).
feba2cc
-  static const uint32_t kGMPBufLimit = 20;
feba2cc
+  static const uint32_t kGMPBufLimit = 40;
feba2cc
 
feba2cc
   GMPSharedMem() {
feba2cc
     for (size_t i = 0; i < sizeof(mGmpAllocated) / sizeof(mGmpAllocated[0]);
e2a4b7e
diff -up firefox-101.0.1/dom/media/platforms/agnostic/gmp/GMPDecoderModule.cpp.1663844 firefox-101.0.1/dom/media/platforms/agnostic/gmp/GMPDecoderModule.cpp
e2a4b7e
--- firefox-101.0.1/dom/media/platforms/agnostic/gmp/GMPDecoderModule.cpp.1663844	2022-06-08 16:10:21.000000000 +0200
e2a4b7e
+++ firefox-101.0.1/dom/media/platforms/agnostic/gmp/GMPDecoderModule.cpp	2022-06-09 17:14:51.310699618 +0200
e2a4b7e
@@ -67,7 +67,7 @@ media::DecodeSupportSet GMPDecoderModule
888df26
   nsCString api = nsLiteralCString(CHROMIUM_CDM_API);
85160fd
 
888df26
   if (MP4Decoder::IsH264(aMimeType)) {
e2a4b7e
-    isSupported = HaveGMPFor(api, {"h264"_ns, aGMP.value()});
e2a4b7e
+    isSupported = true;
888df26
   } else if (VPXDecoder::IsVP9(aMimeType)) {
e2a4b7e
     isSupported = HaveGMPFor(api, {"vp9"_ns, aGMP.value()});
e2a4b7e
   } else if (VPXDecoder::IsVP8(aMimeType)) {
e2a4b7e
diff -up firefox-101.0.1/dom/media/platforms/agnostic/gmp/GMPVideoDecoder.cpp.1663844 firefox-101.0.1/dom/media/platforms/agnostic/gmp/GMPVideoDecoder.cpp
e2a4b7e
--- firefox-101.0.1/dom/media/platforms/agnostic/gmp/GMPVideoDecoder.cpp.1663844	2022-06-08 16:10:21.000000000 +0200
e2a4b7e
+++ firefox-101.0.1/dom/media/platforms/agnostic/gmp/GMPVideoDecoder.cpp	2022-06-09 16:45:32.341742564 +0200
888df26
@@ -70,6 +70,8 @@ void GMPVideoDecoder::Decoded(GMPVideoi4
85160fd
   RefPtr<GMPVideoDecoder> self = this;
85160fd
   if (v) {
85160fd
     mDecodedData.AppendElement(std::move(v));
85160fd
+    mDecodePromise.ResolveIfExists(std::move(mDecodedData), __func__);
85160fd
+    mDecodedData = DecodedData();
85160fd
   } else {
85160fd
     mDecodedData.Clear();
85160fd
     mDecodePromise.RejectIfExists(