diff options
Diffstat (limited to 'mozilla-1628690.patch')
-rw-r--r-- | mozilla-1628690.patch | 67 |
1 files changed, 67 insertions, 0 deletions
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<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 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<InitPromise> Init() override; + void InitCodecContext() override; +@@ -109,6 +110,7 @@ + + #ifdef MOZ_WAYLAND_USE_VAAPI + AVBufferRef* mVAAPIDeviceContext; ++ const bool mDisableHardwareDecoding; + #endif + RefPtr<KnowsCompositor> mImageAllocator; + RefPtr<ImageContainer> 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<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 @@ + 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 + + |