Date: Fri, 17 Apr 2020 19:20:18 +0000 (UTC) From: Jan Beich <jbeich@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r531964 - in head/www/firefox: . files Message-ID: <202004171920.03HJKIKG062459@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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@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@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.03HJKIKG062459>