From 41962ee4b477db9ae5eefa51e293938ef28fbe97 Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Mon, 25 May 2020 22:40:31 +0200 Subject: Added fix for mozbz#1632456 --- firefox.spec | 7 ++++++- mozilla-1632456.patch | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 mozilla-1632456.patch diff --git a/firefox.spec b/firefox.spec index c7b330e..94dff39 100644 --- a/firefox.spec +++ b/firefox.spec @@ -118,7 +118,7 @@ ExcludeArch: s390x Summary: Mozilla Firefox Web browser Name: firefox Version: 76.0.1 -Release: 6%{?nss_tag}%{?dist} +Release: 7%{?nss_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 @@ -200,6 +200,7 @@ Patch586: mozilla-1619882-1.patch Patch587: mozilla-1619882-2.patch Patch588: mozilla-1619882-3.patch Patch589: mozilla-1634213.patch +Patch590: mozilla-1632456.patch # PGO/LTO patches Patch600: pgo.patch @@ -417,6 +418,7 @@ This package contains results of tests executed during build. %patch587 -p1 -b .mozilla-1619882-2 %patch588 -p1 -b .mozilla-1619882-3 %patch589 -p1 -b .mozilla-1634213 +%patch590 -p1 -b .mozilla-1632456 # PGO patches %patch600 -p1 -b .pgo @@ -991,6 +993,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : #--------------------------------------------------------------------- %changelog +* Mon May 25 2020 Martin Stransky - 76.0.1-7 +- Added fix for mozbz#1632456 + * Mon May 25 2020 Martin Stransky - 76.0.1-6 - Added fix for mozbz#1634213 diff --git a/mozilla-1632456.patch b/mozilla-1632456.patch new file mode 100644 index 0000000..2050461 --- /dev/null +++ b/mozilla-1632456.patch @@ -0,0 +1,52 @@ +changeset: 531979:da64e8ddf04b +tag: tip +parent: 531977:9a0589e208e8 +user: Martin Stransky +date: Mon May 25 22:29:45 2020 +0200 +files: dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp +description: +Bug 1632456 [Wayland] Release mVAAPIDeviceContext when FFmpegVideoDecoder::CreateVAAPIDeviceContext() fails, r?jya + +Differential Revision: https://phabricator.services.mozilla.com/D76745 + + +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 +@@ -187,32 +187,35 @@ bool FFmpegVideoDecoder::Crea + return false; + } + AVHWDeviceContext* hwctx = (AVHWDeviceContext*)mVAAPIDeviceContext->data; + AVVAAPIDeviceContext* vactx = (AVVAAPIDeviceContext*)hwctx->hwctx; + + wl_display* display = widget::WaylandDisplayGetWLDisplay(); + if (!display) { + FFMPEG_LOG("Can't get default wayland display."); ++ mLib->av_buffer_unref(&mVAAPIDeviceContext); + return false; + } + mDisplay = mLib->vaGetDisplayWl(display); + + hwctx->user_opaque = new VAAPIDisplayHolder(mLib, mDisplay); + hwctx->free = VAAPIDisplayReleaseCallback; + + int major, minor; + int status = mLib->vaInitialize(mDisplay, &major, &minor); + if (status != VA_STATUS_SUCCESS) { ++ mLib->av_buffer_unref(&mVAAPIDeviceContext); + return false; + } + + vactx->display = mDisplay; + + if (mLib->av_hwdevice_ctx_init(mVAAPIDeviceContext) < 0) { ++ mLib->av_buffer_unref(&mVAAPIDeviceContext); + return false; + } + + mCodecContext->hw_device_ctx = mLib->av_buffer_ref(mVAAPIDeviceContext); + return true; + } + + MediaResult FFmpegVideoDecoder::InitVAAPIDecoder() { + -- cgit