aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph Moench-Tegeder <cmt@FreeBSD.org>2022-04-26 08:48:18 +0000
committerChristoph Moench-Tegeder <cmt@FreeBSD.org>2022-04-26 08:48:18 +0000
commitc4e707ffec2f82836b79e7312da5a5228edbb6dd (patch)
tree0ea8d02984814df2849bffefb1f971431180c7c7
parent5d3936d69043923a458b6e81a3f2d19386c5abee (diff)
downloadports-c4e707ffec2f82836b79e7312da5a5228edbb6dd.tar.gz
ports-c4e707ffec2f82836b79e7312da5a5228edbb6dd.zip
www/firefox: update to 100.0 (rc1)
-rw-r--r--www/firefox/Makefile7
-rw-r--r--www/firefox/distinfo6
-rw-r--r--www/firefox/files/patch-bug166411524
-rw-r--r--www/firefox/files/patch-bug1758610365
4 files changed, 18 insertions, 384 deletions
diff --git a/www/firefox/Makefile b/www/firefox/Makefile
index debea780dcfa..fcbe0e76efe8 100644
--- a/www/firefox/Makefile
+++ b/www/firefox/Makefile
@@ -1,12 +1,11 @@
# Created by: Alan Eldridge <alane@FreeBSD.org>
PORTNAME= firefox
-DISTVERSION= 99.0.1
-PORTREVISION= 2
+DISTVERSION= 100.0
PORTEPOCH= 2
CATEGORIES= www
MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source \
- MOZILLA/${PORTNAME}/candidates/${DISTVERSION}${DISTVERSIONSUFFIX}-candidates/build2/source
+ MOZILLA/${PORTNAME}/candidates/${DISTVERSION}${DISTVERSIONSUFFIX}-candidates/build1/source
DISTFILES= ${DISTNAME}.source${EXTRACT_SUFX}
MAINTAINER= gecko@FreeBSD.org
@@ -16,7 +15,7 @@ BUILD_DEPENDS= nspr>=4.32:devel/nspr \
nss>=3.76:security/nss \
icu>=70.1:devel/icu \
libevent>=2.1.8:devel/libevent \
- harfbuzz>=3.4.0:print/harfbuzz \
+ harfbuzz>=4.1.0:print/harfbuzz \
graphite2>=1.3.14:graphics/graphite2 \
png>=1.6.37:graphics/png \
dav1d>=1.0.0:multimedia/dav1d \
diff --git a/www/firefox/distinfo b/www/firefox/distinfo
index f16ba01741f6..851ed830f08c 100644
--- a/www/firefox/distinfo
+++ b/www/firefox/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1649763203
-SHA256 (firefox-99.0.1.source.tar.xz) = 76d22279ce99588a728bb2d034064be0d5918b5900631f2148d4565b8a72e00b
-SIZE (firefox-99.0.1.source.tar.xz) = 483537764
+TIMESTAMP = 1650958415
+SHA256 (firefox-100.0.source.tar.xz) = fba937a55a177916c6121f82f79e0d46c10bf175d4effc10d9095d0c297711fa
+SIZE (firefox-100.0.source.tar.xz) = 482628448
diff --git a/www/firefox/files/patch-bug1664115 b/www/firefox/files/patch-bug1664115
index dce342a44b40..3be934a8c04e 100644
--- a/www/firefox/files/patch-bug1664115
+++ b/www/firefox/files/patch-bug1664115
@@ -3,8 +3,8 @@ using any cubeb backends other than pulse-rust to play media. The loss of
such change will be that users will not be able to do profiling on threads
created by libcubeb.
---- dom/media/AudioStream.cpp.orig 2022-02-25 16:27:47.676236000 +0100
-+++ dom/media/AudioStream.cpp 2022-02-25 16:54:21.223904000 +0100
+--- dom/media/AudioStream.cpp.orig 2022-04-19 19:43:36.505544000 +0200
++++ dom/media/AudioStream.cpp 2022-04-19 19:47:53.111474000 +0200
@@ -27,7 +27,6 @@
#endif
#include "Tracing.h"
@@ -14,7 +14,7 @@ created by libcubeb.
// Use abort() instead of exception in SoundTouch.
@@ -144,8 +143,6 @@
- mAudioClock(aInRate),
+ mOutChannels(aOutputChannels),
mState(INITIALIZED),
mDataSource(aSource),
- mAudioThreadId(ProfilerThreadId{}),
@@ -22,7 +22,7 @@ created by libcubeb.
mPlaybackComplete(false),
mPlaybackRate(1.0f),
mPreservesPitch(true) {}
-@@ -551,17 +548,6 @@
+@@ -552,17 +549,6 @@
aWriter.Available());
}
@@ -40,7 +40,7 @@ created by libcubeb.
void AudioStream::AssertIsOnAudioThread() const {
// This can be called right after CheckThreadIdChanged, because the audio
// thread can change when not sandboxed.
-@@ -590,9 +576,6 @@
+@@ -591,9 +577,6 @@
}
long AudioStream::DataCallback(void* aBuffer, long aFrames) {
@@ -50,7 +50,7 @@ created by libcubeb.
WebCore::DenormalDisabler disabler;
TRACE_AUDIO_CALLBACK_BUDGET(aFrames, mAudioClock.GetInputRate());
-@@ -647,9 +630,6 @@
+@@ -648,9 +631,6 @@
mDumpFile.Write(static_cast<const AudioDataValue*>(aBuffer),
aFrames * mOutChannels);
@@ -60,17 +60,17 @@ created by libcubeb.
return aFrames - writer.Available();
}
---- dom/media/AudioStream.h.orig 2022-02-25 16:27:53.316210000 +0100
-+++ dom/media/AudioStream.h 2022-02-25 16:55:18.967535000 +0100
-@@ -323,7 +323,6 @@
+--- dom/media/AudioStream.h.orig 2022-04-19 19:43:45.457171000 +0200
++++ dom/media/AudioStream.h 2022-04-19 19:45:30.463633000 +0200
+@@ -329,7 +329,6 @@
template <typename Function, typename... Args>
- int InvokeCubeb(Function aFunction, Args&&... aArgs);
+ int InvokeCubeb(Function aFunction, Args&&... aArgs) REQUIRES(mMonitor);
- bool CheckThreadIdChanged();
void AssertIsOnAudioThread() const;
soundtouch::SoundTouch* mTimeStretcher;
-@@ -357,9 +356,6 @@
+@@ -368,9 +367,6 @@
// the default device is used. It is set
// during the Init() in decoder thread.
RefPtr<AudioDeviceInfo> mSinkInfo;
@@ -78,5 +78,5 @@ created by libcubeb.
- std::atomic<ProfilerThreadId> mAudioThreadId;
- const bool mSandboxed = false;
- MozPromiseHolder<MediaSink::EndedPromise> mEndedPromise;
+ MozPromiseHolder<MediaSink::EndedPromise> mEndedPromise GUARDED_BY(mMonitor);
std::atomic<bool> mPlaybackComplete;
diff --git a/www/firefox/files/patch-bug1758610 b/www/firefox/files/patch-bug1758610
deleted file mode 100644
index f83eb4ea2004..000000000000
--- a/www/firefox/files/patch-bug1758610
+++ /dev/null
@@ -1,365 +0,0 @@
---- dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp.orig 2022-03-30 23:24:44 UTC
-+++ dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp
-@@ -814,7 +814,7 @@ MediaResult FFmpegVideoDecoder<LIBAV_VER>::DoDecode(
- # ifdef MOZ_WAYLAND_USE_VAAPI
- // Create VideoFramePool in case we need it.
- if (!mVideoFramePool && mEnableHardwareDecoding) {
-- mVideoFramePool = MakeUnique<VideoFramePool>();
-+ mVideoFramePool = MakeUnique<VideoFramePool<LIBAV_VER>>();
- }
-
- // Release unused VA-API surfaces before avcodec_receive_frame() as
---- dom/media/platforms/ffmpeg/FFmpegVideoDecoder.h.orig 2022-03-30 23:24:44 UTC
-+++ dom/media/platforms/ffmpeg/FFmpegVideoDecoder.h
-@@ -16,6 +16,9 @@
- #if LIBAVCODEC_VERSION_MAJOR >= 57 && LIBAVUTIL_VERSION_MAJOR >= 56
- # include "mozilla/layers/TextureClient.h"
- #endif
-+#ifdef MOZ_WAYLAND_USE_VAAPI
-+# include "FFmpegVideoFramePool.h"
-+#endif
-
- struct _VADRMPRIMESurfaceDescriptor;
- typedef struct _VADRMPRIMESurfaceDescriptor VADRMPRIMESurfaceDescriptor;
-@@ -23,7 +26,6 @@ typedef struct _VADRMPRIMESurfaceDescriptor VADRMPRIME
- namespace mozilla {
-
- class ImageBufferWrapper;
--class VideoFramePool;
-
- template <int V>
- class FFmpegVideoDecoder : public FFmpegDataDecoder<V> {};
-@@ -138,7 +140,7 @@ class FFmpegVideoDecoder<LIBAV_VER>
- AVBufferRef* mVAAPIDeviceContext;
- bool mEnableHardwareDecoding;
- VADisplay mDisplay;
-- UniquePtr<VideoFramePool> mVideoFramePool;
-+ UniquePtr<VideoFramePool<LIBAV_VER>> mVideoFramePool;
- static nsTArray<AVCodecID> mAcceleratedFormats;
- #endif
- RefPtr<KnowsCompositor> mImageAllocator;
---- dom/media/platforms/ffmpeg/FFmpegVideoFramePool.cpp.orig 2022-03-31 01:24:44.000000000 +0200
-+++ dom/media/platforms/ffmpeg/FFmpegVideoFramePool.cpp 2022-04-05 00:06:31.002795000 +0200
-@@ -5,6 +5,7 @@
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
- #include "FFmpegVideoFramePool.h"
-+#include "PlatformDecoderModule.h"
- #include "FFmpegLog.h"
- #include "mozilla/widget/DMABufLibWrapper.h"
- #include "libavutil/pixfmt.h"
-@@ -15,14 +16,14 @@
-
- namespace mozilla {
-
--RefPtr<layers::Image> VideoFrameSurfaceVAAPI::GetAsImage() {
-+RefPtr<layers::Image> VideoFrameSurface<LIBAV_VER>::GetAsImage() {
- return new layers::DMABUFSurfaceImage(mSurface);
- }
-
--VideoFrameSurfaceVAAPI::VideoFrameSurfaceVAAPI(DMABufSurface* aSurface)
-+VideoFrameSurface<LIBAV_VER>::VideoFrameSurface(DMABufSurface* aSurface)
- : mSurface(aSurface),
- mLib(nullptr),
-- mAVHWFramesContext(nullptr),
-+ mAVHWDeviceContext(nullptr),
- mHWAVBuffer(nullptr) {
- // Create global refcount object to track mSurface usage over
- // gects rendering engine. We can't release it until it's used
-@@ -30,22 +31,22 @@
- MOZ_ASSERT(mSurface);
- MOZ_RELEASE_ASSERT(mSurface->GetAsDMABufSurfaceYUV());
- mSurface->GlobalRefCountCreate();
-- FFMPEG_LOG("VideoFrameSurfaceVAAPI: creating surface UID = %d",
-+ FFMPEG_LOG("VideoFrameSurface: creating surface UID = %d",
- mSurface->GetUID());
- }
-
--void VideoFrameSurfaceVAAPI::LockVAAPIData(AVCodecContext* aAVCodecContext,
-- AVFrame* aAVFrame,
-- FFmpegLibWrapper* aLib) {
-- FFMPEG_LOG("VideoFrameSurfaceVAAPI: VAAPI locking dmabuf surface UID = %d",
-+void VideoFrameSurface<LIBAV_VER>::LockVAAPIData(
-+ AVCodecContext* aAVCodecContext, AVFrame* aAVFrame,
-+ FFmpegLibWrapper* aLib) {
-+ FFMPEG_LOG("VideoFrameSurface: VAAPI locking dmabuf surface UID = %d",
- mSurface->GetUID());
- mLib = aLib;
-- mAVHWFramesContext = aLib->av_buffer_ref(aAVCodecContext->hw_frames_ctx);
-+ mAVHWDeviceContext = aLib->av_buffer_ref(aAVCodecContext->hw_device_ctx);
- mHWAVBuffer = aLib->av_buffer_ref(aAVFrame->buf[0]);
- }
-
--void VideoFrameSurfaceVAAPI::ReleaseVAAPIData(bool aForFrameRecycle) {
-- FFMPEG_LOG("VideoFrameSurfaceVAAPI: VAAPI releasing dmabuf surface UID = %d",
-+void VideoFrameSurface<LIBAV_VER>::ReleaseVAAPIData(bool aForFrameRecycle) {
-+ FFMPEG_LOG("VideoFrameSurface: VAAPI releasing dmabuf surface UID = %d",
- mSurface->GetUID());
-
- // It's possible to unref GPU data while IsUsed() is still set.
-@@ -56,7 +57,7 @@
- // is closed.
- if (mLib) {
- mLib->av_buffer_unref(&mHWAVBuffer);
-- mLib->av_buffer_unref(&mAVHWFramesContext);
-+ mLib->av_buffer_unref(&mAVHWDeviceContext);
- }
-
- // If we want to recycle the frame, make sure it's not used
-@@ -67,43 +68,44 @@
- }
- }
-
--VideoFrameSurfaceVAAPI::~VideoFrameSurfaceVAAPI() {
-- FFMPEG_LOG("VideoFrameSurfaceVAAPI: deleting dmabuf surface UID = %d",
-+VideoFrameSurface<LIBAV_VER>::~VideoFrameSurface() {
-+ FFMPEG_LOG("VideoFrameSurface: deleting dmabuf surface UID = %d",
- mSurface->GetUID());
- // We're about to quit, no need to recycle the frames.
- ReleaseVAAPIData(/* aForFrameRecycle */ false);
- }
-
--VideoFramePool::VideoFramePool() : mSurfaceLock("VideoFramePoolSurfaceLock") {}
-+VideoFramePool<LIBAV_VER>::VideoFramePool()
-+ : mSurfaceLock("VideoFramePoolSurfaceLock") {}
-
--VideoFramePool::~VideoFramePool() {
-+VideoFramePool<LIBAV_VER>::~VideoFramePool() {
- MutexAutoLock lock(mSurfaceLock);
- mDMABufSurfaces.Clear();
- }
-
--void VideoFramePool::ReleaseUnusedVAAPIFrames() {
-+void VideoFramePool<LIBAV_VER>::ReleaseUnusedVAAPIFrames() {
- MutexAutoLock lock(mSurfaceLock);
- for (const auto& surface : mDMABufSurfaces) {
-- auto* vaapiSurface = surface->AsVideoFrameSurfaceVAAPI();
-- if (!vaapiSurface->IsUsed()) {
-- vaapiSurface->ReleaseVAAPIData();
-+ if (!surface->IsUsed()) {
-+ surface->ReleaseVAAPIData();
- }
- }
- }
-
--RefPtr<VideoFrameSurface> VideoFramePool::GetFreeVideoFrameSurface() {
-+RefPtr<VideoFrameSurface<LIBAV_VER>>
-+VideoFramePool<LIBAV_VER>::GetFreeVideoFrameSurface() {
- for (auto& surface : mDMABufSurfaces) {
- if (surface->IsUsed()) {
- continue;
- }
-- auto* vaapiSurface = surface->AsVideoFrameSurfaceVAAPI();
-- vaapiSurface->ReleaseVAAPIData();
-+ surface->ReleaseVAAPIData();
- return surface;
- }
- return nullptr;
- }
-
--RefPtr<VideoFrameSurface> VideoFramePool::GetVideoFrameSurface(
-+RefPtr<VideoFrameSurface<LIBAV_VER>>
-+VideoFramePool<LIBAV_VER>::GetVideoFrameSurface(
- VADRMPRIMESurfaceDescriptor& aVaDesc, AVCodecContext* aAVCodecContext,
- AVFrame* aAVFrame, FFmpegLibWrapper* aLib) {
- if (aVaDesc.fourcc != VA_FOURCC_NV12 && aVaDesc.fourcc != VA_FOURCC_YV12 &&
-@@ -113,7 +115,8 @@
- }
-
- MutexAutoLock lock(mSurfaceLock);
-- RefPtr<VideoFrameSurface> videoSurface = GetFreeVideoFrameSurface();
-+ RefPtr<VideoFrameSurface<LIBAV_VER>> videoSurface =
-+ GetFreeVideoFrameSurface();
- if (!videoSurface) {
- RefPtr<DMABufSurfaceYUV> surface =
- DMABufSurfaceYUV::CreateYUVSurface(aVaDesc);
-@@ -121,7 +124,8 @@
- return nullptr;
- }
- FFMPEG_LOG("Created new VA-API DMABufSurface UID = %d", surface->GetUID());
-- RefPtr<VideoFrameSurfaceVAAPI> surf = new VideoFrameSurfaceVAAPI(surface);
-+ RefPtr<VideoFrameSurface<LIBAV_VER>> surf =
-+ new VideoFrameSurface<LIBAV_VER>(surface);
- if (!mTextureCreationWorks) {
- mTextureCreationWorks = Some(surface->VerifyTextureCreation());
- }
-@@ -138,11 +142,8 @@
- }
- FFMPEG_LOG("Reusing VA-API DMABufSurface UID = %d", surface->GetUID());
- }
--
-- auto* vaapiSurface = videoSurface->AsVideoFrameSurfaceVAAPI();
-- vaapiSurface->LockVAAPIData(aAVCodecContext, aAVFrame, aLib);
-- vaapiSurface->MarkAsUsed();
--
-+ videoSurface->LockVAAPIData(aAVCodecContext, aAVFrame, aLib);
-+ videoSurface->MarkAsUsed();
- return videoSurface;
- }
-
---- dom/media/platforms/ffmpeg/FFmpegVideoFramePool.h.orig 2022-03-31 01:24:44.000000000 +0200
-+++ dom/media/platforms/ffmpeg/FFmpegVideoFramePool.h 2022-04-05 00:23:32.421765000 +0200
-@@ -7,8 +7,9 @@
- #ifndef __FFmpegVideoFramePool_h__
- #define __FFmpegVideoFramePool_h__
-
--#include "FFmpegVideoDecoder.h"
- #include "FFmpegLibWrapper.h"
-+#include "FFmpegLibs.h"
-+#include "FFmpegLog.h"
-
- #include "mozilla/layers/DMABUFSurfaceImage.h"
- #include "mozilla/widget/DMABufLibWrapper.h"
-@@ -16,43 +17,16 @@
-
- namespace mozilla {
-
--class VideoFramePool;
--class VideoFrameSurfaceVAAPI;
--
--class VideoFrameSurface {
-- public:
-- NS_INLINE_DECL_THREADSAFE_REFCOUNTING(VideoFrameSurface)
--
-- VideoFrameSurface() = default;
--
-- virtual VideoFrameSurfaceVAAPI* AsVideoFrameSurfaceVAAPI() { return nullptr; }
--
-- virtual void SetYUVColorSpace(gfx::YUVColorSpace aColorSpace) = 0;
-- virtual void SetColorRange(gfx::ColorRange aColorRange) = 0;
--
-- virtual RefPtr<DMABufSurfaceYUV> GetDMABufSurface() { return nullptr; };
-- virtual RefPtr<layers::Image> GetAsImage() = 0;
--
-- // Don't allow VideoFrameSurface plain copy as it leads to
-- // unexpected DMABufSurface/HW buffer releases and we don't want to
-- // deep copy them.
-- VideoFrameSurface(const VideoFrameSurface&) = delete;
-- const VideoFrameSurface& operator=(VideoFrameSurface const&) = delete;
--
-- protected:
-- virtual ~VideoFrameSurface(){};
--};
--
--// VideoFrameSurfaceVAAPI holds a reference to GPU data with a video frame.
-+// VideoFrameSurface holds a reference to GPU data with a video frame.
- //
- // Actual GPU pixel data are stored at DMABufSurface and
- // DMABufSurface is passed to gecko GL rendering pipeline via.
- // DMABUFSurfaceImage.
- //
--// VideoFrameSurfaceVAAPI can optionally hold VA-API ffmpeg related data to keep
-+// VideoFrameSurface can optionally hold VA-API ffmpeg related data to keep
- // GPU data locked untill we need them.
- //
--// VideoFrameSurfaceVAAPI is used for both HW accelerated video decoding
-+// VideoFrameSurface is used for both HW accelerated video decoding
- // (VA-API) and ffmpeg SW decoding.
- //
- // VA-API scenario
-@@ -72,13 +46,24 @@
- // Unfortunately there isn't any obvious way how to mark particular VASurface
- // as used. The best we can do is to hold a reference to particular AVBuffer
- // from decoded AVFrame and AVHWFramesContext which owns the AVBuffer.
--class VideoFrameSurfaceVAAPI final : public VideoFrameSurface {
-- friend class VideoFramePool;
-+template <int V>
-+class VideoFrameSurface {};
-+template <>
-+class VideoFrameSurface<LIBAV_VER>;
-
-+template <int V>
-+class VideoFramePool {};
-+template <>
-+class VideoFramePool<LIBAV_VER>;
-+
-+template <>
-+class VideoFrameSurface<LIBAV_VER> {
-+ friend class VideoFramePool<LIBAV_VER>;
-+
- public:
-- explicit VideoFrameSurfaceVAAPI(DMABufSurface* aSurface);
-+ NS_INLINE_DECL_THREADSAFE_REFCOUNTING(VideoFrameSurface)
-
-- VideoFrameSurfaceVAAPI* AsVideoFrameSurfaceVAAPI() final { return this; }
-+ explicit VideoFrameSurface(DMABufSurface* aSurface);
-
- void SetYUVColorSpace(mozilla::gfx::YUVColorSpace aColorSpace) {
- mSurface->GetAsDMABufSurfaceYUV()->SetYUVColorSpace(aColorSpace);
-@@ -93,6 +78,12 @@
-
- RefPtr<layers::Image> GetAsImage();
-
-+ // Don't allow VideoFrameSurface plain copy as it leads to
-+ // unexpected DMABufSurface/HW buffer releases and we don't want to
-+ // deep copy them.
-+ VideoFrameSurface(const VideoFrameSurface&) = delete;
-+ const VideoFrameSurface& operator=(VideoFrameSurface const&) = delete;
-+
- protected:
- // Lock VAAPI related data
- void LockVAAPIData(AVCodecContext* aAVCodecContext, AVFrame* aAVFrame,
-@@ -107,32 +98,33 @@
- void MarkAsUsed() { mSurface->GlobalRefAdd(); }
-
- private:
-- virtual ~VideoFrameSurfaceVAAPI();
-+ virtual ~VideoFrameSurface();
-
- const RefPtr<DMABufSurface> mSurface;
- const FFmpegLibWrapper* mLib;
-- AVBufferRef* mAVHWFramesContext;
-+ AVBufferRef* mAVHWDeviceContext;
- AVBufferRef* mHWAVBuffer;
- };
-
- // VideoFramePool class is thread-safe.
--class VideoFramePool final {
-+template <>
-+class VideoFramePool<LIBAV_VER> {
- public:
- VideoFramePool();
- ~VideoFramePool();
-
-- RefPtr<VideoFrameSurface> GetVideoFrameSurface(
-+ RefPtr<VideoFrameSurface<LIBAV_VER>> GetVideoFrameSurface(
- VADRMPRIMESurfaceDescriptor& aVaDesc, AVCodecContext* aAVCodecContext,
- AVFrame* aAVFrame, FFmpegLibWrapper* aLib);
- void ReleaseUnusedVAAPIFrames();
-
- private:
-- RefPtr<VideoFrameSurface> GetFreeVideoFrameSurface();
-+ RefPtr<VideoFrameSurface<LIBAV_VER>> GetFreeVideoFrameSurface();
-
- private:
- // Protect mDMABufSurfaces pool access
- Mutex mSurfaceLock;
-- nsTArray<RefPtr<VideoFrameSurfaceVAAPI>> mDMABufSurfaces;
-+ nsTArray<RefPtr<VideoFrameSurface<LIBAV_VER>>> mDMABufSurfaces;
- // We may fail to create texture over DMABuf memory due to driver bugs so
- // check that before we export first DMABuf video frame.
- Maybe<bool> mTextureCreationWorks;
---- dom/media/platforms/ffmpeg/ffmpeg58/moz.build.orig 2022-03-30 23:24:44 UTC
-+++ dom/media/platforms/ffmpeg/ffmpeg58/moz.build
-@@ -30,6 +30,9 @@ if CONFIG['MOZ_WAYLAND']:
- CXXFLAGS += CONFIG['MOZ_GTK3_CFLAGS']
- DEFINES['MOZ_WAYLAND_USE_VAAPI'] = 1
- USE_LIBS += ['mozva']
-+ UNIFIED_SOURCES += [
-+ '../FFmpegVideoFramePool.cpp',
-+ ]
-
- include("/ipc/chromium/chromium-config.mozbuild")
-
---- dom/media/platforms/ffmpeg/ffmpeg59/moz.build.orig 2022-03-30 23:24:44 UTC
-+++ dom/media/platforms/ffmpeg/ffmpeg59/moz.build
-@@ -30,6 +30,9 @@ if CONFIG["MOZ_WAYLAND"]:
- CXXFLAGS += CONFIG["MOZ_GTK3_CFLAGS"]
- DEFINES["MOZ_WAYLAND_USE_VAAPI"] = 1
- USE_LIBS += ["mozva"]
-+ UNIFIED_SOURCES += [
-+ "../FFmpegVideoFramePool.cpp",
-+ ]
-
- include("/ipc/chromium/chromium-config.mozbuild")
-