svn commit: r531964 - in head/www/firefox: . files
Jan Beich
jbeich at FreeBSD.org
Fri Apr 17 19:20:18 UTC 2020
Author: jbeich
Date: Fri Apr 17 19:20:17 2020
New Revision: 531964
URL: https://svnweb.freebsd.org/changeset/ports/531964
Log:
www/firefox: backport VAAPI fallback fix
Added:
head/www/firefox/files/patch-bug1625431 (contents, props changed)
head/www/firefox/files/patch-bug1628690 (contents, props changed)
Modified:
head/www/firefox/Makefile (contents, props changed)
Modified: head/www/firefox/Makefile
==============================================================================
--- head/www/firefox/Makefile Fri Apr 17 19:16:52 2020 (r531963)
+++ head/www/firefox/Makefile Fri Apr 17 19:20:17 2020 (r531964)
@@ -3,7 +3,7 @@
PORTNAME= firefox
DISTVERSION= 75.0
-PORTREVISION= 1
+PORTREVISION= 2
PORTEPOCH= 1
CATEGORIES= www
MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source \
Added: head/www/firefox/files/patch-bug1625431
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/www/firefox/files/patch-bug1625431 Fri Apr 17 19:20:17 2020 (r531964)
@@ -0,0 +1,34 @@
+commit 9896149e475c
+Author: Martin Stransky <stransky at 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;
Added: head/www/firefox/files/patch-bug1628690
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/www/firefox/files/patch-bug1628690 Fri Apr 17 19:20:17 2020 (r531964)
@@ -0,0 +1,82 @@
+commit 3a6824ecbffe
+Author: Martin Stransky <stransky at 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;
More information about the svn-ports-head
mailing list