element: Enforce that elements created by gst_element_factory_create/make() are floating
[platform/upstream/gstreamer.git] / gst / gstversion.h.in
index 5424073..a74c2d1 100644 (file)
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
+
+#ifndef __GST_VERSION_H__
+#define __GST_VERSION_H__
+
+#include <glib.h>
+
 /**
  * SECTION:gstversion
  * @short_description: GStreamer version macros.
  * Use the GST_VERSION_* macros e.g. when defining own plugins. The GStreamer
  * runtime checks if these plugin and core version match and refuses to use a
  * plugin compiled against a different version of GStreamer.
- * You can also use the macros to keep the GStreamer version information in your
- * application.
+ * You can also use the macros to keep the GStreamer version information in
+ * your application.
  *
- * Use the gst_version() function if you want to know which version of 
+ * Use the gst_version() function if you want to know which version of
  * GStreamer you are currently linked against.
  *
  * The version macros get defined by including "gst/gst.h".
  */
 
-#ifndef __GST_VERSION_H__
-#define __GST_VERSION_H__
-
 G_BEGIN_DECLS
 
 /**
@@ -58,8 +61,30 @@ G_BEGIN_DECLS
  * The micro version of GStreamer at compile time:
  */
 #define GST_VERSION_MICRO (@GST_VERSION_MICRO@)
+/**
+ * GST_VERSION_NANO:
+ *
+ * The nano version of GStreamer at compile time:
+ * Actual releases have 0, GIT versions have 1, prerelease versions have 2-...
+ */
+#define GST_VERSION_NANO (@GST_VERSION_NANO@)
 
-void    gst_version     (guint *major, guint *minor, guint *micro);
+/**
+ * GST_CHECK_VERSION:
+ * @major: a number indicating the major version
+ * @minor: a number indicating the minor version
+ * @micro: a number indicating the micro version
+ *
+ * Check whether a GStreamer version equal to or greater than
+ * major.minor.micro is present.
+ */
+#define        GST_CHECK_VERSION(major,minor,micro)    \
+    (GST_VERSION_MAJOR > (major) || \
+     (GST_VERSION_MAJOR == (major) && GST_VERSION_MINOR > (minor)) || \
+     (GST_VERSION_MAJOR == (major) && GST_VERSION_MINOR == (minor) && \
+      GST_VERSION_MICRO >= (micro)) || \
+     (GST_VERSION_MAJOR == (major) && GST_VERSION_MINOR == (minor) && \
+      GST_VERSION_MICRO + 1 == (micro) && GST_VERSION_NANO > 0))
 
 G_END_DECLS