From cb1655cd55c2837ce98fd7ec62e577c833cfeef9 Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Tue, 5 May 2020 14:01:50 +0200 Subject: Added va-api patches --- mozilla-1628690.patch | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 mozilla-1628690.patch (limited to 'mozilla-1628690.patch') diff --git a/mozilla-1628690.patch b/mozilla-1628690.patch new file mode 100644 index 0000000..3a1757d --- /dev/null +++ b/mozilla-1628690.patch @@ -0,0 +1,67 @@ +diff --git a/dom/media/platforms/ffmpeg/FFmpegDecoderModule.h b/dom/media/platforms/ffmpeg/FFmpegDecoderModule.h +--- a/dom/media/platforms/ffmpeg/FFmpegDecoderModule.h ++++ b/dom/media/platforms/ffmpeg/FFmpegDecoderModule.h +@@ -49,7 +49,9 @@ + RefPtr decoder = new FFmpegVideoDecoder( + 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 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 +@@ -48,7 +48,8 @@ + public: + FFmpegVideoDecoder(FFmpegLibWrapper* aLib, TaskQueue* aTaskQueue, + const VideoInfo& aConfig, KnowsCompositor* aAllocator, +- ImageContainer* aImageContainer, bool aLowLatency); ++ ImageContainer* aImageContainer, bool aLowLatency, ++ bool aDisableHardwareDecoding); + + RefPtr Init() override; + void InitCodecContext() override; +@@ -109,6 +110,7 @@ + + #ifdef MOZ_WAYLAND_USE_VAAPI + AVBufferRef* mVAAPIDeviceContext; ++ const bool mDisableHardwareDecoding; + #endif + RefPtr mImageAllocator; + RefPtr mImageContainer; +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 +@@ -270,10 +270,11 @@ + FFmpegVideoDecoder::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 @@ + 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 + + -- cgit