summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Dröge <slomo@circular-chaos.org>2007-08-13 13:50:39 +0000
committerSebastian Dröge <slomo@circular-chaos.org>2007-08-13 13:50:39 +0000
commitf944834a11bf9a42d24722dd35ba54179ba0ad9c (patch)
tree3fdc3b392e2a43ee1779ae5ca44fca5034976682
parent55f37f58a78e2a558d9ac1ebf76b17ece8ab8d1e (diff)
Add docs for lpwsinc and bpwsinc and integrate them into the build system. While doing that also update all other doc...
Original commit message from CVS: * docs/plugins/Makefile.am: * docs/plugins/gst-plugins-bad-plugins-docs.sgml: * docs/plugins/gst-plugins-bad-plugins-sections.txt: * docs/plugins/gst-plugins-bad-plugins.args: * docs/plugins/gst-plugins-bad-plugins.signals: * docs/plugins/inspect/plugin-bz2.xml: * docs/plugins/inspect/plugin-cdxaparse.xml: * docs/plugins/inspect/plugin-dtsdec.xml: * docs/plugins/inspect/plugin-faac.xml: * docs/plugins/inspect/plugin-faad.xml: * docs/plugins/inspect/plugin-filter.xml: * docs/plugins/inspect/plugin-freeze.xml: * docs/plugins/inspect/plugin-gsm.xml: * docs/plugins/inspect/plugin-gstrtpmanager.xml: * docs/plugins/inspect/plugin-h264parse.xml: * docs/plugins/inspect/plugin-modplug.xml: * docs/plugins/inspect/plugin-mpeg2enc.xml: * docs/plugins/inspect/plugin-musepack.xml: * docs/plugins/inspect/plugin-musicbrainz.xml: * docs/plugins/inspect/plugin-nsfdec.xml: * docs/plugins/inspect/plugin-replaygain.xml: * docs/plugins/inspect/plugin-soundtouch.xml: * docs/plugins/inspect/plugin-spcdec.xml: * docs/plugins/inspect/plugin-spectrum.xml: * docs/plugins/inspect/plugin-speed.xml: * docs/plugins/inspect/plugin-tta.xml: * docs/plugins/inspect/plugin-videosignal.xml: * docs/plugins/inspect/plugin-xingheader.xml: * docs/plugins/inspect/plugin-xvid.xml: * gst/filter/gstbpwsinc.c: * gst/filter/gstbpwsinc.h: * gst/filter/gstlpwsinc.c: * gst/filter/gstlpwsinc.h: Add docs for lpwsinc and bpwsinc and integrate them into the build system. While doing that also update all other docs via make update in docs/plugins.
-rw-r--r--gst/audiofx/audiowsincband.c28
-rw-r--r--gst/audiofx/audiowsincband.h3
-rw-r--r--gst/audiofx/audiowsinclimit.c26
-rw-r--r--gst/audiofx/audiowsinclimit.h3
4 files changed, 57 insertions, 3 deletions
diff --git a/gst/audiofx/audiowsincband.c b/gst/audiofx/audiowsincband.c
index d9690b6c..f86de8d0 100644
--- a/gst/audiofx/audiowsincband.c
+++ b/gst/audiofx/audiowsincband.c
@@ -31,6 +31,30 @@
* is probably the bottleneck
* - Maybe allow cascading the filter to get a better stopband attenuation.
* Can be done by convolving a filter kernel with itself
+ * - Drop the first kernel_length/2 samples and append the same number of
+ * samples on EOS as the first few samples are essentialy zero.
+ */
+
+/**
+ * SECTION:element-bpwsinc
+ * @short_description: Windowed Sinc band pass and band reject filter
+ *
+ * <refsect2>
+ * <para>
+ * Attenuates all frequencies outside (bandpass) or inside (bandreject) of a frequency
+ * band. The length parameter controls the rolloff, the window parameter
+ * controls rolloff and stopband attenuation. The Hamming window provides a faster rolloff but a bit
+ * worse stopband attenuation, the other way around for the Blackman window.
+ * </para>
+ * <title>Example launch line</title>
+ * <para>
+ * <programlisting>
+ * gst-launch audiotestsrc freq=1500 ! audioconvert ! bpwsinc mode=band-pass lower-frequency=3000 upper-frequency=10000 length=501 window=blackman ! audioconvert ! alsasink
+ * gst-launch filesrc location="melo1.ogg" ! oggdemux ! vorbisdec ! audioconvert ! bpwsinc mode=band-reject lower-frequency=59 upper-frequency=61 length=10001 window=hamming ! audioconvert ! alsasink
+ * gst-launch audiotestsrc wave=white-noise ! audioconvert ! bpwsinc mode=band-pass lower-frequency=1000 upper-frequency=2000 length=31 ! audioconvert ! alsasink
+ * </programlisting>
+ * </para>
+ * </refsect2>
*/
#ifdef HAVE_CONFIG_H
@@ -49,7 +73,7 @@
GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
static const GstElementDetails bpwsinc_details =
-GST_ELEMENT_DETAILS ("Band-pass Windowed sinc filter",
+GST_ELEMENT_DETAILS ("Band-pass and Band-reject Windowed sinc filter",
"Filter/Effect/Audio",
"Band-pass Windowed sinc filter",
"Thomas <thomas@apestaart.org>, "
@@ -134,7 +158,7 @@ gst_bpwsinc_window_get_type (void)
" channels = (int) [ 1, MAX ] "
#define DEBUG_INIT(bla) \
- GST_DEBUG_CATEGORY_INIT (gst_bpwsinc_debug, "bpwsinc", 0, "Band-pass Windowed sinc filter plugin");
+ GST_DEBUG_CATEGORY_INIT (gst_bpwsinc_debug, "bpwsinc", 0, "Band-pass and Band-reject Windowed sinc filter plugin");
GST_BOILERPLATE_FULL (GstBPWSinc, gst_bpwsinc, GstAudioFilter,
GST_TYPE_AUDIO_FILTER, DEBUG_INIT);
diff --git a/gst/audiofx/audiowsincband.h b/gst/audiofx/audiowsincband.h
index 537c2f6d..7d9c06ba 100644
--- a/gst/audiofx/audiowsincband.h
+++ b/gst/audiofx/audiowsincband.h
@@ -60,6 +60,7 @@ typedef void (*GstBPWSincProcessFunc) (GstBPWSinc *, guint8 *, guint8 *, guint);
struct _GstBPWSinc {
GstAudioFilter element;
+ /* < private > */
GstBPWSincProcessFunc process;
gint mode;
@@ -76,6 +77,8 @@ struct _GstBPWSincClass {
GstAudioFilterClass parent_class;
};
+GType gst_bpwsinc_get_type (void);
+
G_END_DECLS
#endif /* __GST_BPWSINC_H__ */
diff --git a/gst/audiofx/audiowsinclimit.c b/gst/audiofx/audiowsinclimit.c
index 50d0c0f9..c8b7beb2 100644
--- a/gst/audiofx/audiowsinclimit.c
+++ b/gst/audiofx/audiowsinclimit.c
@@ -30,7 +30,31 @@
* when using FFT convolution as currently the convolution itself
* is probably the bottleneck
* - Maybe allow cascading the filter to get a better stopband attenuation.
- * Can be done by convolving a filter kernel with itself.
+ * Can be done by convolving a filter kernel with itself
+ * - Drop the first kernel_length/2 samples and append the same number of
+ * samples on EOS as the first few samples are essentialy zero.
+ */
+
+/**
+ * SECTION:element-lpwsinc
+ * @short_description: Windows Sinc low pass and high pass filter
+ *
+ * <refsect2>
+ * <para>
+ * Attenuates all frequencies above the cutoff frequency (low-pass) or all frequencies below the
+ * cutoff frequency (high-pass). The length parameter controls the rolloff, the window parameter
+ * controls rolloff and stopband attenuation. The Hamming window provides a faster rolloff but a bit
+ * worse stopband attenuation, the other way around for the Blackman window.
+ * </para>
+ * <title>Example launch line</title>
+ * <para>
+ * <programlisting>
+ * gst-launch audiotestsrc freq=1500 ! audioconvert ! lpwsinc mode=low-pass frequency=1000 length=501 ! audioconvert ! alsasink
+ * gst-launch filesrc location="melo1.ogg" ! oggdemux ! vorbisdec ! audioconvert ! lpwsinc mode=high-pass frequency=15000 length=501 ! audioconvert ! alsasink
+ * gst-launch audiotestsrc wave=white-noise ! audioconvert ! lpwsinc mode=low-pass frequency=1000 length=10001 window=blackman ! audioconvert ! alsasink
+ * </programlisting>
+ * </para>
+ * </refsect2>
*/
#ifdef HAVE_CONFIG_H
diff --git a/gst/audiofx/audiowsinclimit.h b/gst/audiofx/audiowsinclimit.h
index 599bef84..8a8cd475 100644
--- a/gst/audiofx/audiowsinclimit.h
+++ b/gst/audiofx/audiowsinclimit.h
@@ -60,6 +60,7 @@ typedef void (*GstLPWSincProcessFunc) (GstLPWSinc *, guint8 *, guint8 *, guint);
struct _GstLPWSinc {
GstAudioFilter element;
+ /* < private > */
GstLPWSincProcessFunc process;
gint mode;
@@ -76,6 +77,8 @@ struct _GstLPWSincClass {
GstAudioFilterClass parent_class;
};
+GType gst_lpwsinc_get_type (void);
+
G_END_DECLS
#endif /* __GST_LPWSINC_H__ */