diff --git a/configure.ac b/configure.ac index 313996111a904e71f2eb9c7049ea055dcc9333c9..cbe66f4aa7109bb03353b331a586c90bcf1cfd60 100644 --- a/configure.ac +++ b/configure.ac @@ -3528,6 +3528,13 @@ AC_CHECK_HEADER([linux/fb.h], [ dnl dnl Direct Rendering Manager (DRM) plugins dnl +AC_CHECK_HEADER([drm/drm_mode.h], [ + have_drm="yes" +], [ + have_drm="no" +]) +AM_CONDITIONAL([HAVE_DRM], [test "$have_drm" = "yes"]) + PKG_HAVE_WITH_MODULES([LIBDRM], [libdrm >= 2.4.83], [Linux kernel mode setting output], [auto]) dnl diff --git a/modules/video_output/Makefile.am b/modules/video_output/Makefile.am index 2c43e8ffe60b79bb744006b3fb4d3332252459cd..c52a4098fc6f8a2fe2dfd4ee672abecfc1722389 100644 --- a/modules/video_output/Makefile.am +++ b/modules/video_output/Makefile.am @@ -324,8 +324,12 @@ libdrm_display_plugin_la_SOURCES = \ video_output/drm/buffers.c \ video_output/drm/planes.c \ video_output/drm/display.c -libdrm_display_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) $(LIBDRM_CFLAGS) +libdrm_display_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) +if HAVE_DRM +vout_LTLIBRARIES += libdrm_display_plugin.la +endif if HAVE_LIBDRM +libdrm_display_plugin_la_CPPFLAGS += $(LIBDRM_CFLAGS) -DHAVE_LIBDRM vout_LTLIBRARIES += libkms_plugin.la libdrm_display_plugin.la endif diff --git a/modules/video_output/drm/buffers.c b/modules/video_output/drm/buffers.c index 810474811a5651ce092995c5f7f7d92360c78a17..dd2bab46e550dd5f1d923deaa381bef9bdce3e01 100644 --- a/modules/video_output/drm/buffers.c +++ b/modules/video_output/drm/buffers.c @@ -27,8 +27,13 @@ #include <assert.h> #include <stdlib.h> #include <sys/mman.h> -#include <drm_fourcc.h> -#include <drm_mode.h> +#ifndef HAVE_LIBDRM +# include <drm/drm_fourcc.h> +# include <drm/drm_mode.h> +#else +# include <drm_fourcc.h> +# include <drm_mode.h> +#endif #include <vlc_common.h> #include <vlc_picture.h> #include "vlc_drm.h" diff --git a/modules/video_output/drm/display.c b/modules/video_output/drm/display.c index c8b056131ca786684c8b2f9094237d09398fa144..c331b450ce7e2f20fe3cbe5c3748824971ca0b6b 100644 --- a/modules/video_output/drm/display.c +++ b/modules/video_output/drm/display.c @@ -33,7 +33,11 @@ # include "config.h" #endif -#include <drm_mode.h> +#ifndef HAVE_LIBDRM +# include <drm/drm_mode.h> +#else +# include <drm_mode.h> +#endif #include <vlc_common.h> #include <vlc_plugin.h> diff --git a/modules/video_output/drm/fourcc.c b/modules/video_output/drm/fourcc.c index 08431f65ca5c7fc6210ecc2b01cf7e9346fc96e7..4d353f71d1135c25721251a2a52b542c45a230ac 100644 --- a/modules/video_output/drm/fourcc.c +++ b/modules/video_output/drm/fourcc.c @@ -25,7 +25,11 @@ #endif #include <stdint.h> -#include <drm_fourcc.h> +#ifndef HAVE_LIBDRM +# include <drm/drm_fourcc.h> +#else +# include <drm_fourcc.h> +#endif #include <vlc_common.h> #include <vlc_es.h> #include "vlc_drm.h" diff --git a/modules/video_output/drm/planes.c b/modules/video_output/drm/planes.c index 7ac06b2ca35ac1e0934afdfc1333eaae926cb4f7..d96232a184bba9016b00e9cb1c14b6186acfffdd 100644 --- a/modules/video_output/drm/planes.c +++ b/modules/video_output/drm/planes.c @@ -28,7 +28,11 @@ #include <errno.h> #include <stdlib.h> #include <string.h> -#include <drm_mode.h> +#ifndef HAVE_LIBDRM +# include <drm/drm_mode.h> +#else +# include <drm_mode.h> +#endif #include <vlc_common.h> #include <vlc_fourcc.h> #include "vlc_drm.h"