diff --git a/.gitignore b/.gitignore index 7a5677a..63b0925 100644 --- a/.gitignore +++ b/.gitignore @@ -546,3 +546,5 @@ firefox-3.6.4.source.tar.bz2 /firefox-107.0.source.tar.xz /firefox-107.0.1.source.tar.xz /firefox-langpacks-107.0.1-20221206.tar.xz +/firefox-108.0.source.tar.xz +/firefox-langpacks-108.0-20221206.tar.xz diff --git a/D161724.diff b/D161724.diff deleted file mode 100644 index 5f953c6..0000000 --- a/D161724.diff +++ /dev/null @@ -1,79 +0,0 @@ -diff --git a/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.h b/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.h ---- a/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.h -+++ b/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.h -@@ -173,10 +173,11 @@ - - PtsCorrectionContext mPtsContext; - - DurationMap mDurationMap; - const bool mLowLatency; -+ AVDiscard mFrameDrop = AVDISCARD_DEFAULT; - - // True if we're allocating shmem for ffmpeg decode buffer. - Maybe> mIsUsingShmemBufferForDecode; - - #if LIBAVCODEC_VERSION_MAJOR >= 57 && LIBAVUTIL_VERSION_MAJOR >= 56 -diff --git a/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp b/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp ---- a/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp -+++ b/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp -@@ -829,10 +829,17 @@ - packet.dts = aSample->mTimecode.ToMicroseconds(); - packet.pts = aSample->mTime.ToMicroseconds(); - packet.flags = aSample->mKeyframe ? AV_PKT_FLAG_KEY : 0; - packet.pos = aSample->mOffset; - -+ mCodecContext->skip_frame = mFrameDrop; -+#if MOZ_LOGGING -+ if (mFrameDrop == AVDISCARD_NONREF) { -+ FFMPEG_LOG("Frame skip AVDISCARD_NONREF"); -+ } -+#endif -+ - #if LIBAVCODEC_VERSION_MAJOR >= 58 - packet.duration = aSample->mDuration.ToMicroseconds(); - int res = mLib->avcodec_send_packet(mCodecContext, &packet); - if (res < 0) { - // In theory, avcodec_send_packet could sent -EAGAIN should its internal -@@ -881,10 +888,22 @@ - return MediaResult( - NS_ERROR_DOM_MEDIA_DECODE_ERR, - RESULT_DETAIL("avcodec_receive_frame error: %s", errStr)); - } - -+ if (mFrameDrop == AVDISCARD_NONREF) { -+ FFMPEG_LOG("Requested pts %" PRId64 " decoded frame pts %" PRId64, -+ packet.pts, GetFramePts(mFrame) + mFrame->pkt_duration); -+ // Switch back to default frame skip policy if we hit correct -+ // decode times. 5 ms treshold is taken from mpv project which -+ // use similar approach after seek (feed_packet() at f_decoder_wrapper.c). -+ if (packet.pts - 5000 <= GetFramePts(mFrame) + mFrame->pkt_duration) { -+ FFMPEG_LOG("Set frame drop to AVDISCARD_DEFAULT."); -+ mFrameDrop = AVDISCARD_DEFAULT; -+ } -+ } -+ - UpdateDecodeTimes(decodeStart); - decodeStart = TimeStamp::Now(); - - MediaResult rv; - # ifdef MOZ_WAYLAND_USE_VAAPI -@@ -1211,13 +1230,18 @@ - } - #endif - - RefPtr - FFmpegVideoDecoder::ProcessFlush() { -+ FFMPEG_LOG("ProcessFlush()"); - MOZ_ASSERT(mTaskQueue->IsOnCurrentThread()); - mPtsContext.Reset(); - mDurationMap.Clear(); -+ // Discard non-ref frames on HW accelerated backend to avoid decode artifacts. -+ if (IsHardwareAccelerated()) { -+ mFrameDrop = AVDISCARD_NONREF; -+ } - return FFmpegDataDecoder::ProcessFlush(); - } - - AVCodecID FFmpegVideoDecoder::GetCodecId( - const nsACString& aMimeType) { - diff --git a/firefox-mozconfig b/firefox-mozconfig index 90dfccf..3108550 100644 --- a/firefox-mozconfig +++ b/firefox-mozconfig @@ -5,6 +5,7 @@ ac_add_options --disable-strip #ac_add_options --enable-libnotify ac_add_options --enable-necko-wifi ac_add_options --disable-updater +ac_add_options --disable-elfhack ac_add_options --enable-chrome-format=omni ac_add_options --enable-pulseaudio ac_add_options --enable-av1 diff --git a/firefox.spec b/firefox.spec index a4ec79f..1620ade 100644 --- a/firefox.spec +++ b/firefox.spec @@ -73,7 +73,6 @@ ExcludeArch: i686 %global system_libvpx 0 %endif %global system_jpeg 1 -%global disable_elfhack 1 %global use_bundled_cbindgen 1 %if %{debug_build} %global release_build 0 @@ -171,7 +170,7 @@ ExcludeArch: i686 Summary: Mozilla Firefox Web browser Name: firefox -Version: 107.0.1 +Version: 108.0 Release: 1%{?pre_tag}%{?dist} URL: https://www.mozilla.org/firefox/ License: MPLv1.1 or GPLv2+ or LGPLv2+ @@ -214,7 +213,7 @@ Patch35: build-ppc-jit.patch # Fixing missing cacheFlush when JS_CODEGEN_NONE is used (s390x) Patch38: build-cacheFlush-missing.patch Patch40: build-aarch64-skia.patch -Patch41: build-disable-elfhack.patch +#Patch41: build-disable-elfhack.patch Patch44: build-arm-libopus.patch Patch46: firefox-nss-version.patch Patch47: fedora-shebang-build.patch @@ -251,7 +250,6 @@ Patch402: mozilla-1196777.patch Patch407: mozilla-1667096.patch Patch408: mozilla-1663844.patch Patch415: mozilla-1670333.patch -Patch416: D161724.diff # PGO/LTO patches Patch600: pgo.patch @@ -496,9 +494,6 @@ This package contains results of tests executed during build. # ignored during this compare. %patch40 -p1 -b .aarch64-skia -%if 0%{?disable_elfhack} -%patch41 -p1 -b .disable-elfhack -%endif %patch3 -p1 -b .arm %patch44 -p1 -b .build-arm-libopus %patch47 -p1 -b .fedora-shebang @@ -506,7 +501,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 -%patch77 -p1 -b .build-python-3.11 +#%patch77 -p1 -b .build-python-3.11 %patch78 -p1 -b .firefox-i686 # Test patches @@ -530,7 +525,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 .D161724 # PGO patches %if %{build_with_pgo} @@ -1133,6 +1127,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : #--------------------------------------------------------------------- %changelog +* Tue Dec 6 2022 Martin Stransky - 108.0-1 +- Update to 108.0 + * Tue Dec 6 2022 Martin Stransky - 107.0.1-1 - Update to 107.0.1 diff --git a/sources b/sources index 03c9173..9c575ee 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ -SHA512 (mochitest-python.tar.gz) = 18e1aeb475df5fbf1fe3838897d5ac2f3114aa349030713fc2be27af087b1b12f57642621b87bd052f324a7cb7fbae5f36b21502191d85692f62c8cdd69c8bf2 SHA512 (cbindgen-vendor.tar.xz) = 0d45c1decfd7aaee853748745c9f5a907c0c6a0cf809c2387aac1cdcf680b0844b1ef4d05148e0527de4ff6e4d4666110bea317bd00b7d73a1210eb58a815563 -SHA512 (firefox-107.0.1.source.tar.xz) = e57e4bfcecbcc6dbe73f23577a14a2998c8c3f3d602f85ea06f99e0974e78481b9f7bdb019cb4e9733e59f56be1407edd64a2adb7b284bb4a87b46b1e2295dea -SHA512 (firefox-langpacks-107.0.1-20221206.tar.xz) = 5d10a60937734f589b18aa648a6e3c3c65d7992d62d6781f6508d66e993ddea6fe66af4b4c78862c748ecfcbda746b982a68e0c3aa2244014508281be2545998 +SHA512 (firefox-108.0.source.tar.xz) = 773d390442c348de0d2c1f5dbebaccf24db1d9cc4eec3a47c419cdb4c8b03e1d9cd8eabb5c60941fdd7ab83e5b6702e5e803ba00beeee76e115a1fe7306362bc +SHA512 (firefox-langpacks-108.0-20221206.tar.xz) = 8d6f080e25c6d8bb391442014290e8b18f59efd6792f811ecd5327cce05ff58ec64fb8be7e0e91e6d4bb2576e5453243ea99b767df1989e7eb346853cc50483d +SHA512 (mochitest-python.tar.gz) = e0a2c569dafe013b6a4c073516388549a8f398d8aa4538a3bc69dcda44737a3a3cf070285e9fa040a15d7a62446665c6158d42a1b6dc3e8d7f4680bc2ef17a16