diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/va/meson.build b/subprojects/gst-plugins-bad/gst-libs/gst/va/meson.build
index b9a8ae7066..d83b9e3f3f 100644
--- a/subprojects/gst-plugins-bad/gst-libs/gst/va/meson.build
+++ b/subprojects/gst-plugins-bad/gst-libs/gst/va/meson.build
@@ -81,10 +81,8 @@ if host_system == 'linux'
   endif
   platform_deps += [libva_drm_dep]
 
-  libdrm_dep = dependency('libdrm', version: '>=2.4', required: get_option('drm'))
   if libdrm_dep.found()
     platform_deps += [libdrm_dep]
-    extra_args += ['-DHAVE_LIBDRM']
   endif
 
   va_sources += va_linux_sources
diff --git a/subprojects/gst-plugins-bad/meson.build b/subprojects/gst-plugins-bad/meson.build
index 3162581434..3992836333 100644
--- a/subprojects/gst-plugins-bad/meson.build
+++ b/subprojects/gst-plugins-bad/meson.build
@@ -398,6 +398,17 @@ if x11_dep.found()
   cdata.set('HAVE_X11', 1)
 endif
 
+# Optional dep of msdk and va
+if host_system not in ['darwin', 'ios', 'android', 'windows']
+  libdrm_dep = dependency('libdrm', version : '>=2.4.50',
+    required : get_option('drm').enabled() or get_option('msdk').enabled(),
+  )
+  cdata.set('HAVE_LIBDRM', libdrm_dep.found())
+else
+  libdrm_dep = dependency('', required: false)
+endif
+
+
 #
 # Solaris and Illumos distros split a lot of networking-related code
 # into '-lsocket -lnsl'.  Anything that calls socketpair(), getifaddr(),
diff --git a/subprojects/gst-plugins-bad/sys/msdk/gstmsdkallocator_libva.c b/subprojects/gst-plugins-bad/sys/msdk/gstmsdkallocator_libva.c
index e92719af76..c20b8c068d 100644
--- a/subprojects/gst-plugins-bad/sys/msdk/gstmsdkallocator_libva.c
+++ b/subprojects/gst-plugins-bad/sys/msdk/gstmsdkallocator_libva.c
@@ -32,7 +32,7 @@
 
 #include <va/va.h>
 #include <va/va_drmcommon.h>
-#include <libdrm/drm_fourcc.h>
+#include <drm_fourcc.h>
 #include <unistd.h>
 #include "gstmsdkallocator.h"
 #include "gstmsdkallocator_libva.h"
diff --git a/subprojects/gst-plugins-bad/sys/msdk/gstmsdkcaps.c b/subprojects/gst-plugins-bad/sys/msdk/gstmsdkcaps.c
index 80c353bf6d..a10f43eba5 100644
--- a/subprojects/gst-plugins-bad/sys/msdk/gstmsdkcaps.c
+++ b/subprojects/gst-plugins-bad/sys/msdk/gstmsdkcaps.c
@@ -32,7 +32,7 @@
 #include "gstmsdkcaps.h"
 
 #ifndef _WIN32
-#include <libdrm/drm_fourcc.h>
+#include <drm_fourcc.h>
 #include <gst/video/video-info-dma.h>
 #include "gstmsdkallocator_libva.h"
 #include <gst/va/gstvavideoformat.h>
diff --git a/subprojects/gst-plugins-bad/sys/msdk/gstmsdkdec.c b/subprojects/gst-plugins-bad/sys/msdk/gstmsdkdec.c
index c7304e2e7a..11122914c8 100644
--- a/subprojects/gst-plugins-bad/sys/msdk/gstmsdkdec.c
+++ b/subprojects/gst-plugins-bad/sys/msdk/gstmsdkdec.c
@@ -41,7 +41,7 @@
 #include "gstmsdkcaps.h"
 
 #ifndef _WIN32
-#include <libdrm/drm_fourcc.h>
+#include <drm_fourcc.h>
 #include <gst/va/gstvaallocator.h>
 #include <gst/va/gstvavideoformat.h>
 #else
diff --git a/subprojects/gst-plugins-bad/sys/msdk/gstmsdkenc.c b/subprojects/gst-plugins-bad/sys/msdk/gstmsdkenc.c
index f000aaf12c..76b393d265 100644
--- a/subprojects/gst-plugins-bad/sys/msdk/gstmsdkenc.c
+++ b/subprojects/gst-plugins-bad/sys/msdk/gstmsdkenc.c
@@ -51,7 +51,7 @@
 #include "gstmsdkcaps.h"
 
 #ifndef _WIN32
-#include <libdrm/drm_fourcc.h>
+#include <drm_fourcc.h>
 #include "gstmsdkallocator_libva.h"
 #include <gst/va/gstvaallocator.h>
 #else
diff --git a/subprojects/gst-plugins-bad/sys/msdk/gstmsdkvpp.c b/subprojects/gst-plugins-bad/sys/msdk/gstmsdkvpp.c
index b25178d134..8eebdbf531 100644
--- a/subprojects/gst-plugins-bad/sys/msdk/gstmsdkvpp.c
+++ b/subprojects/gst-plugins-bad/sys/msdk/gstmsdkvpp.c
@@ -60,7 +60,7 @@
 #include "gstmsdkallocator.h"
 
 #ifndef _WIN32
-#include <libdrm/drm_fourcc.h>
+#include <drm_fourcc.h>
 #include "gstmsdkallocator_libva.h"
 #include <gst/va/gstvaallocator.h>
 #include <gst/va/gstvavideoformat.h>
diff --git a/subprojects/gst-plugins-bad/sys/msdk/gstmsdkvpputil.c b/subprojects/gst-plugins-bad/sys/msdk/gstmsdkvpputil.c
index 8324bb18f1..bbd14790fe 100644
--- a/subprojects/gst-plugins-bad/sys/msdk/gstmsdkvpputil.c
+++ b/subprojects/gst-plugins-bad/sys/msdk/gstmsdkvpputil.c
@@ -30,7 +30,7 @@
 #include "gstmsdkcaps.h"
 
 #ifndef _WIN32
-#include <libdrm/drm_fourcc.h>
+#include <drm_fourcc.h>
 #include <gst/va/gstvavideoformat.h>
 #else
 #include <gst/d3d11/gstd3d11.h>
diff --git a/subprojects/gst-plugins-bad/sys/msdk/meson.build b/subprojects/gst-plugins-bad/sys/msdk/meson.build
index 51bf953a0e..b73370cda1 100644
--- a/subprojects/gst-plugins-bad/sys/msdk/meson.build
+++ b/subprojects/gst-plugins-bad/sys/msdk/meson.build
@@ -184,7 +184,6 @@ if host_machine.system() == 'windows'
 else
   libdl_dep = cc.find_library('dl', required: get_option('msdk'))
   libgudev_dep = dependency('gudev-1.0', required: get_option('msdk'), allow_fallback: true)
-  libdrm_dep = dependency('libdrm', required: get_option('msdk'))
   msdk_deps = declare_dependency(dependencies: [gstva_dep, libdl_dep, libgudev_dep, libdrm_dep])
   msdk_deps_found = gstva_dep.found() and libdl_dep.found() and libgudev_dep.found() and libdrm_dep.found()
 endif