queue2: avoid calculating fill levels multiple times
[platform/upstream/gstreamer.git] / gst-element-check.m4
1 dnl Perform a check for a GStreamer element using gst-inspect-x.y
2 dnl
3 dnl GST_ELEMENT_CHECK(ELEMENT-NAME, MIN-VERSION, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND)
4 dnl
5 dnl ELEMENT-NAME        : element factory name (mandatory)
6 dnl MIN-VERSION         : minimum version required, e.g. 1.0 or 1.0.5 (mandatory)
7 dnl ACTION-IF_FOUND     : action if element exists and is of the desired version
8 dnl ACTION-IF-NOT-FOUND : action if element does not exist or is too old
9 dnl
10 dnl gstapiversion=`echo $2 | tr '.' '\n' | head -n 2 | tr '\n' '.' | sed 's/\.$//'`
11
12 AC_DEFUN([GST_ELEMENT_CHECK],
13 [
14   AC_REQUIRE([PKG_PROG_PKG_CONFIG])
15
16   gstapiversion=`echo "$2" | while IFS=. read a b; do echo "$a.0"; done`
17   gsttoolsdir=`$PKG_CONFIG --variable=toolsdir gstreamer-$gstapiversion`
18   if test "x$gsttoolsdir" != "x"; then
19     gstinspect="$gsttoolsdir/gst-inspect-$gstapiversion"
20     AC_MSG_CHECKING(GStreamer $gstapiversion element $1 >= $2)
21     if [ $gstinspect --exists --atleast-version=$2 $1 ]; then
22       AC_MSG_RESULT([found])
23       $3
24     else
25       if [ $gstinspect --exists $1 ]; then
26         AC_MSG_RESULT([found, but too old])
27       else
28         AC_MSG_RESULT([not found])
29       fi
30       $4
31     fi
32   fi
33 ])