diff options
author | Martin Stransky <stransky@redhat.com> | 2022-05-02 13:37:20 +0200 |
---|---|---|
committer | Martin Stransky <stransky@redhat.com> | 2022-05-02 13:37:20 +0200 |
commit | e4c24fcfb33af407441f9377647a5fc1cf4efcb7 (patch) | |
tree | be8171ff167600cd45a9a340472ff7d5f82a8ffa | |
parent | Fixing bookmark install location - rhbz#2054953 (diff) | |
download | librewolf-fedora-ff-e4c24fcfb33af407441f9377647a5fc1cf4efcb7.tar.gz librewolf-fedora-ff-e4c24fcfb33af407441f9377647a5fc1cf4efcb7.tar.bz2 librewolf-fedora-ff-e4c24fcfb33af407441f9377647a5fc1cf4efcb7.zip |
Updated to 100.0
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | D141827.diff | 207 | ||||
-rw-r--r-- | D141828.diff | 252 | ||||
-rw-r--r-- | D142373.diff | 86 | ||||
-rw-r--r-- | firefox.spec | 15 | ||||
-rw-r--r-- | mozilla-1196777.patch | 12 | ||||
-rw-r--r-- | sources | 4 |
7 files changed, 104 insertions, 474 deletions
@@ -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, @@ -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 |