Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 17 Apr 2020 19:20:56 +0000 (UTC)
From:      Jan Beich <jbeich@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-branches@freebsd.org
Subject:   svn commit: r531965 - in branches/2020Q2/www/firefox: . files
Message-ID:  <202004171920.03HJKu6X063309@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jbeich
Date: Fri Apr 17 19:20:56 2020
New Revision: 531965
URL: https://svnweb.freebsd.org/changeset/ports/531965

Log:
  MFH: r531964
  
  www/firefox: backport VAAPI fallback fix
  
  Approved by:	ports-secteam blanket

Added:
  branches/2020Q2/www/firefox/files/patch-bug1625431
     - copied unchanged from r531964, head/www/firefox/files/patch-bug1625431
  branches/2020Q2/www/firefox/files/patch-bug1628690
     - copied unchanged from r531964, head/www/firefox/files/patch-bug1628690
Modified:
  branches/2020Q2/www/firefox/Makefile
Directory Properties:
  branches/2020Q2/   (props changed)

Modified: branches/2020Q2/www/firefox/Makefile
==============================================================================
--- branches/2020Q2/www/firefox/Makefile	Fri Apr 17 19:20:17 2020	(r531964)
+++ branches/2020Q2/www/firefox/Makefile	Fri Apr 17 19:20:56 2020	(r531965)
@@ -3,7 +3,7 @@
 
 PORTNAME=	firefox
 DISTVERSION=	75.0
-PORTREVISION=	1
+PORTREVISION=	2
 PORTEPOCH=	1
 CATEGORIES=	www
 MASTER_SITES=	MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source \

Copied: branches/2020Q2/www/firefox/files/patch-bug1625431 (from r531964, head/www/firefox/files/patch-bug1625431)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/2020Q2/www/firefox/files/patch-bug1625431	Fri Apr 17 19:20:56 2020	(r531965, copy of r531964, head/www/firefox/files/patch-bug1625431)
@@ -0,0 +1,34 @@
+commit 9896149e475c
+Author: Martin Stransky <stransky@redhat.com>
+Date:   Tue Apr 7 18:35:01 2020 +0000
+
+    Bug 1625431 [Wayland] Enable VAAPI decoding only when hw compositing is enabled, r=jya
+    
+    Differential Revision: https://phabricator.services.mozilla.com/D68753
+    
+    --HG--
+    extra : moz-landing-system : lando
+---
+ dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp
+index 4c5b0108599bc..1e5694ead0854 100644
+--- dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp
++++ dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp
+@@ -172,6 +172,15 @@ bool FFmpegVideoDecoder<LIBAV_VER>::CreateVAAPIDeviceContext() {
+ MediaResult FFmpegVideoDecoder<LIBAV_VER>::InitVAAPIDecoder() {
+   FFMPEG_LOG("Initialising VA-API FFmpeg decoder");
+ 
++  auto layersBackend = mImageAllocator
++                           ? mImageAllocator->GetCompositorBackendType()
++                           : layers::LayersBackend::LAYERS_BASIC;
++  if (layersBackend != layers::LayersBackend::LAYERS_OPENGL &&
++      layersBackend != layers::LayersBackend::LAYERS_WR) {
++    FFMPEG_LOG("VA-API works with HW accelerated backend only!");
++    return NS_ERROR_NOT_AVAILABLE;
++  }
++
+   if (!mLib->IsVAAPIAvailable()) {
+     FFMPEG_LOG("libva library or symbols are missing.");
+     return NS_ERROR_NOT_AVAILABLE;

Copied: branches/2020Q2/www/firefox/files/patch-bug1628690 (from r531964, head/www/firefox/files/patch-bug1628690)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/2020Q2/www/firefox/files/patch-bug1628690	Fri Apr 17 19:20:56 2020	(r531965, copy of r531964, head/www/firefox/files/patch-bug1628690)
@@ -0,0 +1,82 @@
+commit 3a6824ecbffe
+Author: Martin Stransky <stransky@redhat.com>
+Date:   Thu Apr 16 13:49:37 2020 +0000
+
+    Bug 1628690 [Wayland][VA-API] Respect disabled HW decoding to allow fallback to SW decoding, r=jya
+    
+    Differential Revision: https://phabricator.services.mozilla.com/D71158
+---
+ dom/media/platforms/ffmpeg/FFmpegDecoderModule.h  |  4 +++-
+ dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp | 11 +++++++----
+ dom/media/platforms/ffmpeg/FFmpegVideoDecoder.h   |  4 +++-
+ 3 files changed, 13 insertions(+), 6 deletions(-)
+
+diff --git dom/media/platforms/ffmpeg/FFmpegDecoderModule.h dom/media/platforms/ffmpeg/FFmpegDecoderModule.h
+index 5a1d2c7a963af..563ee5267a08d 100644
+--- dom/media/platforms/ffmpeg/FFmpegDecoderModule.h
++++ dom/media/platforms/ffmpeg/FFmpegDecoderModule.h
+@@ -49,7 +49,9 @@ class FFmpegDecoderModule : public PlatformDecoderModule {
+     RefPtr<MediaDataDecoder> decoder = new FFmpegVideoDecoder<V>(
+         mLib, aParams.mTaskQueue, aParams.VideoConfig(),
+         aParams.mKnowsCompositor, aParams.mImageContainer,
+-        aParams.mOptions.contains(CreateDecoderParams::Option::LowLatency));
++        aParams.mOptions.contains(CreateDecoderParams::Option::LowLatency),
++        aParams.mOptions.contains(
++            CreateDecoderParams::Option::HardwareDecoderNotAllowed));
+     return decoder.forget();
+   }
+ 
+diff --git dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp
+index 1e5694ead0854..294097356c5b3 100644
+--- dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp
++++ dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp
+@@ -270,10 +270,11 @@ void FFmpegVideoDecoder<LIBAV_VER>::PtsCorrectionContext::Reset() {
+ FFmpegVideoDecoder<LIBAV_VER>::FFmpegVideoDecoder(
+     FFmpegLibWrapper* aLib, TaskQueue* aTaskQueue, const VideoInfo& aConfig,
+     KnowsCompositor* aAllocator, ImageContainer* aImageContainer,
+-    bool aLowLatency)
++    bool aLowLatency, bool aDisableHardwareDecoding)
+     : FFmpegDataDecoder(aLib, aTaskQueue, GetCodecId(aConfig.mMimeType)),
+ #ifdef MOZ_WAYLAND_USE_VAAPI
+       mVAAPIDeviceContext(nullptr),
++      mDisableHardwareDecoding(aDisableHardwareDecoding),
+ #endif
+       mImageAllocator(aAllocator),
+       mImageContainer(aImageContainer),
+@@ -289,9 +290,11 @@ RefPtr<MediaDataDecoder::InitPromise> FFmpegVideoDecoder<LIBAV_VER>::Init() {
+   MediaResult rv;
+ 
+ #ifdef MOZ_WAYLAND_USE_VAAPI
+-  rv = InitVAAPIDecoder();
+-  if (NS_SUCCEEDED(rv)) {
+-    return InitPromise::CreateAndResolve(TrackInfo::kVideoTrack, __func__);
++  if (!mDisableHardwareDecoding) {
++    rv = InitVAAPIDecoder();
++    if (NS_SUCCEEDED(rv)) {
++      return InitPromise::CreateAndResolve(TrackInfo::kVideoTrack, __func__);
++    }
+   }
+ #endif
+ 
+diff --git dom/media/platforms/ffmpeg/FFmpegVideoDecoder.h dom/media/platforms/ffmpeg/FFmpegVideoDecoder.h
+index 670cb6203dde0..7f14dfc8dbc11 100644
+--- dom/media/platforms/ffmpeg/FFmpegVideoDecoder.h
++++ dom/media/platforms/ffmpeg/FFmpegVideoDecoder.h
+@@ -48,7 +48,8 @@ class FFmpegVideoDecoder<LIBAV_VER>
+  public:
+   FFmpegVideoDecoder(FFmpegLibWrapper* aLib, TaskQueue* aTaskQueue,
+                      const VideoInfo& aConfig, KnowsCompositor* aAllocator,
+-                     ImageContainer* aImageContainer, bool aLowLatency);
++                     ImageContainer* aImageContainer, bool aLowLatency,
++                     bool aDisableHardwareDecoding);
+ 
+   RefPtr<InitPromise> Init() override;
+   void InitCodecContext() override;
+@@ -109,6 +110,7 @@ class FFmpegVideoDecoder<LIBAV_VER>
+ 
+ #ifdef MOZ_WAYLAND_USE_VAAPI
+   AVBufferRef* mVAAPIDeviceContext;
++  const bool mDisableHardwareDecoding;
+ #endif
+   RefPtr<KnowsCompositor> mImageAllocator;
+   RefPtr<ImageContainer> mImageContainer;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202004171920.03HJKu6X063309>