Sync with internal WIP Firefox 128 rebase branch

This commit is contained in:
Tomas Popela 2024-07-23 15:06:11 +02:00
parent cc55a00094
commit 7b35cd4fd5
5 changed files with 335 additions and 354 deletions

View File

@ -1,23 +1,23 @@
diff --git a/dom/media/webrtc/third_party_build/webrtc.mozbuild b/dom/media/webrtc/third_party_build/webrtc.mozbuild
index 30169c36c2..335e3cb1a1 100644
--- a/dom/media/webrtc/third_party_build/webrtc.mozbuild
+++ b/dom/media/webrtc/third_party_build/webrtc.mozbuild
@@ -35,6 +35,3 @@ if CONFIG['MOZ_WEBRTC']:
if CONFIG['MOZ_X11']:
DEFINES['WEBRTC_USE_X11'] = True
-
- if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
- DEFINES['WEBRTC_USE_PIPEWIRE'] = True
diff --git a/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn/moz.build b/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn/moz.build
index 8c56b6b8e5..eaf8d7087a 100644
--- a/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn/moz.build
+++ b/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn/moz.build
@@ -232,102 +232,6 @@ if CONFIG["CPU_ARCH"] == "aarch64":
diff -up firefox-128.0/dom/media/webrtc/third_party_build/webrtc.mozbuild.disable-pipewire firefox-128.0/dom/media/webrtc/third_party_build/webrtc.mozbuild
--- firefox-128.0/dom/media/webrtc/third_party_build/webrtc.mozbuild.disable-pipewire 2024-07-17 14:01:36.290603114 +0200
+++ firefox-128.0/dom/media/webrtc/third_party_build/webrtc.mozbuild 2024-07-17 14:52:02.039208338 +0200
@@ -31,7 +31,7 @@ if CONFIG["MOZ_WEBRTC"]:
and CONFIG["TARGET_CPU"].startswith("mips")
)
):
- DEFINES["WEBRTC_USE_PIPEWIRE"] = True
+ DEFINES["WEBRTC_USE_PIPEWIRE"] = False
elif CONFIG["OS_TARGET"] == "Darwin":
DEFINES["WEBRTC_MAC"] = True
elif CONFIG["OS_TARGET"] == "WINNT":
diff -up firefox-128.0/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn/moz.build.disable-pipewire firefox-128.0/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn/moz.build
--- firefox-128.0/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn/moz.build.disable-pipewire 2024-07-17 14:01:36.291603109 +0200
+++ firefox-128.0/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn/moz.build 2024-07-17 14:56:35.419826494 +0200
@@ -241,102 +241,6 @@ if CONFIG["TARGET_CPU"] == "aarch64":
DEFINES["WEBRTC_ARCH_ARM64"] = True
DEFINES["WEBRTC_HAS_NEON"] = True
-if CONFIG["CPU_ARCH"] == "arm":
-if CONFIG["TARGET_CPU"] == "arm":
-
- CXXFLAGS += [
- "-mfpu=neon"
@ -53,7 +53,7 @@ index 8c56b6b8e5..eaf8d7087a 100644
- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc"
- ]
-
-if CONFIG["CPU_ARCH"] == "mips32":
-if CONFIG["TARGET_CPU"] == "mips32":
-
- DEFINES["MIPS32_LE"] = True
- DEFINES["MIPS_FPU_LE"] = True
@ -84,7 +84,7 @@ index 8c56b6b8e5..eaf8d7087a 100644
- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc"
- ]
-
-if CONFIG["CPU_ARCH"] == "mips64":
-if CONFIG["TARGET_CPU"] == "mips64":
-
- DEFINES["WEBRTC_USE_PIPEWIRE"] = True
- DEFINES["_GNU_SOURCE"] = True
@ -113,14 +113,14 @@ index 8c56b6b8e5..eaf8d7087a 100644
- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc"
- ]
-
if CONFIG["CPU_ARCH"] == "ppc64":
if CONFIG["TARGET_CPU"] == "ppc64":
DEFINES["USE_X11"] = "1"
@@ -410,97 +314,6 @@ if CONFIG["MOZ_DEBUG"] == "1" and CONFIG["OS_TARGET"] == "WINNT":
@@ -389,35 +293,6 @@ if CONFIG["MOZ_DEBUG"] == "1" and CONFIG
DEFINES["_HAS_ITERATOR_DEBUGGING"] = "0"
-if CONFIG["CPU_ARCH"] == "aarch64" and CONFIG["OS_TARGET"] == "Linux":
-if CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "aarch64":
-
- DEFINES["WEBRTC_USE_PIPEWIRE"] = True
- DEFINES["_GNU_SOURCE"] = True
@ -149,7 +149,14 @@ index 8c56b6b8e5..eaf8d7087a 100644
- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc"
- ]
-
-if CONFIG["CPU_ARCH"] == "x86" and CONFIG["OS_TARGET"] == "Linux":
if CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "riscv64":
DEFINES["USE_X11"] = "1"
@@ -446,95 +321,6 @@ if CONFIG["OS_TARGET"] == "Linux" and CO
"/third_party/libwebrtc/modules/desktop_capture/linux/x11/x_window_property.cc"
]
-if CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "x86":
-
- CXXFLAGS += [
- "-msse2"
@ -182,7 +189,7 @@ index 8c56b6b8e5..eaf8d7087a 100644
- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc"
- ]
-
-if CONFIG["CPU_ARCH"] == "x86_64" and CONFIG["OS_TARGET"] == "Linux":
-if CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "x86_64":
-
- DEFINES["WEBRTC_USE_PIPEWIRE"] = True
- DEFINES["_GNU_SOURCE"] = True
@ -211,14 +218,40 @@ index 8c56b6b8e5..eaf8d7087a 100644
- "/third_party/libwebrtc/modules/desktop_capture/linux/wayland/shared_screencast_stream.cc"
- ]
-
if CONFIG["CPU_ARCH"] == "aarch64" and CONFIG["MOZ_X11"] == "1" and CONFIG["OS_TARGET"] == "Linux":
-if CONFIG["MOZ_X11"] == "1" and CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "aarch64":
-
- DEFINES["USE_X11"] = "1"
- DEFINES["WEBRTC_USE_X11"] = True
-
- OS_LIBS += [
- "X11",
- "Xcomposite",
- "Xdamage",
- "Xext",
- "Xfixes",
- "Xrandr",
- "Xrender"
- ]
-
- UNIFIED_SOURCES += [
- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/mouse_cursor_monitor_x11.cc",
- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/screen_capturer_x11.cc",
- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/shared_x_display.cc",
- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/window_capturer_x11.cc",
- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/window_finder_x11.cc",
- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/window_list_utils.cc",
- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/x_atom_cache.cc",
- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/x_error_trap.cc",
- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/x_server_pixel_buffer.cc",
- "/third_party/libwebrtc/modules/desktop_capture/linux/x11/x_window_property.cc"
- ]
DEFINES["USE_X11"] = "1"
diff --git a/third_party/libwebrtc/modules/portal/portal_gn/moz.build b/third_party/libwebrtc/modules/portal/portal_gn/moz.build
index 77603c780b..e6f2c9e724 100644
--- a/third_party/libwebrtc/modules/portal/portal_gn/moz.build
+++ b/third_party/libwebrtc/modules/portal/portal_gn/moz.build
@@ -26,7 +26,7 @@ DEFINES["WEBRTC_MOZILLA_BUILD"] = True
if CONFIG["MOZ_X11"] == "1" and CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] == "arm":
diff -up firefox-128.0/third_party/libwebrtc/modules/portal/portal_gn/moz.build.disable-pipewire firefox-128.0/third_party/libwebrtc/modules/portal/portal_gn/moz.build
--- firefox-128.0/third_party/libwebrtc/modules/portal/portal_gn/moz.build.disable-pipewire 2024-07-04 18:20:41.000000000 +0200
+++ firefox-128.0/third_party/libwebrtc/modules/portal/portal_gn/moz.build 2024-07-17 14:01:36.291603109 +0200
@@ -27,7 +27,7 @@ DEFINES["WEBRTC_MOZILLA_BUILD"] = True
DEFINES["WEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS"] = "0"
DEFINES["WEBRTC_POSIX"] = True
DEFINES["WEBRTC_STRICT_FIELD_TRIALS"] = "0"
@ -227,11 +260,10 @@ index 77603c780b..e6f2c9e724 100644
DEFINES["_FILE_OFFSET_BITS"] = "64"
DEFINES["_GNU_SOURCE"] = True
DEFINES["_LARGEFILE64_SOURCE"] = True
diff --git a/third_party/libwebrtc/third_party/pipewire/pipewire_gn/moz.build b/third_party/libwebrtc/third_party/pipewire/pipewire_gn/moz.build
index 86a0daf8fa..e895f2eb15 100644
--- a/third_party/libwebrtc/third_party/pipewire/pipewire_gn/moz.build
+++ b/third_party/libwebrtc/third_party/pipewire/pipewire_gn/moz.build
@@ -24,7 +24,7 @@ DEFINES["WEBRTC_MOZILLA_BUILD"] = True
diff -up firefox-128.0/third_party/libwebrtc/third_party/pipewire/pipewire_gn/moz.build.disable-pipewire firefox-128.0/third_party/libwebrtc/third_party/pipewire/pipewire_gn/moz.build
--- firefox-128.0/third_party/libwebrtc/third_party/pipewire/pipewire_gn/moz.build.disable-pipewire 2024-07-04 18:20:41.000000000 +0200
+++ firefox-128.0/third_party/libwebrtc/third_party/pipewire/pipewire_gn/moz.build 2024-07-17 14:01:36.291603109 +0200
@@ -25,7 +25,7 @@ DEFINES["WEBRTC_MOZILLA_BUILD"] = True
DEFINES["WEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS"] = "0"
DEFINES["WEBRTC_POSIX"] = True
DEFINES["WEBRTC_STRICT_FIELD_TRIALS"] = "0"

View File

@ -64,7 +64,6 @@ MOZ_DIST_BIN="$MOZ_LIB_DIR/firefox"
MOZ_LANGPACKS_DIR="$MOZ_DIST_BIN/langpacks"
MOZ_EXTENSIONS_PROFILE_DIR="$HOME/.mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
MOZ_PROGRAM="$MOZ_DIST_BIN/$MOZ_FIREFOX_FILE"
MOZ_LAUNCHER="$MOZ_DIST_BIN/run-mozilla.sh"
GETENFORCE_FILE="/usr/sbin/getenforce"
##
@ -247,35 +246,6 @@ fi
NSS_SSL_CBC_RANDOM_IV=${NSS_SSL_CBC_RANDOM_IV-1}
export NSS_SSL_CBC_RANDOM_IV
# Prepare command line arguments
script_args=""
pass_arg_count=0
while [ $# -gt $pass_arg_count ]
do
case "$1" in
-g | --debug)
script_args="$script_args -g"
debugging=1
shift
;;
-d | --debugger)
if [ $# -gt 1 ]; then
script_args="$script_args -d $2"
shift 2
else
shift
fi
;;
*)
# Move the unrecognized argument to the end of the list.
arg="$1"
shift
set -- "$@" "$arg"
pass_arg_count=`expr $pass_arg_count + 1`
;;
esac
done
# Flatpak specific environment variables
%FLATPAK_ENV_VARS%
@ -286,7 +256,7 @@ export MOZ_ALLOW_DOWNGRADE=1
debugging=0
if [ $debugging = 1 ]
then
echo $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@"
echo $MOZ_PROGRAM "$@"
fi
exec $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@"
exec $MOZ_PROGRAM "$@"

View File

@ -63,7 +63,7 @@ end}
%endif
%endif
%global dts_version 10
%global dts_version 12
%global llvm_version 7.0
%global nspr_version 4.35
%global nspr_version_max 4.36
@ -77,20 +77,20 @@ end}
%global use_gcc_ts 0
%global use_llvm_ts 0
%global use_nodejs_scl 0
#FIXME switch to 1
%global use_rust_ts 0
%global use_python3_scl 0
%global nodejs_build_req nodejs
%if 0%{?rhel} >= 8
%if 0%{?rhel} == 7
%global use_rust_ts 0
%endif
%if 0%{?rhel} == 8 && %{rhel_minor_version} < 6
%ifarch aarch64
#if 0%{?rhel} == 8 && %{rhel_minor_version} < 6
%if 0%{?rhel} > 7 && 0%{?rhel} < 10
# ifarch aarch64
%global use_gcc_ts 1
%endif
# endif
%endif
%if 0%{?rhel} == 7
@ -320,6 +320,17 @@ BuildRequires: python3-setuptools
BuildRequires: rust
%endif
%if 0%{?rhel} == 7
BuildRequires: cargo
BuildRequires: clang clang-libs llvm llvm-devel
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: rust
BuildRequires: httpd24-curl
%endif
%if 0%{?use_dts}
BuildRequires: devtoolset-%{dts_version}-gcc
BuildRequires: devtoolset-%{dts_version}-gcc-c++
@ -403,13 +414,9 @@ BuildRequires: xorg-x11-fonts-misc
BuildRequires: xorg-x11-server-Xvfb
%endif
%if 0%{?use_dts}
%if 0%{?rhel} == 8 && %{rhel_minor_version} < 6
%ifarch aarch64
BuildRequires: gcc-toolset-13-gcc-plugin-annobin
%endif
%endif
%if 0%{?use_gcc_ts}
BuildRequires: gcc-toolset-13
BuildRequires: gcc-toolset-13-gcc-plugin-annobin
%endif
Requires: mozilla-filesystem
@ -997,7 +1004,7 @@ echo "use_nodejs_scl %{?use_nodejs_scl}"
echo "use_llvm_ts %{?use_llvm_ts}"
echo "use_python3_scl %{?use_python3_scl}"
echo "--------------------------------------------"
clang -print-search-dirs
#clang -print-search-dirs
%setup -q -n %{name}-%{version}
# ---- RHEL specific patches ---
@ -1027,8 +1034,8 @@ clang -print-search-dirs
%patch -P51 -p1 -b .mozilla-bmo1170092
# -- Submitted upstream, not merged --
#%patch -P101 -p1 -b .mozilla-bmo1636168-fscreen TODO
#%patch -P102 -p1 -b .mozilla-bmo1670333 TODO
%patch -P101 -p1 -b .mozilla-bmo1636168-fscreen
%patch -P102 -p1 -b .mozilla-bmo1670333
%patch -P103 -p1 -b .mozilla-bmo1504834-part1
%patch -P104 -p1 -b .mozilla-bmo1504834-part3
%patch -P105 -p1 -b .mozilla-bmo849632
@ -1221,13 +1228,8 @@ function install_rpms_to_current_dir() {
# Enable toolsets
set +e
%if 0%{?rhel} == 8 && %{rhel_minor_version} < 6
%ifarch aarch64
source scl_source enable gcc-toolset-12
%endif
%endif
# This is definitely wrong, but I need things going on RHEL 10
%if 0%{?rhel} < 10
%if 0%{?use_gcc_ts}
source scl_source enable gcc-toolset-13
%endif
%if 0%{?use_dts}

View File

@ -1,15 +1,7 @@
diff -up firefox-114.0/widget/gtk/nsWindow.cpp.D110204-fscreen.diff firefox-114.0/widget/gtk/nsWindow.cpp
--- firefox-114.0/widget/gtk/nsWindow.cpp.D110204-fscreen.diff 2023-05-17 10:43:02.000000000 +0200
+++ firefox-114.0/widget/gtk/nsWindow.cpp 2023-05-17 13:53:54.000443278 +0200
@@ -100,6 +100,7 @@
#include "ScreenHelperGTK.h"
#include "SystemTimeConverter.h"
#include "WidgetUtilsGtk.h"
+#include "nsIBrowserHandler.h"
#ifdef ACCESSIBILITY
# include "mozilla/a11y/LocalAccessible.h"
@@ -173,7 +174,8 @@ const gint kEvents = GDK_TOUCHPAD_GESTUR
diff -up firefox-128.0/widget/gtk/nsWindow.cpp.mozilla-bmo1636168-fscreen firefox-128.0/widget/gtk/nsWindow.cpp
--- firefox-128.0/widget/gtk/nsWindow.cpp.mozilla-bmo1636168-fscreen 2024-07-04 18:20:43.000000000 +0200
+++ firefox-128.0/widget/gtk/nsWindow.cpp 2024-07-16 14:54:21.026716936 +0200
@@ -174,7 +174,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 |
@ -19,7 +11,7 @@ diff -up firefox-114.0/widget/gtk/nsWindow.cpp.D110204-fscreen.diff firefox-114.
/* utility functions */
static bool is_mouse_in_window(GdkWindow* aWindow, gdouble aMouseX,
@@ -433,7 +435,8 @@ nsWindow::nsWindow()
@@ -430,7 +431,8 @@ nsWindow::nsWindow()
mResizedAfterMoveToRect(false),
mConfiguredClearColor(false),
mGotNonBlankPaint(false),
@ -29,7 +21,7 @@ diff -up firefox-114.0/widget/gtk/nsWindow.cpp.D110204-fscreen.diff firefox-114.
mWindowType = WindowType::Child;
mSizeConstraints.mMaxSize = GetSafeWindowSize(mSizeConstraints.mMaxSize);
@@ -5263,6 +5266,19 @@ void nsWindow::OnWindowStateEvent(GtkWid
@@ -5374,6 +5376,19 @@ void nsWindow::OnWindowStateEvent(GtkWid
ClearTransparencyBitmap();
}
}
@ -49,30 +41,18 @@ diff -up firefox-114.0/widget/gtk/nsWindow.cpp.D110204-fscreen.diff firefox-114.
}
void nsWindow::OnDPIChanged() {
@@ -7409,6 +7425,19 @@ nsresult nsWindow::MakeFullScreen(bool a
}
}
@@ -7526,6 +7541,7 @@ nsresult nsWindow::MakeFullScreen(bool a
+ // if in kiosk, ensure the fullscreen is called
+ nsCOMPtr<nsIBrowserHandler> browserHandler =
+ do_GetService("@mozilla.org/browser/clh;1");
+ if (browserHandler) {
+ bool isKiosk;
+ browserHandler->GetKiosk(&isKiosk);
+ if (isKiosk) {
+ LOG(" is kiosk, ensure the window switch to fullscreen\n");
+ mPendingFullscreen = true;
+ }
+ } else {
+ LOG(" Cannot find the browserHandler service.\n");
+ }
gtk_window_fullscreen(GTK_WINDOW(mShell));
} else {
gtk_window_unfullscreen(GTK_WINDOW(mShell));
diff -up firefox-114.0/widget/gtk/nsWindow.h.D110204-fscreen.diff firefox-114.0/widget/gtk/nsWindow.h
--- firefox-114.0/widget/gtk/nsWindow.h.D110204-fscreen.diff 2023-05-17 08:46:16.000000000 +0200
+++ firefox-114.0/widget/gtk/nsWindow.h 2023-05-17 13:51:29.502159247 +0200
@@ -752,6 +752,7 @@ class nsWindow final : public nsBaseWidg
if (mKioskMonitor.isSome()) {
KioskLockOnMonitor();
+ mPendingFullscreen = true;
} else {
gtk_window_fullscreen(GTK_WINDOW(mShell));
}
diff -up firefox-128.0/widget/gtk/nsWindow.h.mozilla-bmo1636168-fscreen firefox-128.0/widget/gtk/nsWindow.h
--- firefox-128.0/widget/gtk/nsWindow.h.mozilla-bmo1636168-fscreen 2024-07-04 18:20:43.000000000 +0200
+++ firefox-128.0/widget/gtk/nsWindow.h 2024-07-16 14:25:51.636952919 +0200
@@ -758,6 +758,7 @@ class nsWindow final : public nsBaseWidg
* move-to-rect callback we set mMovedAfterMoveToRect/mResizedAfterMoveToRect.
*/
bool mWaitingForMoveToRectCallback : 1;

View File

@ -1,7 +1,7 @@
diff -up firefox-115.0/dom/media/mp4/MP4Demuxer.cpp.1670333 firefox-115.0/dom/media/mp4/MP4Demuxer.cpp
--- firefox-115.0/dom/media/mp4/MP4Demuxer.cpp.1670333 2023-06-06 23:14:43.000000000 +0200
+++ firefox-115.0/dom/media/mp4/MP4Demuxer.cpp 2023-06-08 08:15:48.214109403 +0200
@@ -32,6 +32,8 @@ mozilla::LogModule* GetDemuxerLog() { re
diff -up firefox-128.0/dom/media/mp4/MP4Demuxer.cpp.mozilla-bmo1670333 firefox-128.0/dom/media/mp4/MP4Demuxer.cpp
--- firefox-128.0/dom/media/mp4/MP4Demuxer.cpp.mozilla-bmo1670333 2024-07-04 18:20:27.000000000 +0200
+++ firefox-128.0/dom/media/mp4/MP4Demuxer.cpp 2024-07-16 13:49:10.475630426 +0200
@@ -33,6 +33,8 @@ mozilla::LogModule* GetDemuxerLog() { re
DDMOZ_LOG(gMediaDemuxerLog, mozilla::LogLevel::Debug, "::%s: " arg, \
__func__, ##__VA_ARGS__)
@ -10,7 +10,7 @@ diff -up firefox-115.0/dom/media/mp4/MP4Demuxer.cpp.1670333 firefox-115.0/dom/me
namespace mozilla {
using TimeUnit = media::TimeUnit;
@@ -404,6 +406,12 @@ already_AddRefed<MediaRawData> MP4TrackD
@@ -419,6 +421,12 @@ already_AddRefed<MediaRawData> MP4TrackD
[[fallthrough]];
case H264::FrameType::OTHER: {
bool keyframe = type == H264::FrameType::I_FRAME;
@ -23,10 +23,10 @@ diff -up firefox-115.0/dom/media/mp4/MP4Demuxer.cpp.1670333 firefox-115.0/dom/me
if (sample->mKeyframe != keyframe) {
NS_WARNING(nsPrintfCString("Frame incorrectly marked as %skeyframe "
"@ pts:%" PRId64 " dur:%" PRId64
diff -up firefox-115.0/dom/media/platforms/PDMFactory.cpp.1670333 firefox-115.0/dom/media/platforms/PDMFactory.cpp
--- firefox-115.0/dom/media/platforms/PDMFactory.cpp.1670333 2023-06-06 23:14:44.000000000 +0200
+++ firefox-115.0/dom/media/platforms/PDMFactory.cpp 2023-06-08 08:09:33.145289602 +0200
@@ -67,6 +67,8 @@
diff -up firefox-128.0/dom/media/platforms/PDMFactory.cpp.mozilla-bmo1670333 firefox-128.0/dom/media/platforms/PDMFactory.cpp
--- firefox-128.0/dom/media/platforms/PDMFactory.cpp.mozilla-bmo1670333 2024-07-04 18:20:26.000000000 +0200
+++ firefox-128.0/dom/media/platforms/PDMFactory.cpp 2024-07-16 14:16:04.635809901 +0200
@@ -62,6 +62,8 @@
#include <functional>
@ -35,31 +35,28 @@ diff -up firefox-115.0/dom/media/platforms/PDMFactory.cpp.1670333 firefox-115.0/
using DecodeSupport = mozilla::media::DecodeSupport;
using DecodeSupportSet = mozilla::media::DecodeSupportSet;
using MediaCodec = mozilla::media::MediaCodec;
@@ -562,7 +564,7 @@ void PDMFactory::CreateRddPDMs() {
@@ -543,7 +545,7 @@ void PDMFactory::CreateRddPDMs() {
#ifdef MOZ_FFMPEG
if (StaticPrefs::media_ffmpeg_enabled() &&
StaticPrefs::media_rdd_ffmpeg_enabled() &&
- !CreateAndStartupPDM<FFmpegRuntimeLinker>()) {
+ !(mFFmpegUsed = CreateAndStartupPDM<FFmpegRuntimeLinker>())) {
- !StartupPDM(FFmpegRuntimeLinker::CreateDecoder())) {
+ !(mFFmpegUsed = StartupPDM(FFmpegRuntimeLinker::CreateDecoder()))) {
mFailureFlags += GetFailureFlagBasedOnFFmpegStatus(
FFmpegRuntimeLinker::LinkStatusCode());
}
@@ -738,9 +740,10 @@ void PDMFactory::CreateDefaultPDMs() {
CreateAndStartupPDM<AgnosticDecoderModule>();
@@ -719,7 +721,7 @@ void PDMFactory::CreateDefaultPDMs() {
StartupPDM(AgnosticDecoderModule::Create(),
StaticPrefs::media_prefer_non_ffvpx());
- if (StaticPrefs::media_gmp_decoder_enabled() &&
+ if (StaticPrefs::media_gmp_decoder_enabled() && !mFFmpegUsed &&
!StartupPDM(GMPDecoderModule::Create(),
StaticPrefs::media_gmp_decoder_preferred())) {
+ gUseKeyframeFromContainer = true;
mFailureFlags += DecoderDoctorDiagnostics::Flags::GMPPDMFailedToStartup;
}
}
diff -up firefox-115.0/dom/media/platforms/PDMFactory.h.1670333 firefox-115.0/dom/media/platforms/PDMFactory.h
--- firefox-115.0/dom/media/platforms/PDMFactory.h.1670333 2023-06-06 23:14:42.000000000 +0200
+++ firefox-115.0/dom/media/platforms/PDMFactory.h 2023-06-08 08:09:33.145289602 +0200
@@ -103,6 +103,7 @@ class PDMFactory final {
diff -up firefox-128.0/dom/media/platforms/PDMFactory.h.mozilla-bmo1670333 firefox-128.0/dom/media/platforms/PDMFactory.h
--- firefox-128.0/dom/media/platforms/PDMFactory.h.mozilla-bmo1670333 2024-07-04 18:20:26.000000000 +0200
+++ firefox-128.0/dom/media/platforms/PDMFactory.h 2024-07-16 13:49:10.476630421 +0200
@@ -98,6 +98,7 @@ class PDMFactory final {
RefPtr<PlatformDecoderModule> mNullPDM;
DecoderDoctorDiagnostics::FlagsSet mFailureFlags;