basesrc: use segment start if DTS for first buffer is unset
[platform/upstream/gstreamer.git] / gst-element-check.m4
index e608f19..9ad421f 100644 (file)
@@ -1,23 +1,33 @@
-dnl Perform a check for a GStreamer element using gst-inspect
-dnl Thomas Vander Stichele <thomas at apestaart dot org>
-dnl Last modification: 25/01/2005
+dnl Perform a check for a GStreamer element using gst-inspect-x.y
+dnl
+dnl GST_ELEMENT_CHECK(ELEMENT-NAME, MIN-VERSION, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND)
+dnl
+dnl ELEMENT-NAME        : element factory name (mandatory)
+dnl MIN-VERSION         : minimum version required, e.g. 1.0 or 1.0.5 (mandatory)
+dnl ACTION-IF_FOUND     : action if element exists and is of the desired version
+dnl ACTION-IF-NOT-FOUND : action if element does not exist or is too old
+dnl
+dnl gstapiversion=`echo $2 | tr '.' '\n' | head -n 2 | tr '\n' '.' | sed 's/\.$//'`
 
-dnl AM_GST_ELEMENT_CHECK(ELEMENT-NAME, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND)
-
-AC_DEFUN([AM_GST_ELEMENT_CHECK],
+AC_DEFUN([GST_ELEMENT_CHECK],
 [
-  if test "x$GST_INSPECT" == "x"; then
-    AC_CHECK_PROG(GST_INSPECT, gst-inspect, gst-inspect, [])
-  fi
+  AC_REQUIRE([PKG_PROG_PKG_CONFIG])
 
-  if test "x$GST_INSPECT" != "x"; then
-    AC_MSG_CHECKING(GStreamer element $1)
-    if [ $GST_INSPECT $1 > /dev/null 2> /dev/null ]; then
-      AC_MSG_RESULT(found.)
-      $2
-    else
-      AC_MSG_RESULT(not found.)
+  gstapiversion=`echo "$2" | while IFS=. read a b; do echo "$a.0"; done`
+  gsttoolsdir=`$PKG_CONFIG --variable=toolsdir gstreamer-$gstapiversion`
+  if test "x$gsttoolsdir" != "x"; then
+    gstinspect="$gsttoolsdir/gst-inspect-$gstapiversion"
+    AC_MSG_CHECKING(GStreamer $gstapiversion element $1 >= $2)
+    if [ $gstinspect --exists --atleast-version=$2 $1 ]; then
+      AC_MSG_RESULT([found])
       $3
+    else
+      if [ $gstinspect --exists $1 ]; then
+        AC_MSG_RESULT([found, but too old])
+      else
+        AC_MSG_RESULT([not found])
+      fi
+      $4
     fi
   fi
 ])