From 68936c7fb864440bb4d2ab737a651888ac7c253a Mon Sep 17 00:00:00 2001 From: Eric Ruei Date: Fri, 17 Mar 2017 10:42:32 -0400 Subject: [PATCH 2/3] kmssink: remove DCE dependencies Replace DCE related API calls to libdrm and omapdrm API calls to decouple DCE from kmssink Signed-off-by: Eric Ruei --- configure.ac | 1 - sys/kms/Makefile.am | 2 -- sys/kms/gstkmssink.c | 17 +++++++++++++---- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/configure.ac b/configure.ac index f93d52d..a6f93a5 100644 --- a/configure.ac +++ b/configure.ac @@ -2321,7 +2321,6 @@ dnl *** kms *** translit(dnm, m, l) AM_CONDITIONAL(USE_KMS, true) AG_GST_CHECK_FEATURE(KMS, [kmssink], kms, [ PKG_CHECK_MODULES([DRM], [libdrm libdrm_omap], HAVE_KMS=yes, HAVE_KMS=no) -PKG_CHECK_MODULES(LIBDCE, [libdce >= 1.0.0], HAVE_KMS=yes, HAVE_KMS=no) AC_SUBST(DRM_CFLAGS) AC_SUBST(DRM_LIBS) ]) diff --git a/sys/kms/Makefile.am b/sys/kms/Makefile.am index 6d56073..cc7353e 100644 --- a/sys/kms/Makefile.am +++ b/sys/kms/Makefile.am @@ -9,7 +9,6 @@ libgstkmssink_la_CFLAGS = \ $(GST_PLUGINS_BAD_CFLAGS) \ $(GST_PLUGINS_BASE_CFLAGS) \ $(GST_BASE_CFLAGS) \ - $(LIBDCE_CFLAGS) \ $(GST_CFLAGS) \ $(DRM_CFLAGS) @@ -17,7 +16,6 @@ libgstkmssink_la_LIBADD = \ $(GST_PLUGINS_BASE_LIBS) \ $(GST_BASE_LIBS) \ $(GST_LIBS) \ - $(LIBDCE_LIBS) \ $(DRM_LIBS) \ -lgstvideo-$(GST_API_VERSION) \ $(top_builddir)/gst-libs/gst/drm/libgstdrm-$(GST_API_VERSION).la diff --git a/sys/kms/gstkmssink.c b/sys/kms/gstkmssink.c index 17e6407..9795bdf 100644 --- a/sys/kms/gstkmssink.c +++ b/sys/kms/gstkmssink.c @@ -31,7 +31,6 @@ #include "gstkmssink.h" #include "gstkmsbufferpriv.h" -#include #include #include #include @@ -516,13 +515,18 @@ gst_kms_sink_start (GstBaseSink * bsink) sink = GST_KMS_SINK (bsink); - drm_dev = dce_init (); + drm_fd = open("/dev/dri/card0", O_RDWR | O_CLOEXEC); + if(drm_fd == NULL) + goto drm_failed; + else { + drm_dev = omap_device_new(drm_fd); + } + if (drm_dev == NULL) goto device_failed; else { + sink->fd = drm_fd; sink->dev = drm_dev; - sink->fd = dce_get_fd (); - drm_fd = dce_get_fd (); } sink->resources = drmModeGetResources (sink->fd); @@ -539,6 +543,11 @@ fail: gst_kms_sink_reset (sink); return FALSE; +drm_failed: + GST_ELEMENT_ERROR (sink, RESOURCE, FAILED, + (NULL), ("drmOpen failed")); + goto fail; + device_failed: GST_ELEMENT_ERROR (sink, RESOURCE, FAILED, (NULL), ("omap_device_new failed")); -- 1.9.1