Rename audiovoice to audiokaraoke and add it to the docs.

Original commit message from CVS:
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-good-plugins-docs.sgml:
* docs/plugins/gst-plugins-good-plugins-sections.txt:
* docs/plugins/gst-plugins-good-plugins.args:
* docs/plugins/gst-plugins-good-plugins.hierarchy:
* docs/plugins/inspect/plugin-audiofx.xml:
* gst/audiofx/Makefile.am:
* gst/audiofx/audiofx.c:
* gst/audiofx/audiokaraoke.c:
* gst/audiofx/audiokaraoke.h:
* gst/audiofx/audiovoice.c:
* gst/audiofx/audiovoice.h:
Rename audiovoice to audiokaraoke and add it to the docs.
This commit is contained in:
Stefan Kost 2008-05-28 14:07:21 +00:00
parent 9e26e8b6b4
commit 9c17a6006f
11 changed files with 155 additions and 59 deletions

View file

@ -1,3 +1,19 @@
2008-05-28 Stefan Kost <ensonic@users.sf.net>
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-good-plugins-docs.sgml:
* docs/plugins/gst-plugins-good-plugins-sections.txt:
* docs/plugins/gst-plugins-good-plugins.args:
* docs/plugins/gst-plugins-good-plugins.hierarchy:
* docs/plugins/inspect/plugin-audiofx.xml:
* gst/audiofx/Makefile.am:
* gst/audiofx/audiofx.c:
* gst/audiofx/audiokaraoke.c:
* gst/audiofx/audiokaraoke.h:
* gst/audiofx/audiovoice.c:
* gst/audiofx/audiovoice.h:
Rename audiovoice to audiokaraoke and add it to the docs.
2008-05-28 Stefan Kost <ensonic@users.sf.net>
* REQUIREMENTS:

View file

@ -102,6 +102,7 @@ EXTRA_HFILES = \
$(top_srcdir)/gst/audiofx/audioamplify.h \
$(top_srcdir)/gst/audiofx/audiodynamic.h \
$(top_srcdir)/gst/audiofx/audioinvert.h \
$(top_srcdir)/gst/audiofx/audiokaraoke.h \
$(top_srcdir)/gst/audiofx/audiopanorama.h \
$(top_srcdir)/gst/audiofx/audiocheblimit.h \
$(top_srcdir)/gst/audiofx/audiochebband.h \

View file

@ -24,6 +24,7 @@
<xi:include href="xml/element-audiodynamic.xml" />
<xi:include href="xml/element-audioinvert.xml" />
<xi:include href="xml/element-audiopanorama.xml" />
<xi:include href="xml/element-audiokaraoke.xml" />
<xi:include href="xml/element-autoaudiosink.xml" />
<xi:include href="xml/element-autovideosink.xml" />
<xi:include href="xml/element-avidemux.xml" />

View file

@ -135,6 +135,22 @@ GST_TYPE_AUDIO_INVERT
gst_audio_invert_get_type
</SECTION>
<SECTION>
<FILE>element-audiokaraoke</FILE>
<TITLE>audiokaraoke</TITLE>
GstAudioKaraoke
<SUBSECTION Standard>
GstAudioKaraokeClass
GstAudioKaraokeProcessFunc
GST_AUDIO_KARAOKE
GST_AUDIO_KARAOKE_CLASS
GST_AUDIO_KARAOKE_GET_CLASS
GST_IS_AUDIO_KARAOKE
GST_IS_AUDIO_KARAOKE_CLASS
GST_TYPE_AUDIO_KARAOKE
gst_audio_karaoke_get_type
</SECTION>
<SECTION>
<FILE>element-audiopanorama</FILE>
<TITLE>audiopanorama</TITLE>

View file

@ -19208,3 +19208,43 @@
<DEFAULT>TRUE</DEFAULT>
</ARG>
<ARG>
<NAME>GstAudioKaraoke::filter-band</NAME>
<TYPE>gfloat</TYPE>
<RANGE>[0,441]</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Filter Band</NICK>
<BLURB>The Frequency band of the filter.</BLURB>
<DEFAULT>220</DEFAULT>
</ARG>
<ARG>
<NAME>GstAudioKaraoke::filter-width</NAME>
<TYPE>gfloat</TYPE>
<RANGE>[0,100]</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Filter Width</NICK>
<BLURB>The Frequency width of the filter.</BLURB>
<DEFAULT>100</DEFAULT>
</ARG>
<ARG>
<NAME>GstAudioKaraoke::level</NAME>
<TYPE>gfloat</TYPE>
<RANGE>[0,1]</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Level</NICK>
<BLURB>Level of the effect (1.0 = full).</BLURB>
<DEFAULT>1</DEFAULT>
</ARG>
<ARG>
<NAME>GstAudioKaraoke::mono-level</NAME>
<TYPE>gfloat</TYPE>
<RANGE>[0,1]</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Mono Level</NICK>
<BLURB>Level of the mono channel (1.0 = full).</BLURB>
<DEFAULT>1</DEFAULT>
</ARG>

View file

@ -45,6 +45,7 @@ GObject
GstAudioPanorama
GstAudioFilter
GstAudioInvert
GstAudioKaraoke
GstAudioAmplify
GstAudioDynamic
GstAudioChebLimit

View file

@ -114,6 +114,27 @@
</caps>
</pads>
</element>
<element>
<name>audiokaraoke</name>
<longname>AudioKaraoke</longname>
<class>Filter/Effect/Audio</class>
<description>Removes voice from sound</description>
<author>Wim Taymans &lt;wim.taymans@gmail.com&gt;</author>
<pads>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>audio/x-raw-int, depth=(int)16, width=(int)16, endianness=(int)1234, signed=(boolean)true, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]; audio/x-raw-float, width=(int)32, endianness=(int)1234, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]</details>
</caps>
<caps>
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>audio/x-raw-int, depth=(int)16, width=(int)16, endianness=(int)1234, signed=(boolean)true, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]; audio/x-raw-float, width=(int)32, endianness=(int)1234, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]</details>
</caps>
</pads>
</element>
<element>
<name>audiopanorama</name>
<longname>Stereo positioning</longname>

View file

@ -8,7 +8,7 @@ libgstaudiofx_la_SOURCES = audiofx.c\
audioinvert.c \
audioamplify.c \
audiodynamic.c \
audiovoice.c \
audiokaraoke.c \
audiocheblimit.c \
audiochebband.c \
audiowsincband.c \
@ -32,7 +32,7 @@ noinst_HEADERS = audiopanorama.h \
audioinvert.h \
audioamplify.h \
audiodynamic.h \
audiovoice.h \
audiokaraoke.h \
audiocheblimit.h \
audiochebband.h \
audiowsincband.h \

View file

@ -27,7 +27,7 @@
#include "audiopanorama.h"
#include "audioinvert.h"
#include "audiovoice.h"
#include "audiokaraoke.h"
#include "audioamplify.h"
#include "audiodynamic.h"
#include "audiocheblimit.h"
@ -50,8 +50,8 @@ plugin_init (GstPlugin * plugin)
GST_TYPE_AUDIO_PANORAMA) &&
gst_element_register (plugin, "audioinvert", GST_RANK_NONE,
GST_TYPE_AUDIO_INVERT) &&
gst_element_register (plugin, "audiovoice", GST_RANK_NONE,
GST_TYPE_AUDIO_VOICE) &&
gst_element_register (plugin, "audiokaraoke", GST_RANK_NONE,
GST_TYPE_AUDIO_KARAOKE) &&
gst_element_register (plugin, "audioamplify", GST_RANK_NONE,
GST_TYPE_AUDIO_AMPLIFY) &&
gst_element_register (plugin, "audiodynamic", GST_RANK_NONE,

View file

@ -19,16 +19,16 @@
*/
/**
* SECTION:element-audiovoice
* SECTION:element-audiokaraoke
* @short_description: Voice removal element
*
* <refsect2>
* Remove the voice from audio by removing the center channel.
* Remove the voice from audio by filtering the center channel.
* This plugin is useful for karaoke applications.
* <title>Example launch line</title>
* <para>
* <programlisting>
* gst-launch filesrc location="song.ogg" ! oggdemux ! vorbisdec ! audiovoice ! audioconvert ! alsasink
* gst-launch filesrc location=song.ogg ! oggdemux ! vorbisdec ! audiokaraoke ! audioconvert ! alsasink
* </programlisting>
* </para>
* </refsect2>
@ -46,13 +46,13 @@
#include <gst/audio/gstaudiofilter.h>
#include <gst/controller/gstcontroller.h>
#include "audiovoice.h"
#include "audiokaraoke.h"
#define GST_CAT_DEFAULT gst_audio_voice_debug
#define GST_CAT_DEFAULT gst_audio_karaoke_debug
GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
static const GstElementDetails element_details =
GST_ELEMENT_DETAILS ("AudioVoice",
GST_ELEMENT_DETAILS ("AudioKaraoke",
"Filter/Effect/Audio",
"Removes voice from sound",
"Wim Taymans <wim.taymans@gmail.com>");
@ -94,30 +94,30 @@ enum
" channels=(int)[1,MAX]"
#define DEBUG_INIT(bla) \
GST_DEBUG_CATEGORY_INIT (gst_audio_voice_debug, "audiovoice", 0, "audiovoice element");
GST_DEBUG_CATEGORY_INIT (gst_audio_karaoke_debug, "audiokaraoke", 0, "audiokaraoke element");
GST_BOILERPLATE_FULL (GstAudioVoice, gst_audio_voice, GstAudioFilter,
GST_BOILERPLATE_FULL (GstAudioKaraoke, gst_audio_karaoke, GstAudioFilter,
GST_TYPE_AUDIO_FILTER, DEBUG_INIT);
static void gst_audio_voice_set_property (GObject * object, guint prop_id,
static void gst_audio_karaoke_set_property (GObject * object, guint prop_id,
const GValue * value, GParamSpec * pspec);
static void gst_audio_voice_get_property (GObject * object, guint prop_id,
static void gst_audio_karaoke_get_property (GObject * object, guint prop_id,
GValue * value, GParamSpec * pspec);
static gboolean gst_audio_voice_setup (GstAudioFilter * filter,
static gboolean gst_audio_karaoke_setup (GstAudioFilter * filter,
GstRingBufferSpec * format);
static GstFlowReturn gst_audio_voice_transform_ip (GstBaseTransform * base,
static GstFlowReturn gst_audio_karaoke_transform_ip (GstBaseTransform * base,
GstBuffer * buf);
static void gst_audio_voice_transform_int (GstAudioVoice * filter,
static void gst_audio_karaoke_transform_int (GstAudioKaraoke * filter,
gint16 * data, guint num_samples);
static void gst_audio_voice_transform_float (GstAudioVoice * filter,
static void gst_audio_karaoke_transform_float (GstAudioKaraoke * filter,
gfloat * data, guint num_samples);
/* GObject vmethod implementations */
static void
gst_audio_voice_base_init (gpointer klass)
gst_audio_karaoke_base_init (gpointer klass)
{
GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
GstCaps *caps;
@ -131,13 +131,13 @@ gst_audio_voice_base_init (gpointer klass)
}
static void
gst_audio_voice_class_init (GstAudioVoiceClass * klass)
gst_audio_karaoke_class_init (GstAudioKaraokeClass * klass)
{
GObjectClass *gobject_class;
gobject_class = (GObjectClass *) klass;
gobject_class->set_property = gst_audio_voice_set_property;
gobject_class->get_property = gst_audio_voice_get_property;
gobject_class->set_property = gst_audio_karaoke_set_property;
gobject_class->get_property = gst_audio_karaoke_get_property;
g_object_class_install_property (gobject_class, PROP_LEVEL,
g_param_spec_float ("level", "Level",
@ -160,13 +160,13 @@ gst_audio_voice_class_init (GstAudioVoiceClass * klass)
G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE));
GST_AUDIO_FILTER_CLASS (klass)->setup =
GST_DEBUG_FUNCPTR (gst_audio_voice_setup);
GST_DEBUG_FUNCPTR (gst_audio_karaoke_setup);
GST_BASE_TRANSFORM_CLASS (klass)->transform_ip =
GST_DEBUG_FUNCPTR (gst_audio_voice_transform_ip);
GST_DEBUG_FUNCPTR (gst_audio_karaoke_transform_ip);
}
static void
gst_audio_voice_init (GstAudioVoice * filter, GstAudioVoiceClass * klass)
gst_audio_karaoke_init (GstAudioKaraoke * filter, GstAudioKaraokeClass * klass)
{
gst_base_transform_set_in_place (GST_BASE_TRANSFORM (filter), TRUE);
gst_base_transform_set_gap_aware (GST_BASE_TRANSFORM (filter), TRUE);
@ -178,7 +178,7 @@ gst_audio_voice_init (GstAudioVoice * filter, GstAudioVoiceClass * klass)
}
static void
update_filter (GstAudioVoice * filter, gint rate)
update_filter (GstAudioKaraoke * filter, gint rate)
{
gfloat A, B, C;
@ -197,12 +197,12 @@ update_filter (GstAudioVoice * filter, gint rate)
}
static void
gst_audio_voice_set_property (GObject * object, guint prop_id,
gst_audio_karaoke_set_property (GObject * object, guint prop_id,
const GValue * value, GParamSpec * pspec)
{
GstAudioVoice *filter;
GstAudioKaraoke *filter;
filter = GST_AUDIO_VOICE (object);
filter = GST_AUDIO_KARAOKE (object);
switch (prop_id) {
case PROP_LEVEL:
@ -226,12 +226,12 @@ gst_audio_voice_set_property (GObject * object, guint prop_id,
}
static void
gst_audio_voice_get_property (GObject * object, guint prop_id,
gst_audio_karaoke_get_property (GObject * object, guint prop_id,
GValue * value, GParamSpec * pspec)
{
GstAudioVoice *filter;
GstAudioKaraoke *filter;
filter = GST_AUDIO_VOICE (object);
filter = GST_AUDIO_KARAOKE (object);
switch (prop_id) {
case PROP_LEVEL:
@ -255,20 +255,20 @@ gst_audio_voice_get_property (GObject * object, guint prop_id,
/* GstAudioFilter vmethod implementations */
static gboolean
gst_audio_voice_setup (GstAudioFilter * base, GstRingBufferSpec * format)
gst_audio_karaoke_setup (GstAudioFilter * base, GstRingBufferSpec * format)
{
GstAudioVoice *filter = GST_AUDIO_VOICE (base);
GstAudioKaraoke *filter = GST_AUDIO_KARAOKE (base);
gboolean ret = TRUE;
filter->channels = format->channels;
filter->rate = format->rate;
if (format->type == GST_BUFTYPE_FLOAT && format->width == 32)
filter->process = (GstAudioVoiceProcessFunc)
gst_audio_voice_transform_float;
filter->process = (GstAudioKaraokeProcessFunc)
gst_audio_karaoke_transform_float;
else if (format->type == GST_BUFTYPE_LINEAR && format->width == 16)
filter->process = (GstAudioVoiceProcessFunc)
gst_audio_voice_transform_int;
filter->process = (GstAudioKaraokeProcessFunc)
gst_audio_karaoke_transform_int;
else
ret = FALSE;
@ -278,7 +278,7 @@ gst_audio_voice_setup (GstAudioFilter * base, GstRingBufferSpec * format)
}
static void
gst_audio_voice_transform_int (GstAudioVoice * filter,
gst_audio_karaoke_transform_int (GstAudioKaraoke * filter,
gint16 * data, guint num_samples)
{
gint i, l, r, o, x;
@ -311,7 +311,7 @@ gst_audio_voice_transform_int (GstAudioVoice * filter,
}
static void
gst_audio_voice_transform_float (GstAudioVoice * filter,
gst_audio_karaoke_transform_float (GstAudioKaraoke * filter,
gfloat * data, guint num_samples)
{
gint i;
@ -340,9 +340,9 @@ gst_audio_voice_transform_float (GstAudioVoice * filter,
/* GstBaseTransform vmethod implementations */
static GstFlowReturn
gst_audio_voice_transform_ip (GstBaseTransform * base, GstBuffer * buf)
gst_audio_karaoke_transform_ip (GstBaseTransform * base, GstBuffer * buf)
{
GstAudioVoice *filter = GST_AUDIO_VOICE (base);
GstAudioKaraoke *filter = GST_AUDIO_KARAOKE (base);
guint num_samples =
GST_BUFFER_SIZE (buf) / (GST_AUDIO_FILTER (filter)->format.width / 8);

View file

@ -18,8 +18,8 @@
* Boston, MA 02111-1307, USA.
*/
#ifndef __GST_AUDIO_VOICE_H__
#define __GST_AUDIO_VOICE_H__
#ifndef __GST_AUDIO_KARAOKE_H__
#define __GST_AUDIO_KARAOKE_H__
#include <gst/gst.h>
#include <gst/base/gstbasetransform.h>
@ -27,18 +27,18 @@
#include <gst/audio/gstaudiofilter.h>
G_BEGIN_DECLS
#define GST_TYPE_AUDIO_VOICE (gst_audio_voice_get_type())
#define GST_AUDIO_VOICE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_AUDIO_VOICE,GstAudioVoice))
#define GST_IS_AUDIO_VOICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_AUDIO_VOICE))
#define GST_AUDIO_VOICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass) ,GST_TYPE_AUDIO_VOICE,GstAudioVoiceClass))
#define GST_IS_AUDIO_VOICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass) ,GST_TYPE_AUDIO_VOICE))
#define GST_AUDIO_VOICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj) ,GST_TYPE_AUDIO_VOICE,GstAudioVoiceClass))
typedef struct _GstAudioVoice GstAudioVoice;
typedef struct _GstAudioVoiceClass GstAudioVoiceClass;
#define GST_TYPE_AUDIO_KARAOKE (gst_audio_karaoke_get_type())
#define GST_AUDIO_KARAOKE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_AUDIO_KARAOKE,GstAudioKaraoke))
#define GST_IS_AUDIO_KARAOKE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_AUDIO_KARAOKE))
#define GST_AUDIO_KARAOKE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass) ,GST_TYPE_AUDIO_KARAOKE,GstAudioKaraokeClass))
#define GST_IS_AUDIO_KARAOKE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass) ,GST_TYPE_AUDIO_KARAOKE))
#define GST_AUDIO_KARAOKE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj) ,GST_TYPE_AUDIO_KARAOKE,GstAudioKaraokeClass))
typedef struct _GstAudioKaraoke GstAudioKaraoke;
typedef struct _GstAudioKaraokeClass GstAudioKaraokeClass;
typedef void (*GstAudioVoiceProcessFunc) (GstAudioVoice *, guint8 *, guint);
typedef void (*GstAudioKaraokeProcessFunc) (GstAudioKaraoke *, guint8 *, guint);
struct _GstAudioVoice
struct _GstAudioKaraoke
{
GstAudioFilter audiofilter;
@ -56,15 +56,15 @@ struct _GstAudioVoice
gfloat y1, y2;
/* < private > */
GstAudioVoiceProcessFunc process;
GstAudioKaraokeProcessFunc process;
};
struct _GstAudioVoiceClass
struct _GstAudioKaraokeClass
{
GstAudioFilterClass parent;
};
GType gst_audio_voice_get_type (void);
GType gst_audio_karaoke_get_type (void);
G_END_DECLS
#endif /* __GST_AUDIO_VOICE_H__ */
#endif /* __GST_AUDIO_KARAOKE_H__ */