91d1df5
diff --git a/dom/media/platforms/PDMFactory.cpp b/dom/media/platforms/PDMFactory.cpp
91d1df5
--- a/dom/media/platforms/PDMFactory.cpp
91d1df5
+++ b/dom/media/platforms/PDMFactory.cpp
91d1df5
@@ -21,16 +21,17 @@
91d1df5
 #include "mozilla/GpuDecoderModule.h"
91d1df5
 #include "mozilla/RemoteDecoderModule.h"
91d1df5
 #include "mozilla/SharedThreadPool.h"
91d1df5
 #include "mozilla/StaticPrefs_media.h"
91d1df5
 #include "mozilla/StaticPtr.h"
91d1df5
 #include "mozilla/SyncRunnable.h"
91d1df5
 #include "mozilla/TaskQueue.h"
91d1df5
 #include "mozilla/gfx/gfxVars.h"
91d1df5
+#include "gfxPlatformGtk.h"
91d1df5
 
91d1df5
 #ifdef XP_WIN
91d1df5
 #  include "WMFDecoderModule.h"
91d1df5
 #  include "mozilla/WindowsVersion.h"
91d1df5
 #endif
91d1df5
 #ifdef MOZ_FFVPX
91d1df5
 #  include "FFVPXRuntimeLinker.h"
91d1df5
 #endif
91d1df5
@@ -362,17 +363,18 @@ void PDMFactory::CreatePDMs() {
91d1df5
 #endif
91d1df5
 #ifdef MOZ_OMX
91d1df5
   if (StaticPrefs::media_omx_enabled()) {
91d1df5
     m = OmxDecoderModule::Create();
91d1df5
     StartupPDM(m);
91d1df5
   }
91d1df5
 #endif
91d1df5
 #ifdef MOZ_FFVPX
91d1df5
-  if (StaticPrefs::media_ffvpx_enabled()) {
91d1df5
+  if (StaticPrefs::media_ffvpx_enabled() &&
91d1df5
+      !gfxPlatformGtk::GetPlatform()->UseWaylandHardwareVideoDecoding()) {
91d1df5
     m = FFVPXRuntimeLinker::CreateDecoderModule();
91d1df5
     StartupPDM(m);
91d1df5
   }
91d1df5
 #endif
91d1df5
 #ifdef MOZ_FFMPEG
91d1df5
   if (StaticPrefs::media_ffmpeg_enabled()) {
91d1df5
     m = FFmpegRuntimeLinker::CreateDecoderModule();
91d1df5
     mFFmpegFailedToLoad = !StartupPDM(m);