summaryrefslogtreecommitdiffstats
path: root/dom/media/platforms/wmf/MFMediaEngineDecoderModule.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'dom/media/platforms/wmf/MFMediaEngineDecoderModule.cpp')
-rw-r--r--dom/media/platforms/wmf/MFMediaEngineDecoderModule.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/dom/media/platforms/wmf/MFMediaEngineDecoderModule.cpp b/dom/media/platforms/wmf/MFMediaEngineDecoderModule.cpp
index 5b99fb0f2c..e291ab6a54 100644
--- a/dom/media/platforms/wmf/MFMediaEngineDecoderModule.cpp
+++ b/dom/media/platforms/wmf/MFMediaEngineDecoderModule.cpp
@@ -6,6 +6,7 @@
#include "MFTDecoder.h"
#include "VideoUtils.h"
+#include "mozilla/gfx/gfxVars.h"
#include "mozilla/MFMediaEngineParent.h"
#include "mozilla/MFMediaEngineUtils.h"
#include "mozilla/RemoteDecoderManagerChild.h"
@@ -99,6 +100,11 @@ media::DecodeSupportSet MFMediaEngineDecoderModule::SupportInternal(
if (!StaticPrefs::media_wmf_media_engine_enabled()) {
return media::DecodeSupportSet{};
}
+ // Only support hardware decoding.
+ if (!gfx::gfxVars::CanUseHardwareVideoDecoding() &&
+ !StaticPrefs::media_wmf_media_engine_bypass_gfx_blocklist()) {
+ return media::DecodeSupportSet{};
+ }
bool supports = false;
WMFStreamType type = GetStreamTypeFromMimeType(aParams.MimeType());
if (type != WMFStreamType::Unknown) {
@@ -107,13 +113,11 @@ media::DecodeSupportSet MFMediaEngineDecoderModule::SupportInternal(
MOZ_LOG(sPDMLog, LogLevel::Debug,
("MFMediaEngine decoder %s requested type '%s'",
supports ? "supports" : "rejects", aParams.MimeType().get()));
- // We only support HEVC hardware decoding.
- if (supports && type == WMFStreamType::HEVC) {
- return media::DecodeSupport::HardwareDecode;
+ if (!supports) {
+ return media::DecodeSupportSet{};
}
- // TODO : find a way to report accurate result.
- return supports ? media::DecodeSupport::SoftwareDecode
- : media::DecodeSupportSet{};
+ return StreamTypeIsVideo(type) ? media::DecodeSupport::HardwareDecode
+ : media::DecodeSupport::SoftwareDecode;
}
static bool CreateMFTDecoderOnMTA(const WMFStreamType& aType) {