icecat: add release icecat-140.9.0-1gnu1 for ecne

This commit is contained in:
Ark74 2026-03-28 14:10:24 -06:00
parent 8eb1f1732f
commit a5f93cb214
1197 changed files with 30593 additions and 15344 deletions

View file

@ -10,7 +10,6 @@
#include "mozilla/Unused.h"
#include "GMPPlatform.h"
#include "GMPVideoEncodedFrameImpl.h"
#include "GMPVideoi420FrameImpl.h"
#include "runnable_utils.h"
namespace mozilla::gmp {
@ -67,9 +66,26 @@ void GMPVideoEncoderChild::Encoded(GMPVideoEncodedFrame* aEncodedFrame,
MOZ_CRASH("Encoded without any frame data!");
}
mLatestEncodedTimestamp = frameData.mTimestamp();
aEncodedFrame->Destroy();
}
void GMPVideoEncoderChild::MgrDecodedFrameDestroyed(
GMPVideoi420FrameImpl* aFrame) {
if (NS_WARN_IF(!mPlugin)) {
return;
}
// The OpenH264 encoder destroys the input frame if it has skipped encoding
// it. When it has encoded it, it calls the Encoded() callback before
// destroying the frame.
MOZ_ASSERT(mPlugin->GMPMessageLoop() == MessageLoop::current());
if (aFrame->Timestamp() > mLatestEncodedTimestamp) {
(void)SendDroppedFrame(aFrame->Timestamp());
}
}
void GMPVideoEncoderChild::Error(GMPErr aError) {
if (NS_WARN_IF(!mPlugin)) {
return;
@ -116,8 +132,10 @@ mozilla::ipc::IPCResult GMPVideoEncoderChild::RecvEncode(
return IPC_FAIL(this, "!mVideoDecoder");
}
// The `this` destroyed callback outlives the frame, because `mVideoEncoder`
// is responsible for destroying the frame, and we outlive `mVideoEncoder`.
auto* f = new GMPVideoi420FrameImpl(aInputFrame, std::move(aInputShmem),
&mVideoHost);
&mVideoHost, HostReportPolicy::Destroyed);
// Ignore any return code. It is OK for this to fail without killing the
// process.