summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--D141827.diff207
-rw-r--r--D141828.diff252
-rw-r--r--D142373.diff86
-rw-r--r--firefox.spec15
-rw-r--r--mozilla-1196777.patch12
-rw-r--r--sources4
7 files changed, 104 insertions, 474 deletions
diff --git a/.gitignore b/.gitignore
index 609ba67..ecc5f1d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -505,3 +505,5 @@ firefox-3.6.4.source.tar.bz2
/firefox-langpacks-99.0-20220331.tar.xz
/firefox-langpacks-99.0.1-20220413.tar.xz
/firefox-99.0.1.source.tar.xz
+/firefox-100.0.source.tar.xz
+/firefox-langpacks-100.0-20220502.tar.xz
diff --git a/D141827.diff b/D141827.diff
deleted file mode 100644
index 67caf5f..0000000
--- a/D141827.diff
+++ /dev/null
@@ -1,207 +0,0 @@
-diff -up firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoFramePool.cpp.D141827 firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoFramePool.cpp
---- firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoFramePool.cpp.D141827 2022-03-31 01:24:44.000000000 +0200
-+++ firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoFramePool.cpp 2022-04-07 10:10:11.608526890 +0200
-@@ -6,7 +6,7 @@
-
- #include "FFmpegVideoFramePool.h"
- #include "FFmpegLog.h"
--#include "mozilla/widget/DMABufLibWrapper.h"
-+#include "mozilla/widget/DMABufLibWrapper.h"
- #include "libavutil/pixfmt.h"
-
- #undef FFMPEG_LOG
-@@ -15,11 +15,11 @@
-
- namespace mozilla {
-
--RefPtr<layers::Image> VideoFrameSurfaceVAAPI::GetAsImage() {
-+RefPtr<layers::Image> VideoFrameSurface::GetAsImage() {
- return new layers::DMABUFSurfaceImage(mSurface);
- }
-
--VideoFrameSurfaceVAAPI::VideoFrameSurfaceVAAPI(DMABufSurface* aSurface)
-+VideoFrameSurface::VideoFrameSurface(DMABufSurface* aSurface)
- : mSurface(aSurface),
- mLib(nullptr),
- mAVHWFramesContext(nullptr),
-@@ -30,22 +30,22 @@ VideoFrameSurfaceVAAPI::VideoFrameSurfac
- 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,
-+void VideoFrameSurface::LockVAAPIData(AVCodecContext* aAVCodecContext,
- AVFrame* aAVFrame,
- FFmpegLibWrapper* aLib) {
-- FFMPEG_LOG("VideoFrameSurfaceVAAPI: VAAPI locking dmabuf surface UID = %d",
-+ FFMPEG_LOG("VideoFrameSurface: VAAPI locking dmabuf surface UID = %d",
- mSurface->GetUID());
- mLib = aLib;
- mAVHWFramesContext = aLib->av_buffer_ref(aAVCodecContext->hw_frames_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::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.
-@@ -67,8 +67,8 @@ void VideoFrameSurfaceVAAPI::ReleaseVAAP
- }
- }
-
--VideoFrameSurfaceVAAPI::~VideoFrameSurfaceVAAPI() {
-- FFMPEG_LOG("VideoFrameSurfaceVAAPI: deleting dmabuf surface UID = %d",
-+VideoFrameSurface::~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);
-@@ -84,9 +84,8 @@ VideoFramePool::~VideoFramePool() {
- void VideoFramePool::ReleaseUnusedVAAPIFrames() {
- MutexAutoLock lock(mSurfaceLock);
- for (const auto& surface : mDMABufSurfaces) {
-- auto* vaapiSurface = surface->AsVideoFrameSurfaceVAAPI();
-- if (!vaapiSurface->IsUsed()) {
-- vaapiSurface->ReleaseVAAPIData();
-+ if (!surface->IsUsed()) {
-+ surface->ReleaseVAAPIData();
- }
- }
- }
-@@ -96,8 +95,7 @@ RefPtr<VideoFrameSurface> VideoFramePool
- if (surface->IsUsed()) {
- continue;
- }
-- auto* vaapiSurface = surface->AsVideoFrameSurfaceVAAPI();
-- vaapiSurface->ReleaseVAAPIData();
-+ surface->ReleaseVAAPIData();
- return surface;
- }
- return nullptr;
-@@ -121,7 +119,7 @@ RefPtr<VideoFrameSurface> VideoFramePool
- return nullptr;
- }
- FFMPEG_LOG("Created new VA-API DMABufSurface UID = %d", surface->GetUID());
-- RefPtr<VideoFrameSurfaceVAAPI> surf = new VideoFrameSurfaceVAAPI(surface);
-+ RefPtr<VideoFrameSurface> surf = new VideoFrameSurface(surface);
- if (!mTextureCreationWorks) {
- mTextureCreationWorks = Some(surface->VerifyTextureCreation());
- }
-@@ -138,11 +136,8 @@ RefPtr<VideoFrameSurface> VideoFramePool
- }
- 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;
- }
-
-diff -up firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoFramePool.h.D141827 firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoFramePool.h
---- firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoFramePool.h.D141827 2022-03-31 01:24:44.000000000 +0200
-+++ firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoFramePool.h 2022-04-07 10:09:46.527708638 +0200
-@@ -17,42 +17,17 @@
- 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 +47,13 @@ class VideoFrameSurface {
- // 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 {
-+class VideoFrameSurface {
- friend class VideoFramePool;
-
- 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 +68,12 @@ class VideoFrameSurfaceVAAPI final : pub
-
- 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,7 +88,7 @@ class VideoFrameSurfaceVAAPI final : pub
- void MarkAsUsed() { mSurface->GlobalRefAdd(); }
-
- private:
-- virtual ~VideoFrameSurfaceVAAPI();
-+ virtual ~VideoFrameSurface();
-
- const RefPtr<DMABufSurface> mSurface;
- const FFmpegLibWrapper* mLib;
-@@ -132,7 +113,7 @@ class VideoFramePool final {
- private:
- // Protect mDMABufSurfaces pool access
- Mutex mSurfaceLock;
-- nsTArray<RefPtr<VideoFrameSurfaceVAAPI>> mDMABufSurfaces;
-+ nsTArray<RefPtr<VideoFrameSurface>> 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;
diff --git a/D141828.diff b/D141828.diff
deleted file mode 100644
index b2475e9..0000000
--- a/D141828.diff
+++ /dev/null
@@ -1,252 +0,0 @@
-diff -up firefox-99.0/dom/media/platforms/ffmpeg/ffmpeg58/moz.build.D141828 firefox-99.0/dom/media/platforms/ffmpeg/ffmpeg58/moz.build
---- firefox-99.0/dom/media/platforms/ffmpeg/ffmpeg58/moz.build.D141828 2022-03-31 01:24:44.000000000 +0200
-+++ firefox-99.0/dom/media/platforms/ffmpeg/ffmpeg58/moz.build 2022-04-07 10:11:34.981246890 +0200
-@@ -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")
-
-diff -up firefox-99.0/dom/media/platforms/ffmpeg/ffmpeg59/moz.build.D141828 firefox-99.0/dom/media/platforms/ffmpeg/ffmpeg59/moz.build
---- firefox-99.0/dom/media/platforms/ffmpeg/ffmpeg59/moz.build.D141828 2022-03-31 01:24:44.000000000 +0200
-+++ firefox-99.0/dom/media/platforms/ffmpeg/ffmpeg59/moz.build 2022-04-07 10:11:34.981246890 +0200
-@@ -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")
-
-diff -up firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp.D141828 firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp
---- firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp.D141828 2022-03-31 01:24:44.000000000 +0200
-+++ firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp 2022-04-07 10:11:34.981246890 +0200
-@@ -814,7 +814,7 @@ MediaResult FFmpegVideoDecoder<LIBAV_VER
- # 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
-diff -up firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.h.D141828 firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.h
---- firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.h.D141828 2022-03-31 01:24:44.000000000 +0200
-+++ firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.h 2022-04-07 10:11:34.981246890 +0200
-@@ -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 _VADRMPRIMESurfaceDescrip
- 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;
-diff -up firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoFramePool.cpp.D141828 firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoFramePool.cpp
---- firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoFramePool.cpp.D141828 2022-04-07 10:11:34.980246857 +0200
-+++ firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoFramePool.cpp 2022-04-07 10:16:02.390971008 +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,11 +16,11 @@
-
- namespace mozilla {
-
--RefPtr<layers::Image> VideoFrameSurface::GetAsImage() {
-+RefPtr<layers::Image> VideoFrameSurface<LIBAV_VER>::GetAsImage() {
- return new layers::DMABUFSurfaceImage(mSurface);
- }
-
--VideoFrameSurface::VideoFrameSurface(DMABufSurface* aSurface)
-+VideoFrameSurface<LIBAV_VER>::VideoFrameSurface(DMABufSurface* aSurface)
- : mSurface(aSurface),
- mLib(nullptr),
- mAVHWFramesContext(nullptr),
-@@ -34,7 +35,7 @@ VideoFrameSurface::VideoFrameSurface(DMA
- mSurface->GetUID());
- }
-
--void VideoFrameSurface::LockVAAPIData(AVCodecContext* aAVCodecContext,
-+void VideoFrameSurface<LIBAV_VER>::LockVAAPIData(AVCodecContext* aAVCodecContext,
- AVFrame* aAVFrame,
- FFmpegLibWrapper* aLib) {
- FFMPEG_LOG("VideoFrameSurface: VAAPI locking dmabuf surface UID = %d",
-@@ -44,7 +45,7 @@ void VideoFrameSurface::LockVAAPIData(AV
- mHWAVBuffer = aLib->av_buffer_ref(aAVFrame->buf[0]);
- }
-
--void VideoFrameSurface::ReleaseVAAPIData(bool aForFrameRecycle) {
-+void VideoFrameSurface<LIBAV_VER>::ReleaseVAAPIData(bool aForFrameRecycle) {
- FFMPEG_LOG("VideoFrameSurface: VAAPI releasing dmabuf surface UID = %d",
- mSurface->GetUID());
-
-@@ -67,21 +68,22 @@ void VideoFrameSurface::ReleaseVAAPIData
- }
- }
-
--VideoFrameSurface::~VideoFrameSurface() {
-+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) {
- if (!surface->IsUsed()) {
-@@ -90,7 +92,8 @@ void VideoFramePool::ReleaseUnusedVAAPIF
- }
- }
-
--RefPtr<VideoFrameSurface> VideoFramePool::GetFreeVideoFrameSurface() {
-+RefPtr<VideoFrameSurface<LIBAV_VER>>
-+VideoFramePool<LIBAV_VER>::GetFreeVideoFrameSurface() {
- for (auto& surface : mDMABufSurfaces) {
- if (surface->IsUsed()) {
- continue;
-@@ -101,7 +104,8 @@ RefPtr<VideoFrameSurface> VideoFramePool
- 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 &&
-@@ -111,7 +115,8 @@ RefPtr<VideoFrameSurface> VideoFramePool
- }
-
- MutexAutoLock lock(mSurfaceLock);
-- RefPtr<VideoFrameSurface> videoSurface = GetFreeVideoFrameSurface();
-+ RefPtr<VideoFrameSurface<LIBAV_VER>> videoSurface =
-+ GetFreeVideoFrameSurface();
- if (!videoSurface) {
- RefPtr<DMABufSurfaceYUV> surface =
- DMABufSurfaceYUV::CreateYUVSurface(aVaDesc);
-@@ -119,7 +124,8 @@ RefPtr<VideoFrameSurface> VideoFramePool
- return nullptr;
- }
- FFMPEG_LOG("Created new VA-API DMABufSurface UID = %d", surface->GetUID());
-- RefPtr<VideoFrameSurface> surf = new VideoFrameSurface(surface);
-+ RefPtr<VideoFrameSurface<LIBAV_VER>> surf =
-+ new VideoFrameSurface<LIBAV_VER>(surface);
- if (!mTextureCreationWorks) {
- mTextureCreationWorks = Some(surface->VerifyTextureCreation());
- }
-diff -up firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoFramePool.h.D141828 firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoFramePool.h
---- firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoFramePool.h.D141828 2022-04-07 10:11:34.980246857 +0200
-+++ firefox-99.0/dom/media/platforms/ffmpeg/FFmpegVideoFramePool.h 2022-04-07 10:14:54.478755409 +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,8 +17,6 @@
-
- namespace mozilla {
-
--class VideoFramePool;
--
- // VideoFrameSurface holds a reference to GPU data with a video frame.
- //
- // Actual GPU pixel data are stored at DMABufSurface and
-@@ -47,8 +46,19 @@ class VideoFramePool;
- // 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 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:
- NS_INLINE_DECL_THREADSAFE_REFCOUNTING(VideoFrameSurface)
-@@ -97,23 +107,24 @@ class VideoFrameSurface {
- };
-
- // 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<VideoFrameSurface>> 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;
diff --git a/D142373.diff b/D142373.diff
new file mode 100644
index 0000000..932cf7a
--- /dev/null
+++ b/D142373.diff
@@ -0,0 +1,86 @@
+diff --git a/python/mozbuild/mozbuild/build_commands.py b/python/mozbuild/mozbuild/build_commands.py
+--- a/python/mozbuild/mozbuild/build_commands.py
++++ b/python/mozbuild/mozbuild/build_commands.py
+@@ -183,10 +183,11 @@
+ directory=directory,
+ verbose=verbose,
+ keep_going=keep_going,
+ mach_context=command_context._mach_context,
+ append_env=append_env,
++ virtualenv_topobjdir=orig_topobjdir,
+ )
+ if status != 0:
+ return status
+
+ # Packaging the instrumented build is required to get the jarlog
+@@ -206,11 +207,11 @@
+ pgo_env["LLVM_PROFDATA"] = instr.config_environment.substs.get(
+ "LLVM_PROFDATA"
+ )
+ pgo_env["JARLOG_FILE"] = mozpath.join(orig_topobjdir, "jarlog/en-US.log")
+ pgo_cmd = [
+- instr.virtualenv_manager.python_path,
++ command_context.virtualenv_manager.python_path,
+ mozpath.join(command_context.topsrcdir, "build/pgo/profileserver.py"),
+ ]
+ subprocess.check_call(pgo_cmd, cwd=instr.topobjdir, env=pgo_env)
+
+ # Set the default build to MOZ_PROFILE_USE
+diff --git a/python/mozbuild/mozbuild/controller/building.py b/python/mozbuild/mozbuild/controller/building.py
+--- a/python/mozbuild/mozbuild/controller/building.py
++++ b/python/mozbuild/mozbuild/controller/building.py
+@@ -1220,10 +1220,11 @@
+ directory=None,
+ verbose=False,
+ keep_going=False,
+ mach_context=None,
+ append_env=None,
++ virtualenv_topobjdir=None,
+ ):
+ """Invoke the build backend.
+
+ ``what`` defines the thing to build. If not defined, the default
+ target is used.
+@@ -1297,10 +1298,11 @@
+ config_rc = self.configure(
+ metrics,
+ buildstatus_messages=True,
+ line_handler=output.on_line,
+ append_env=append_env,
++ virtualenv_topobjdir=virtualenv_topobjdir,
+ )
+
+ if config_rc != 0:
+ return config_rc
+
+@@ -1635,10 +1637,11 @@
+ metrics,
+ options=None,
+ buildstatus_messages=False,
+ line_handler=None,
+ append_env=None,
++ virtualenv_topobjdir=None,
+ ):
+ # Disable indexing in objdir because it is not necessary and can slow
+ # down builds.
+ self.metrics = metrics
+ mkdir(self.topobjdir, not_indexed=True)
+@@ -1658,15 +1661,16 @@
+ if line.startswith("export "):
+ k, eq, v = line[len("export ") :].partition("=")
+ if eq == "=":
+ append_env[k] = v
+
++ virtualenv_topobjdir = virtualenv_topobjdir or self.topobjdir
+ build_site = CommandSiteManager.from_environment(
+ self.topsrcdir,
+ lambda: get_state_dir(specific_to_topsrcdir=True, topsrcdir=self.topsrcdir),
+ "build",
+- os.path.join(self.topobjdir, "_virtualenvs"),
++ os.path.join(virtualenv_topobjdir, "_virtualenvs"),
+ )
+ build_site.ensure()
+
+ command = [build_site.python_path, os.path.join(self.topsrcdir, "configure.py")]
+ if options:
+
diff --git a/firefox.spec b/firefox.spec
index 5462cd5..d87dfd1 100644
--- a/firefox.spec
+++ b/firefox.spec
@@ -162,13 +162,13 @@ ExcludeArch: aarch64
Summary: Mozilla Firefox Web browser
Name: firefox
-Version: 99.0.1
-Release: 2%{?pre_tag}%{?dist}
+Version: 100.0
+Release: 1%{?pre_tag}%{?dist}
URL: https://www.mozilla.org/firefox/
License: MPLv1.1 or GPLv2+ or LGPLv2+
Source0: https://archive.mozilla.org/pub/firefox/releases/%{version}%{?pre_version}/source/firefox-%{version}%{?pre_version}.source.tar.xz
%if %{with langpacks}
-Source1: firefox-langpacks-%{version}%{?pre_version}-20220413.tar.xz
+Source1: firefox-langpacks-%{version}%{?pre_version}-20220502.tar.xz
%endif
Source2: cbindgen-vendor.tar.xz
Source10: firefox-mozconfig
@@ -217,6 +217,7 @@ Patch55: firefox-testing.patch
Patch61: firefox-glibc-dynstack.patch
Patch62: build-python.patch
Patch71: 0001-GLIBCXX-fix-for-GCC-12.patch
+Patch72: D142373.diff
# Test patches
# Generate without context by
@@ -241,8 +242,6 @@ Patch402: mozilla-1196777.patch
Patch407: mozilla-1667096.patch
Patch408: mozilla-1663844.patch
Patch415: mozilla-1670333.patch
-Patch416: D141827.diff
-Patch417: D141828.diff
# PGO/LTO patches
Patch600: pgo.patch
@@ -460,6 +459,7 @@ This package contains results of tests executed during build.
%patch53 -p1 -b .firefox-gcc-build
%patch54 -p1 -b .1669639
%patch71 -p1 -b .0001-GLIBCXX-fix-for-GCC-12
+%patch72 -p1 -b .D142373
# Test patches
#%patch100 -p1 -b .firefox-tests-xpcshell
@@ -482,8 +482,6 @@ This package contains results of tests executed during build.
%patch407 -p1 -b .1667096
%patch408 -p1 -b .1663844
%patch415 -p1 -b .1670333
-%patch416 -p1 -b .D141827
-%patch417 -p1 -b .D141828
# PGO patches
%if %{build_with_pgo}
@@ -1050,6 +1048,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
#---------------------------------------------------------------------
%changelog
+* Mon May 2 2022 Martin Stransky <stransky@redhat.com>- 100.0-1
+- Updated to 100.0
+
* Thu Apr 28 2022 Jan Horak <jhorak@redhat.com> - 99.0.1-2
- Fixing bookmark install location - rhbz#2054953
diff --git a/mozilla-1196777.patch b/mozilla-1196777.patch
index 1ab70f7..864741e 100644
--- a/mozilla-1196777.patch
+++ b/mozilla-1196777.patch
@@ -1,7 +1,7 @@
-diff -up firefox-86.0/widget/gtk/nsWindow.cpp.1196777 firefox-86.0/widget/gtk/nsWindow.cpp
---- firefox-86.0/widget/gtk/nsWindow.cpp.1196777 2021-02-23 17:52:42.291702566 +0100
-+++ firefox-86.0/widget/gtk/nsWindow.cpp 2021-02-23 17:57:52.434895984 +0100
-@@ -195,7 +195,8 @@ const gint kEvents = GDK_TOUCHPAD_GESTUR
+diff -up firefox-100.0/widget/gtk/nsWindow.cpp.1196777 firefox-100.0/widget/gtk/nsWindow.cpp
+--- firefox-100.0/widget/gtk/nsWindow.cpp.1196777 2022-05-02 11:29:06.763325015 +0200
++++ firefox-100.0/widget/gtk/nsWindow.cpp 2022-05-02 11:30:49.100717334 +0200
+@@ -163,7 +163,8 @@ const gint kEvents = GDK_TOUCHPAD_GESTUR
GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK |
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK |
GDK_SMOOTH_SCROLL_MASK | GDK_TOUCH_MASK | GDK_SCROLL_MASK |
@@ -9,5 +9,5 @@ diff -up firefox-86.0/widget/gtk/nsWindow.cpp.1196777 firefox-86.0/widget/gtk/ns
+ GDK_POINTER_MOTION_MASK | GDK_PROPERTY_CHANGE_MASK |
+ GDK_FOCUS_CHANGE_MASK;
- #if !GTK_CHECK_VERSION(3, 22, 0)
- typedef enum {
+ /* utility functions */
+ static bool is_mouse_in_window(GdkWindow* aWindow, gdouble aMouseX,
diff --git a/sources b/sources
index 66ed100..32377fc 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
SHA512 (cbindgen-vendor.tar.xz) = b9ab1498be90ecf60822df7021f8812f124550d97f8cd687c69d3ab56fc5fb714bfe88c78c978a1794d211724909a9a5cad6a4b483fa05f762909c45d5075520
SHA512 (mochitest-python.tar.gz) = 18e1aeb475df5fbf1fe3838897d5ac2f3114aa349030713fc2be27af087b1b12f57642621b87bd052f324a7cb7fbae5f36b21502191d85692f62c8cdd69c8bf2
-SHA512 (firefox-langpacks-99.0.1-20220413.tar.xz) = 9ec7a4c4d68251176a01cbfa69960241033863e4b59c578846828dd57204b5fe02902fb6c5154352c3142a94106b952f02b141d0f5c8808e5aa901e891c7d60f
-SHA512 (firefox-99.0.1.source.tar.xz) = 0006b773ef1057a6e0b959d4f39849ad4a79272b38d565da98062b9aaf0effd2b729349c1f9fa10fccf7d2462d2c536b02c167ae6ad4556d6e519c6d22c25a7f
+SHA512 (firefox-100.0.source.tar.xz) = 29c56391c980209ff94c02a9aba18fe27bea188bdcbcf7fe0c0f27f61e823f4507a3ec343b27cb5285cf3901843e9cc4aca8e568beb623c4b69b7282e662b2aa
+SHA512 (firefox-langpacks-100.0-20220502.tar.xz) = 38e91cf8d6df6cf455891563f72090d1f277750f62f7a8c3cf5afd1d0a7aa2e1a6b47e65fc9d8419305ec2075c0ff3de41dbb7b5251790ff1bf3cd1f7db7bbbb
bgstack15