summaryrefslogtreecommitdiffstats
path: root/ext/soundtouch/plugin.c
diff options
context:
space:
mode:
authorSebastian Dröge <slomo@circular-chaos.org>2008-01-27 05:56:04 +0000
committerSebastian Dröge <slomo@circular-chaos.org>2008-01-27 05:56:04 +0000
commit27fbdb97d126d2b29611778362e73b03dc75e472 (patch)
tree81bce3a08b70b404f65e758acd4720e2a530ecda /ext/soundtouch/plugin.c
parentfe38597aee1bda146e2ca9c1b1dbc8ec04dc4d50 (diff)
downloadgst-plugins-bad-27fbdb97d126d2b29611778362e73b03dc75e472.tar.gz
gst-plugins-bad-27fbdb97d126d2b29611778362e73b03dc75e472.tar.bz2
gst-plugins-bad-27fbdb97d126d2b29611778362e73b03dc75e472.zip
ext/soundtouch/: Add BPM detection plugin based on SoundTouch's libBPM.
Original commit message from CVS: * ext/soundtouch/Makefile.am: * ext/soundtouch/gstbpmdetect.cc: * ext/soundtouch/gstbpmdetect.hh: * ext/soundtouch/plugin.c: (plugin_init): Add BPM detection plugin based on SoundTouch's libBPM. * ext/soundtouch/gstpitch.cc: Allow sample rates until MAX instead of only 48kHz and remove the buffer-frames field from that caps. Clear the remaining samples completely when necessary to get into a clean state again.
Diffstat (limited to 'ext/soundtouch/plugin.c')
-rw-r--r--ext/soundtouch/plugin.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/ext/soundtouch/plugin.c b/ext/soundtouch/plugin.c
new file mode 100644
index 00000000..5e8cb156
--- /dev/null
+++ b/ext/soundtouch/plugin.c
@@ -0,0 +1,43 @@
+/* GStreamer soundtouch plugin
+ * Copyright (C) 2008 Sebastian Dröge <slomo@circular-chaos.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <gst/gst.h>
+#include <gst/controller/gstcontroller.h>
+#include "gstpitch.hh"
+#include "gstbpmdetect.hh"
+
+static gboolean
+plugin_init (GstPlugin * plugin)
+{
+ gst_controller_init (NULL, NULL);
+
+ return gst_element_register (plugin, "pitch", GST_RANK_NONE, GST_TYPE_PITCH)
+ && gst_element_register (plugin, "bpmdetect", GST_RANK_NONE,
+ GST_TYPE_BPM_DETECT);
+}
+
+GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
+ GST_VERSION_MINOR,
+ "soundtouch",
+ "Audio Pitch Controller & BPM Detection",
+ plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN)