mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-20 08:41:07 +00:00
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:
parent
9e26e8b6b4
commit
9c17a6006f
11 changed files with 155 additions and 59 deletions
16
ChangeLog
16
ChangeLog
|
@ -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>
|
2008-05-28 Stefan Kost <ensonic@users.sf.net>
|
||||||
|
|
||||||
* REQUIREMENTS:
|
* REQUIREMENTS:
|
||||||
|
|
|
@ -102,6 +102,7 @@ EXTRA_HFILES = \
|
||||||
$(top_srcdir)/gst/audiofx/audioamplify.h \
|
$(top_srcdir)/gst/audiofx/audioamplify.h \
|
||||||
$(top_srcdir)/gst/audiofx/audiodynamic.h \
|
$(top_srcdir)/gst/audiofx/audiodynamic.h \
|
||||||
$(top_srcdir)/gst/audiofx/audioinvert.h \
|
$(top_srcdir)/gst/audiofx/audioinvert.h \
|
||||||
|
$(top_srcdir)/gst/audiofx/audiokaraoke.h \
|
||||||
$(top_srcdir)/gst/audiofx/audiopanorama.h \
|
$(top_srcdir)/gst/audiofx/audiopanorama.h \
|
||||||
$(top_srcdir)/gst/audiofx/audiocheblimit.h \
|
$(top_srcdir)/gst/audiofx/audiocheblimit.h \
|
||||||
$(top_srcdir)/gst/audiofx/audiochebband.h \
|
$(top_srcdir)/gst/audiofx/audiochebband.h \
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
<xi:include href="xml/element-audiodynamic.xml" />
|
<xi:include href="xml/element-audiodynamic.xml" />
|
||||||
<xi:include href="xml/element-audioinvert.xml" />
|
<xi:include href="xml/element-audioinvert.xml" />
|
||||||
<xi:include href="xml/element-audiopanorama.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-autoaudiosink.xml" />
|
||||||
<xi:include href="xml/element-autovideosink.xml" />
|
<xi:include href="xml/element-autovideosink.xml" />
|
||||||
<xi:include href="xml/element-avidemux.xml" />
|
<xi:include href="xml/element-avidemux.xml" />
|
||||||
|
|
|
@ -135,6 +135,22 @@ GST_TYPE_AUDIO_INVERT
|
||||||
gst_audio_invert_get_type
|
gst_audio_invert_get_type
|
||||||
</SECTION>
|
</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>
|
<SECTION>
|
||||||
<FILE>element-audiopanorama</FILE>
|
<FILE>element-audiopanorama</FILE>
|
||||||
<TITLE>audiopanorama</TITLE>
|
<TITLE>audiopanorama</TITLE>
|
||||||
|
|
|
@ -19208,3 +19208,43 @@
|
||||||
<DEFAULT>TRUE</DEFAULT>
|
<DEFAULT>TRUE</DEFAULT>
|
||||||
</ARG>
|
</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>
|
||||||
|
|
||||||
|
|
|
@ -45,6 +45,7 @@ GObject
|
||||||
GstAudioPanorama
|
GstAudioPanorama
|
||||||
GstAudioFilter
|
GstAudioFilter
|
||||||
GstAudioInvert
|
GstAudioInvert
|
||||||
|
GstAudioKaraoke
|
||||||
GstAudioAmplify
|
GstAudioAmplify
|
||||||
GstAudioDynamic
|
GstAudioDynamic
|
||||||
GstAudioChebLimit
|
GstAudioChebLimit
|
||||||
|
|
|
@ -114,6 +114,27 @@
|
||||||
</caps>
|
</caps>
|
||||||
</pads>
|
</pads>
|
||||||
</element>
|
</element>
|
||||||
|
<element>
|
||||||
|
<name>audiokaraoke</name>
|
||||||
|
<longname>AudioKaraoke</longname>
|
||||||
|
<class>Filter/Effect/Audio</class>
|
||||||
|
<description>Removes voice from sound</description>
|
||||||
|
<author>Wim Taymans <wim.taymans@gmail.com></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>
|
<element>
|
||||||
<name>audiopanorama</name>
|
<name>audiopanorama</name>
|
||||||
<longname>Stereo positioning</longname>
|
<longname>Stereo positioning</longname>
|
||||||
|
|
|
@ -8,7 +8,7 @@ libgstaudiofx_la_SOURCES = audiofx.c\
|
||||||
audioinvert.c \
|
audioinvert.c \
|
||||||
audioamplify.c \
|
audioamplify.c \
|
||||||
audiodynamic.c \
|
audiodynamic.c \
|
||||||
audiovoice.c \
|
audiokaraoke.c \
|
||||||
audiocheblimit.c \
|
audiocheblimit.c \
|
||||||
audiochebband.c \
|
audiochebband.c \
|
||||||
audiowsincband.c \
|
audiowsincband.c \
|
||||||
|
@ -32,7 +32,7 @@ noinst_HEADERS = audiopanorama.h \
|
||||||
audioinvert.h \
|
audioinvert.h \
|
||||||
audioamplify.h \
|
audioamplify.h \
|
||||||
audiodynamic.h \
|
audiodynamic.h \
|
||||||
audiovoice.h \
|
audiokaraoke.h \
|
||||||
audiocheblimit.h \
|
audiocheblimit.h \
|
||||||
audiochebband.h \
|
audiochebband.h \
|
||||||
audiowsincband.h \
|
audiowsincband.h \
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
|
|
||||||
#include "audiopanorama.h"
|
#include "audiopanorama.h"
|
||||||
#include "audioinvert.h"
|
#include "audioinvert.h"
|
||||||
#include "audiovoice.h"
|
#include "audiokaraoke.h"
|
||||||
#include "audioamplify.h"
|
#include "audioamplify.h"
|
||||||
#include "audiodynamic.h"
|
#include "audiodynamic.h"
|
||||||
#include "audiocheblimit.h"
|
#include "audiocheblimit.h"
|
||||||
|
@ -50,8 +50,8 @@ plugin_init (GstPlugin * plugin)
|
||||||
GST_TYPE_AUDIO_PANORAMA) &&
|
GST_TYPE_AUDIO_PANORAMA) &&
|
||||||
gst_element_register (plugin, "audioinvert", GST_RANK_NONE,
|
gst_element_register (plugin, "audioinvert", GST_RANK_NONE,
|
||||||
GST_TYPE_AUDIO_INVERT) &&
|
GST_TYPE_AUDIO_INVERT) &&
|
||||||
gst_element_register (plugin, "audiovoice", GST_RANK_NONE,
|
gst_element_register (plugin, "audiokaraoke", GST_RANK_NONE,
|
||||||
GST_TYPE_AUDIO_VOICE) &&
|
GST_TYPE_AUDIO_KARAOKE) &&
|
||||||
gst_element_register (plugin, "audioamplify", GST_RANK_NONE,
|
gst_element_register (plugin, "audioamplify", GST_RANK_NONE,
|
||||||
GST_TYPE_AUDIO_AMPLIFY) &&
|
GST_TYPE_AUDIO_AMPLIFY) &&
|
||||||
gst_element_register (plugin, "audiodynamic", GST_RANK_NONE,
|
gst_element_register (plugin, "audiodynamic", GST_RANK_NONE,
|
||||||
|
|
|
@ -19,16 +19,16 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SECTION:element-audiovoice
|
* SECTION:element-audiokaraoke
|
||||||
* @short_description: Voice removal element
|
* @short_description: Voice removal element
|
||||||
*
|
*
|
||||||
* <refsect2>
|
* <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.
|
* This plugin is useful for karaoke applications.
|
||||||
* <title>Example launch line</title>
|
* <title>Example launch line</title>
|
||||||
* <para>
|
* <para>
|
||||||
* <programlisting>
|
* <programlisting>
|
||||||
* gst-launch filesrc location="song.ogg" ! oggdemux ! vorbisdec ! audiovoice ! audioconvert ! alsasink
|
* gst-launch filesrc location=song.ogg ! oggdemux ! vorbisdec ! audiokaraoke ! audioconvert ! alsasink
|
||||||
* </programlisting>
|
* </programlisting>
|
||||||
* </para>
|
* </para>
|
||||||
* </refsect2>
|
* </refsect2>
|
||||||
|
@ -46,13 +46,13 @@
|
||||||
#include <gst/audio/gstaudiofilter.h>
|
#include <gst/audio/gstaudiofilter.h>
|
||||||
#include <gst/controller/gstcontroller.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);
|
GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
|
||||||
|
|
||||||
static const GstElementDetails element_details =
|
static const GstElementDetails element_details =
|
||||||
GST_ELEMENT_DETAILS ("AudioVoice",
|
GST_ELEMENT_DETAILS ("AudioKaraoke",
|
||||||
"Filter/Effect/Audio",
|
"Filter/Effect/Audio",
|
||||||
"Removes voice from sound",
|
"Removes voice from sound",
|
||||||
"Wim Taymans <wim.taymans@gmail.com>");
|
"Wim Taymans <wim.taymans@gmail.com>");
|
||||||
|
@ -94,30 +94,30 @@ enum
|
||||||
" channels=(int)[1,MAX]"
|
" channels=(int)[1,MAX]"
|
||||||
|
|
||||||
#define DEBUG_INIT(bla) \
|
#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);
|
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);
|
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);
|
GValue * value, GParamSpec * pspec);
|
||||||
|
|
||||||
static gboolean gst_audio_voice_setup (GstAudioFilter * filter,
|
static gboolean gst_audio_karaoke_setup (GstAudioFilter * filter,
|
||||||
GstRingBufferSpec * format);
|
GstRingBufferSpec * format);
|
||||||
static GstFlowReturn gst_audio_voice_transform_ip (GstBaseTransform * base,
|
static GstFlowReturn gst_audio_karaoke_transform_ip (GstBaseTransform * base,
|
||||||
GstBuffer * buf);
|
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);
|
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);
|
gfloat * data, guint num_samples);
|
||||||
|
|
||||||
/* GObject vmethod implementations */
|
/* GObject vmethod implementations */
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gst_audio_voice_base_init (gpointer klass)
|
gst_audio_karaoke_base_init (gpointer klass)
|
||||||
{
|
{
|
||||||
GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
|
GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
|
||||||
GstCaps *caps;
|
GstCaps *caps;
|
||||||
|
@ -131,13 +131,13 @@ gst_audio_voice_base_init (gpointer klass)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gst_audio_voice_class_init (GstAudioVoiceClass * klass)
|
gst_audio_karaoke_class_init (GstAudioKaraokeClass * klass)
|
||||||
{
|
{
|
||||||
GObjectClass *gobject_class;
|
GObjectClass *gobject_class;
|
||||||
|
|
||||||
gobject_class = (GObjectClass *) klass;
|
gobject_class = (GObjectClass *) klass;
|
||||||
gobject_class->set_property = gst_audio_voice_set_property;
|
gobject_class->set_property = gst_audio_karaoke_set_property;
|
||||||
gobject_class->get_property = gst_audio_voice_get_property;
|
gobject_class->get_property = gst_audio_karaoke_get_property;
|
||||||
|
|
||||||
g_object_class_install_property (gobject_class, PROP_LEVEL,
|
g_object_class_install_property (gobject_class, PROP_LEVEL,
|
||||||
g_param_spec_float ("level", "Level",
|
g_param_spec_float ("level", "Level",
|
||||||
|
@ -160,13 +160,13 @@ gst_audio_voice_class_init (GstAudioVoiceClass * klass)
|
||||||
G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE));
|
G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE));
|
||||||
|
|
||||||
GST_AUDIO_FILTER_CLASS (klass)->setup =
|
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_BASE_TRANSFORM_CLASS (klass)->transform_ip =
|
||||||
GST_DEBUG_FUNCPTR (gst_audio_voice_transform_ip);
|
GST_DEBUG_FUNCPTR (gst_audio_karaoke_transform_ip);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
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_in_place (GST_BASE_TRANSFORM (filter), TRUE);
|
||||||
gst_base_transform_set_gap_aware (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
|
static void
|
||||||
update_filter (GstAudioVoice * filter, gint rate)
|
update_filter (GstAudioKaraoke * filter, gint rate)
|
||||||
{
|
{
|
||||||
gfloat A, B, C;
|
gfloat A, B, C;
|
||||||
|
|
||||||
|
@ -197,12 +197,12 @@ update_filter (GstAudioVoice * filter, gint rate)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
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)
|
const GValue * value, GParamSpec * pspec)
|
||||||
{
|
{
|
||||||
GstAudioVoice *filter;
|
GstAudioKaraoke *filter;
|
||||||
|
|
||||||
filter = GST_AUDIO_VOICE (object);
|
filter = GST_AUDIO_KARAOKE (object);
|
||||||
|
|
||||||
switch (prop_id) {
|
switch (prop_id) {
|
||||||
case PROP_LEVEL:
|
case PROP_LEVEL:
|
||||||
|
@ -226,12 +226,12 @@ gst_audio_voice_set_property (GObject * object, guint prop_id,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
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)
|
GValue * value, GParamSpec * pspec)
|
||||||
{
|
{
|
||||||
GstAudioVoice *filter;
|
GstAudioKaraoke *filter;
|
||||||
|
|
||||||
filter = GST_AUDIO_VOICE (object);
|
filter = GST_AUDIO_KARAOKE (object);
|
||||||
|
|
||||||
switch (prop_id) {
|
switch (prop_id) {
|
||||||
case PROP_LEVEL:
|
case PROP_LEVEL:
|
||||||
|
@ -255,20 +255,20 @@ gst_audio_voice_get_property (GObject * object, guint prop_id,
|
||||||
/* GstAudioFilter vmethod implementations */
|
/* GstAudioFilter vmethod implementations */
|
||||||
|
|
||||||
static gboolean
|
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;
|
gboolean ret = TRUE;
|
||||||
|
|
||||||
filter->channels = format->channels;
|
filter->channels = format->channels;
|
||||||
filter->rate = format->rate;
|
filter->rate = format->rate;
|
||||||
|
|
||||||
if (format->type == GST_BUFTYPE_FLOAT && format->width == 32)
|
if (format->type == GST_BUFTYPE_FLOAT && format->width == 32)
|
||||||
filter->process = (GstAudioVoiceProcessFunc)
|
filter->process = (GstAudioKaraokeProcessFunc)
|
||||||
gst_audio_voice_transform_float;
|
gst_audio_karaoke_transform_float;
|
||||||
else if (format->type == GST_BUFTYPE_LINEAR && format->width == 16)
|
else if (format->type == GST_BUFTYPE_LINEAR && format->width == 16)
|
||||||
filter->process = (GstAudioVoiceProcessFunc)
|
filter->process = (GstAudioKaraokeProcessFunc)
|
||||||
gst_audio_voice_transform_int;
|
gst_audio_karaoke_transform_int;
|
||||||
else
|
else
|
||||||
ret = FALSE;
|
ret = FALSE;
|
||||||
|
|
||||||
|
@ -278,7 +278,7 @@ gst_audio_voice_setup (GstAudioFilter * base, GstRingBufferSpec * format)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gst_audio_voice_transform_int (GstAudioVoice * filter,
|
gst_audio_karaoke_transform_int (GstAudioKaraoke * filter,
|
||||||
gint16 * data, guint num_samples)
|
gint16 * data, guint num_samples)
|
||||||
{
|
{
|
||||||
gint i, l, r, o, x;
|
gint i, l, r, o, x;
|
||||||
|
@ -311,7 +311,7 @@ gst_audio_voice_transform_int (GstAudioVoice * filter,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gst_audio_voice_transform_float (GstAudioVoice * filter,
|
gst_audio_karaoke_transform_float (GstAudioKaraoke * filter,
|
||||||
gfloat * data, guint num_samples)
|
gfloat * data, guint num_samples)
|
||||||
{
|
{
|
||||||
gint i;
|
gint i;
|
||||||
|
@ -340,9 +340,9 @@ gst_audio_voice_transform_float (GstAudioVoice * filter,
|
||||||
|
|
||||||
/* GstBaseTransform vmethod implementations */
|
/* GstBaseTransform vmethod implementations */
|
||||||
static GstFlowReturn
|
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 =
|
guint num_samples =
|
||||||
GST_BUFFER_SIZE (buf) / (GST_AUDIO_FILTER (filter)->format.width / 8);
|
GST_BUFFER_SIZE (buf) / (GST_AUDIO_FILTER (filter)->format.width / 8);
|
||||||
|
|
|
@ -18,8 +18,8 @@
|
||||||
* Boston, MA 02111-1307, USA.
|
* Boston, MA 02111-1307, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __GST_AUDIO_VOICE_H__
|
#ifndef __GST_AUDIO_KARAOKE_H__
|
||||||
#define __GST_AUDIO_VOICE_H__
|
#define __GST_AUDIO_KARAOKE_H__
|
||||||
|
|
||||||
#include <gst/gst.h>
|
#include <gst/gst.h>
|
||||||
#include <gst/base/gstbasetransform.h>
|
#include <gst/base/gstbasetransform.h>
|
||||||
|
@ -27,18 +27,18 @@
|
||||||
#include <gst/audio/gstaudiofilter.h>
|
#include <gst/audio/gstaudiofilter.h>
|
||||||
|
|
||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
#define GST_TYPE_AUDIO_VOICE (gst_audio_voice_get_type())
|
#define GST_TYPE_AUDIO_KARAOKE (gst_audio_karaoke_get_type())
|
||||||
#define GST_AUDIO_VOICE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_AUDIO_VOICE,GstAudioVoice))
|
#define GST_AUDIO_KARAOKE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_AUDIO_KARAOKE,GstAudioKaraoke))
|
||||||
#define GST_IS_AUDIO_VOICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_AUDIO_VOICE))
|
#define GST_IS_AUDIO_KARAOKE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_AUDIO_KARAOKE))
|
||||||
#define GST_AUDIO_VOICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass) ,GST_TYPE_AUDIO_VOICE,GstAudioVoiceClass))
|
#define GST_AUDIO_KARAOKE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass) ,GST_TYPE_AUDIO_KARAOKE,GstAudioKaraokeClass))
|
||||||
#define GST_IS_AUDIO_VOICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass) ,GST_TYPE_AUDIO_VOICE))
|
#define GST_IS_AUDIO_KARAOKE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass) ,GST_TYPE_AUDIO_KARAOKE))
|
||||||
#define GST_AUDIO_VOICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj) ,GST_TYPE_AUDIO_VOICE,GstAudioVoiceClass))
|
#define GST_AUDIO_KARAOKE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj) ,GST_TYPE_AUDIO_KARAOKE,GstAudioKaraokeClass))
|
||||||
typedef struct _GstAudioVoice GstAudioVoice;
|
typedef struct _GstAudioKaraoke GstAudioKaraoke;
|
||||||
typedef struct _GstAudioVoiceClass GstAudioVoiceClass;
|
typedef struct _GstAudioKaraokeClass GstAudioKaraokeClass;
|
||||||
|
|
||||||
typedef void (*GstAudioVoiceProcessFunc) (GstAudioVoice *, guint8 *, guint);
|
typedef void (*GstAudioKaraokeProcessFunc) (GstAudioKaraoke *, guint8 *, guint);
|
||||||
|
|
||||||
struct _GstAudioVoice
|
struct _GstAudioKaraoke
|
||||||
{
|
{
|
||||||
GstAudioFilter audiofilter;
|
GstAudioFilter audiofilter;
|
||||||
|
|
||||||
|
@ -56,15 +56,15 @@ struct _GstAudioVoice
|
||||||
gfloat y1, y2;
|
gfloat y1, y2;
|
||||||
|
|
||||||
/* < private > */
|
/* < private > */
|
||||||
GstAudioVoiceProcessFunc process;
|
GstAudioKaraokeProcessFunc process;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _GstAudioVoiceClass
|
struct _GstAudioKaraokeClass
|
||||||
{
|
{
|
||||||
GstAudioFilterClass parent;
|
GstAudioFilterClass parent;
|
||||||
};
|
};
|
||||||
|
|
||||||
GType gst_audio_voice_get_type (void);
|
GType gst_audio_karaoke_get_type (void);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
#endif /* __GST_AUDIO_VOICE_H__ */
|
#endif /* __GST_AUDIO_KARAOKE_H__ */
|
Loading…
Reference in a new issue