summaryrefslogtreecommitdiff
path: root/ext/libvisual
diff options
context:
space:
mode:
authorStefan Sauer <ensonic@users.sf.net>2012-07-16 21:58:23 +0200
committerStefan Sauer <ensonic@users.sf.net>2012-07-16 21:58:23 +0200
commita1d2abbde6fb4849f115bc84e400d30cf4f9b603 (patch)
treef467a51b282cd469fd6da91faa630f092851dfc5 /ext/libvisual
parent2f8b9829c737e528f9b4d3b60ae564be1650b4fb (diff)
downloadgstreamer-plugins-base-a1d2abbde6fb4849f115bc84e400d30cf4f9b603.tar.gz
audiovisualizer: shorten base class name
As suggested on IRC rename to AudioVisualizer. We use custom suffix on the type to avoid clashing with other copies for the time being.
Diffstat (limited to 'ext/libvisual')
-rw-r--r--ext/libvisual/Makefile.am4
-rw-r--r--ext/libvisual/gstaudiobasevisualizer.h125
-rw-r--r--ext/libvisual/gstaudiovisualizer.c (renamed from ext/libvisual/gstaudiobasevisualizer.c)247
-rw-r--r--ext/libvisual/gstaudiovisualizer.h125
-rw-r--r--ext/libvisual/visual.c13
-rw-r--r--ext/libvisual/visual.h6
6 files changed, 259 insertions, 261 deletions
diff --git a/ext/libvisual/Makefile.am b/ext/libvisual/Makefile.am
index 22ab6e699..07eec1a50 100644
--- a/ext/libvisual/Makefile.am
+++ b/ext/libvisual/Makefile.am
@@ -1,6 +1,6 @@
plugin_LTLIBRARIES = libgstlibvisual.la
-libgstlibvisual_la_SOURCES = plugin.c visual.c gstaudiobasevisualizer.c
+libgstlibvisual_la_SOURCES = plugin.c visual.c gstaudiovisualizer.c
libgstlibvisual_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(LIBVISUAL_CFLAGS)
libgstlibvisual_la_LIBADD = \
$(top_builddir)/gst-libs/gst/audio/libgstaudio-$(GST_API_VERSION).la \
@@ -9,4 +9,4 @@ libgstlibvisual_la_LIBADD = \
libgstlibvisual_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
libgstlibvisual_la_LIBTOOLFLAGS = --tag=disable-static
-noinst_HEADERS = visual.h gstaudiobasevisualizer.h
+noinst_HEADERS = visual.h gstaudiovisualizer.h
diff --git a/ext/libvisual/gstaudiobasevisualizer.h b/ext/libvisual/gstaudiobasevisualizer.h
deleted file mode 100644
index 768e7a7e6..000000000
--- a/ext/libvisual/gstaudiobasevisualizer.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/* GStreamer
- * Copyright (C) <2011> Stefan Kost <ensonic@users.sf.net>
- *
- * gstaudiobasevisualizer.c: base class for audio visualisation elements
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GST_AUDIO_BASE_VISUALIZER_H__
-#define __GST_AUDIO_BASE_VISUALIZER_H__
-
-#include <gst/gst.h>
-#include <gst/base/gstbasetransform.h>
-
-#include <gst/video/video.h>
-#include <gst/audio/audio.h>
-#include <gst/base/gstadapter.h>
-
-G_BEGIN_DECLS
-#define GST_TYPE_AUDIO_BASE_VISUALIZER (gst_audio_base_visualizer_get_type())
-#define GST_AUDIO_BASE_VISUALIZER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_AUDIO_BASE_VISUALIZER,GstAudioBaseVisualizer))
-#define GST_AUDIO_BASE_VISUALIZER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_AUDIO_BASE_VISUALIZER,GstAudioBaseVisualizerClass))
-#define GST_IS_SYNAESTHESIA(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_AUDIO_BASE_VISUALIZER))
-#define GST_IS_SYNAESTHESIA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_AUDIO_BASE_VISUALIZER))
-typedef struct _GstAudioBaseVisualizer GstAudioBaseVisualizer;
-typedef struct _GstAudioBaseVisualizerClass GstAudioBaseVisualizerClass;
-
-typedef void (*GstAudioBaseVisualizerShaderFunc)(GstAudioBaseVisualizer *scope, const guint8 *s, guint8 *d);
-
-/**
- * GstAudioBaseVisualizerShader:
- * @GST_AUDIO_BASE_VISUALIZER_SHADER_NONE: no shading
- * @GST_AUDIO_BASE_VISUALIZER_SHADER_FADE: plain fading
- * @GST_AUDIO_BASE_VISUALIZER_SHADER_FADE_AND_MOVE_UP: fade and move up
- * @GST_AUDIO_BASE_VISUALIZER_SHADER_FADE_AND_MOVE_DOWN: fade and move down
- * @GST_AUDIO_BASE_VISUALIZER_SHADER_FADE_AND_MOVE_LEFT: fade and move left
- * @GST_AUDIO_BASE_VISUALIZER_SHADER_FADE_AND_MOVE_RIGHT: fade and move right
- * @GST_AUDIO_BASE_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_OUT: fade and move horizontally out
- * @GST_AUDIO_BASE_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_IN: fade and move horizontally in
- * @GST_AUDIO_BASE_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_OUT: fade and move vertically out
- * @GST_AUDIO_BASE_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_IN: fade and move vertically in
- *
- * Different types of supported background shading functions.
- */
-typedef enum {
- GST_AUDIO_BASE_VISUALIZER_SHADER_NONE,
- GST_AUDIO_BASE_VISUALIZER_SHADER_FADE,
- GST_AUDIO_BASE_VISUALIZER_SHADER_FADE_AND_MOVE_UP,
- GST_AUDIO_BASE_VISUALIZER_SHADER_FADE_AND_MOVE_DOWN,
- GST_AUDIO_BASE_VISUALIZER_SHADER_FADE_AND_MOVE_LEFT,
- GST_AUDIO_BASE_VISUALIZER_SHADER_FADE_AND_MOVE_RIGHT,
- GST_AUDIO_BASE_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_OUT,
- GST_AUDIO_BASE_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_IN,
- GST_AUDIO_BASE_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_OUT,
- GST_AUDIO_BASE_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_IN
-} GstAudioBaseVisualizerShader;
-
-struct _GstAudioBaseVisualizer
-{
- GstElement parent;
-
- /* pads */
- GstPad *srcpad, *sinkpad;
-
- GstBufferPool *pool;
- GstAdapter *adapter;
- GstBuffer *inbuf;
- guint8 *pixelbuf;
-
- GstAudioBaseVisualizerShader shader_type;
- GstAudioBaseVisualizerShaderFunc shader;
- guint32 shade_amount;
-
- guint spf; /* samples per video frame */
- guint req_spf; /* min samples per frame wanted by the subclass */
-
- /* video state */
- GstVideoInfo vinfo;
- GstVideoFormat video_format;
- gint fps_n, fps_d;
- gint width;
- gint height;
- guint64 frame_duration;
- guint bpf; /* bytes per frame */
-
- /* audio state */
- GstAudioInfo ainfo;
-
- /* configuration mutex */
- GMutex config_lock;
-
- /* QoS stuff *//* with LOCK */
- gdouble proportion;
- GstClockTime earliest_time;
-
- GstSegment segment;
-};
-
-struct _GstAudioBaseVisualizerClass
-{
- GstElementClass parent_class;
-
- /* virtual function, called whenever the format changes */
- gboolean (*setup) (GstAudioBaseVisualizer * scope);
-
- /* virtual function for rendering a frame */
- gboolean (*render) (GstAudioBaseVisualizer * scope, GstBuffer * audio, GstBuffer * video);
-};
-
-GType gst_audio_base_visualizer_get_type (void);
-
-G_END_DECLS
-#endif /* __GST_AUDIO_BASE_VISUALIZER_H__ */
diff --git a/ext/libvisual/gstaudiobasevisualizer.c b/ext/libvisual/gstaudiovisualizer.c
index e61004450..65005f6d5 100644
--- a/ext/libvisual/gstaudiobasevisualizer.c
+++ b/ext/libvisual/gstaudiovisualizer.c
@@ -1,7 +1,7 @@
/* GStreamer
* Copyright (C) <2011> Stefan Kost <ensonic@users.sf.net>
*
- * gstaudiobasevisualizer.h: base class for audio visualisation elements
+ * gstaudiovisualizer.h: base class for audio visualisation elements
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -18,9 +18,9 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
/**
- * SECTION:gstaudiobasevisualizer
+ * SECTION:gstaudiovisualizer
*
- * A basclass for scopes (visualizers). It takes care of re-fitting the
+ * A baseclass for scopes (visualizers). It takes care of re-fitting the
* audio-rate to video-rate and handles renegotiation (downstream video size
* changes).
*
@@ -39,12 +39,12 @@
#include <string.h>
-#include "gstaudiobasevisualizer.h"
+#include "gstaudiovisualizer.h"
-GST_DEBUG_CATEGORY_STATIC (audio_base_visualizer_debug);
-#define GST_CAT_DEFAULT (audio_base_visualizer_debug)
+GST_DEBUG_CATEGORY_STATIC (audio_visualizer_debug);
+#define GST_CAT_DEFAULT (audio_visualizer_debug)
-#define DEFAULT_SHADER GST_AUDIO_BASE_VISUALIZER_SHADER_FADE
+#define DEFAULT_SHADER GST_AUDIO_VISUALIZER_SHADER_FADE
#define DEFAULT_SHADE_AMOUNT 0x000a0a0a
enum
@@ -56,72 +56,72 @@ enum
static GstBaseTransformClass *parent_class = NULL;
-static void gst_audio_base_visualizer_class_init (GstAudioBaseVisualizerClass *
- klass);
-static void gst_audio_base_visualizer_init (GstAudioBaseVisualizer * scope,
- GstAudioBaseVisualizerClass * g_class);
-static void gst_audio_base_visualizer_set_property (GObject * object,
+static void gst_audio_visualizer_class_init (GstAudioVisualizerClass * klass);
+static void gst_audio_visualizer_init (GstAudioVisualizer * scope,
+ GstAudioVisualizerClass * g_class);
+static void gst_audio_visualizer_set_property (GObject * object,
guint prop_id, const GValue * value, GParamSpec * pspec);
-static void gst_audio_base_visualizer_get_property (GObject * object,
+static void gst_audio_visualizer_get_property (GObject * object,
guint prop_id, GValue * value, GParamSpec * pspec);
-static void gst_audio_base_visualizer_dispose (GObject * object);
+static void gst_audio_visualizer_dispose (GObject * object);
-static gboolean gst_audio_base_visualizer_src_negotiate (GstAudioBaseVisualizer
- * scope);
-static gboolean gst_audio_base_visualizer_src_setcaps (GstAudioBaseVisualizer *
+static gboolean gst_audio_visualizer_src_negotiate (GstAudioVisualizer * scope);
+static gboolean gst_audio_visualizer_src_setcaps (GstAudioVisualizer *
scope, GstCaps * caps);
-static gboolean gst_audio_base_visualizer_sink_setcaps (GstAudioBaseVisualizer *
+static gboolean gst_audio_visualizer_sink_setcaps (GstAudioVisualizer *
scope, GstCaps * caps);
-static GstFlowReturn gst_audio_base_visualizer_chain (GstPad * pad,
+static GstFlowReturn gst_audio_visualizer_chain (GstPad * pad,
GstObject * parent, GstBuffer * buffer);
-static gboolean gst_audio_base_visualizer_src_event (GstPad * pad,
+static gboolean gst_audio_visualizer_src_event (GstPad * pad,
GstObject * parent, GstEvent * event);
-static gboolean gst_audio_base_visualizer_sink_event (GstPad * pad,
+static gboolean gst_audio_visualizer_sink_event (GstPad * pad,
GstObject * parent, GstEvent * event);
-static gboolean gst_audio_base_visualizer_src_query (GstPad * pad,
+static gboolean gst_audio_visualizer_src_query (GstPad * pad,
GstObject * parent, GstQuery * query);
-static gboolean gst_audio_base_visualizer_sink_query (GstPad * pad,
+static gboolean gst_audio_visualizer_sink_query (GstPad * pad,
GstObject * parent, GstQuery * query);
-static GstStateChangeReturn gst_audio_base_visualizer_change_state (GstElement *
+static GstStateChangeReturn gst_audio_visualizer_change_state (GstElement *
element, GstStateChange transition);
/* shading functions */
-#define GST_TYPE_AUDIO_BASE_VISUALIZER_SHADER (gst_audio_base_visualizer_shader_get_type())
+#define GST_TYPE_AUDIO_VISUALIZER_SHADER (gst_audio_visualizer_shader_get_type())
static GType
-gst_audio_base_visualizer_shader_get_type (void)
+gst_audio_visualizer_shader_get_type (void)
{
static GType shader_type = 0;
static const GEnumValue shaders[] = {
- {GST_AUDIO_BASE_VISUALIZER_SHADER_NONE, "None", "none"},
- {GST_AUDIO_BASE_VISUALIZER_SHADER_FADE, "Fade", "fade"},
- {GST_AUDIO_BASE_VISUALIZER_SHADER_FADE_AND_MOVE_UP, "Fade and move up",
+ {GST_AUDIO_VISUALIZER_SHADER_NONE, "None", "none"},
+ {GST_AUDIO_VISUALIZER_SHADER_FADE, "Fade", "fade"},
+ {GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_UP, "Fade and move up",
"fade-and-move-up"},
- {GST_AUDIO_BASE_VISUALIZER_SHADER_FADE_AND_MOVE_DOWN, "Fade and move down",
+ {GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_DOWN, "Fade and move down",
"fade-and-move-down"},
- {GST_AUDIO_BASE_VISUALIZER_SHADER_FADE_AND_MOVE_LEFT, "Fade and move left",
+ {GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_LEFT, "Fade and move left",
"fade-and-move-left"},
- {GST_AUDIO_BASE_VISUALIZER_SHADER_FADE_AND_MOVE_RIGHT,
+ {GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_RIGHT,
"Fade and move right",
"fade-and-move-right"},
- {GST_AUDIO_BASE_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_OUT,
+ {GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_OUT,
"Fade and move horizontally out", "fade-and-move-horiz-out"},
- {GST_AUDIO_BASE_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_IN,
+ {GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_IN,
"Fade and move horizontally in", "fade-and-move-horiz-in"},
- {GST_AUDIO_BASE_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_OUT,
+ {GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_OUT,
"Fade and move vertically out", "fade-and-move-vert-out"},
- {GST_AUDIO_BASE_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_IN,
+ {GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_IN,
"Fade and move vertically in", "fade-and-move-vert-in"},
{0, NULL, NULL},
};
if (G_UNLIKELY (shader_type == 0)) {
+ /* TODO: rename when exporting it as a library */
shader_type =
- g_enum_register_static ("GstAudioBaseVisualizerShader", shaders);
+ g_enum_register_static ("GstAudioVisualizerShader-BaseExtVisual",
+ shaders);
}
return shader_type;
}
@@ -180,7 +180,7 @@ G_STMT_START { \
#endif
static void
-shader_fade (GstAudioBaseVisualizer * scope, const guint8 * s, guint8 * d)
+shader_fade (GstAudioVisualizer * scope, const guint8 * s, guint8 * d)
{
guint i, bpf = scope->bpf;
guint r = (scope->shade_amount >> 16) & 0xff;
@@ -193,7 +193,7 @@ shader_fade (GstAudioBaseVisualizer * scope, const guint8 * s, guint8 * d)
}
static void
-shader_fade_and_move_up (GstAudioBaseVisualizer * scope, const guint8 * s,
+shader_fade_and_move_up (GstAudioVisualizer * scope, const guint8 * s,
guint8 * d)
{
guint i, j, bpf = scope->bpf;
@@ -208,7 +208,7 @@ shader_fade_and_move_up (GstAudioBaseVisualizer * scope, const guint8 * s,
}
static void
-shader_fade_and_move_down (GstAudioBaseVisualizer * scope, const guint8 * s,
+shader_fade_and_move_down (GstAudioVisualizer * scope, const guint8 * s,
guint8 * d)
{
guint i, j, bpf = scope->bpf;
@@ -223,7 +223,7 @@ shader_fade_and_move_down (GstAudioBaseVisualizer * scope, const guint8 * s,
}
static void
-shader_fade_and_move_left (GstAudioBaseVisualizer * scope,
+shader_fade_and_move_left (GstAudioVisualizer * scope,
const guint8 * s, guint8 * d)
{
guint i, j, k, bpf = scope->bpf;
@@ -243,7 +243,7 @@ shader_fade_and_move_left (GstAudioBaseVisualizer * scope,
}
static void
-shader_fade_and_move_right (GstAudioBaseVisualizer * scope,
+shader_fade_and_move_right (GstAudioVisualizer * scope,
const guint8 * s, guint8 * d)
{
guint i, j, k, bpf = scope->bpf;
@@ -263,7 +263,7 @@ shader_fade_and_move_right (GstAudioBaseVisualizer * scope,
}
static void
-shader_fade_and_move_horiz_out (GstAudioBaseVisualizer * scope,
+shader_fade_and_move_horiz_out (GstAudioVisualizer * scope,
const guint8 * s, guint8 * d)
{
guint i, j, bpf = scope->bpf / 2;
@@ -283,7 +283,7 @@ shader_fade_and_move_horiz_out (GstAudioBaseVisualizer * scope,
}
static void
-shader_fade_and_move_horiz_in (GstAudioBaseVisualizer * scope,
+shader_fade_and_move_horiz_in (GstAudioVisualizer * scope,
const guint8 * s, guint8 * d)
{
guint i, j, bpf = scope->bpf / 2;
@@ -303,7 +303,7 @@ shader_fade_and_move_horiz_in (GstAudioBaseVisualizer * scope,
}
static void
-shader_fade_and_move_vert_out (GstAudioBaseVisualizer * scope,
+shader_fade_and_move_vert_out (GstAudioVisualizer * scope,
const guint8 * s, guint8 * d)
{
guint i, j, k, bpf = scope->bpf;
@@ -331,7 +331,7 @@ shader_fade_and_move_vert_out (GstAudioBaseVisualizer * scope,
}
static void
-shader_fade_and_move_vert_in (GstAudioBaseVisualizer * scope,
+shader_fade_and_move_vert_in (GstAudioVisualizer * scope,
const guint8 * s, guint8 * d)
{
guint i, j, k, bpf = scope->bpf;
@@ -359,37 +359,37 @@ shader_fade_and_move_vert_in (GstAudioBaseVisualizer * scope,
}
static void
-gst_audio_base_visualizer_change_shader (GstAudioBaseVisualizer * scope)
+gst_audio_visualizer_change_shader (GstAudioVisualizer * scope)
{
switch (scope->shader_type) {
- case GST_AUDIO_BASE_VISUALIZER_SHADER_NONE:
+ case GST_AUDIO_VISUALIZER_SHADER_NONE:
scope->shader = NULL;
break;
- case GST_AUDIO_BASE_VISUALIZER_SHADER_FADE:
+ case GST_AUDIO_VISUALIZER_SHADER_FADE:
scope->shader = shader_fade;
break;
- case GST_AUDIO_BASE_VISUALIZER_SHADER_FADE_AND_MOVE_UP:
+ case GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_UP:
scope->shader = shader_fade_and_move_up;
break;
- case GST_AUDIO_BASE_VISUALIZER_SHADER_FADE_AND_MOVE_DOWN:
+ case GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_DOWN:
scope->shader = shader_fade_and_move_down;
break;
- case GST_AUDIO_BASE_VISUALIZER_SHADER_FADE_AND_MOVE_LEFT:
+ case GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_LEFT:
scope->shader = shader_fade_and_move_left;
break;
- case GST_AUDIO_BASE_VISUALIZER_SHADER_FADE_AND_MOVE_RIGHT:
+ case GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_RIGHT:
scope->shader = shader_fade_and_move_right;
break;
- case GST_AUDIO_BASE_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_OUT:
+ case GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_OUT:
scope->shader = shader_fade_and_move_horiz_out;
break;
- case GST_AUDIO_BASE_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_IN:
+ case GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_IN:
scope->shader = shader_fade_and_move_horiz_in;
break;
- case GST_AUDIO_BASE_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_OUT:
+ case GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_OUT:
scope->shader = shader_fade_and_move_vert_out;
break;
- case GST_AUDIO_BASE_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_IN:
+ case GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_IN:
scope->shader = shader_fade_and_move_vert_in;
break;
default:
@@ -402,54 +402,55 @@ gst_audio_base_visualizer_change_shader (GstAudioBaseVisualizer * scope)
/* base class */
GType
-gst_audio_base_visualizer_get_type (void)
+gst_audio_visualizer_get_type (void)
{
- static volatile gsize audio_base_visualizer_type = 0;
+ static volatile gsize audio_visualizer_type = 0;
- if (g_once_init_enter (&audio_base_visualizer_type)) {
- static const GTypeInfo audio_base_visualizer_info = {
- sizeof (GstAudioBaseVisualizerClass),
+ if (g_once_init_enter (&audio_visualizer_type)) {
+ static const GTypeInfo audio_visualizer_info = {
+ sizeof (GstAudioVisualizerClass),
NULL,
NULL,
- (GClassInitFunc) gst_audio_base_visualizer_class_init,
+ (GClassInitFunc) gst_audio_visualizer_class_init,
NULL,
NULL,
- sizeof (GstAudioBaseVisualizer),
+ sizeof (GstAudioVisualizer),
0,
- (GInstanceInitFunc) gst_audio_base_visualizer_init,
+ (GInstanceInitFunc) gst_audio_visualizer_init,
};
GType _type;
+ /* TODO: rename when exporting it as a library */
_type = g_type_register_static (GST_TYPE_ELEMENT,
- "GstAudioBaseVisualizer", &audio_base_visualizer_info,
+ "GstAudioVisualizer-BaseExtVisual", &audio_visualizer_info,
G_TYPE_FLAG_ABSTRACT);
- g_once_init_leave (&audio_base_visualizer_type, _type);
+ g_once_init_leave (&audio_visualizer_type, _type);
}
- return (GType) audio_base_visualizer_type;
+ return (GType) audio_visualizer_type;
}
static void
-gst_audio_base_visualizer_class_init (GstAudioBaseVisualizerClass * klass)
+gst_audio_visualizer_class_init (GstAudioVisualizerClass * klass)
{
GObjectClass *gobject_class = (GObjectClass *) klass;
GstElementClass *element_class = (GstElementClass *) klass;
parent_class = g_type_class_peek_parent (klass);
- GST_DEBUG_CATEGORY_INIT (audio_base_visualizer_debug, "audiobasevisualizer",
+ GST_DEBUG_CATEGORY_INIT (audio_visualizer_debug, "audiobasevisualizer",
0, "scope audio visualisation base class");
- gobject_class->set_property = gst_audio_base_visualizer_set_property;
- gobject_class->get_property = gst_audio_base_visualizer_get_property;
- gobject_class->dispose = gst_audio_base_visualizer_dispose;
+ gobject_class->set_property = gst_audio_visualizer_set_property;
+ gobject_class->get_property = gst_audio_visualizer_get_property;
+ gobject_class->dispose = gst_audio_visualizer_dispose;
element_class->change_state =
- GST_DEBUG_FUNCPTR (gst_audio_base_visualizer_change_state);
+ GST_DEBUG_FUNCPTR (gst_audio_visualizer_change_state);
g_object_class_install_property (gobject_class, PROP_SHADER,
g_param_spec_enum ("shader", "shader type",
"Shader function to apply on each frame",
- GST_TYPE_AUDIO_BASE_VISUALIZER_SHADER, DEFAULT_SHADER,
+ GST_TYPE_AUDIO_VISUALIZER_SHADER, DEFAULT_SHADER,
G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (gobject_class, PROP_SHADE_AMOUNT,
g_param_spec_uint ("shade-amount", "shade amount",
@@ -459,8 +460,8 @@ gst_audio_base_visualizer_class_init (GstAudioBaseVisualizerClass * klass)
}
static void
-gst_audio_base_visualizer_init (GstAudioBaseVisualizer * scope,
- GstAudioBaseVisualizerClass * g_class)
+gst_audio_visualizer_init (GstAudioVisualizer * scope,
+ GstAudioVisualizerClass * g_class)
{
GstPadTemplate *pad_template;
@@ -470,11 +471,11 @@ gst_audio_base_visualizer_init (GstAudioBaseVisualizer * scope,
g_return_if_fail (pad_template != NULL);
scope->sinkpad = gst_pad_new_from_template (pad_template, "sink");
gst_pad_set_chain_function (scope->sinkpad,
- GST_DEBUG_FUNCPTR (gst_audio_base_visualizer_chain));
+ GST_DEBUG_FUNCPTR (gst_audio_visualizer_chain));
gst_pad_set_event_function (scope->sinkpad,
- GST_DEBUG_FUNCPTR (gst_audio_base_visualizer_sink_event));
+ GST_DEBUG_FUNCPTR (gst_audio_visualizer_sink_event));
gst_pad_set_query_function (scope->sinkpad,
- GST_DEBUG_FUNCPTR (gst_audio_base_visualizer_sink_query));
+ GST_DEBUG_FUNCPTR (gst_audio_visualizer_sink_query));
gst_element_add_pad (GST_ELEMENT (scope), scope->sinkpad);
pad_template =
@@ -482,9 +483,9 @@ gst_audio_base_visualizer_init (GstAudioBaseVisualizer * scope,
g_return_if_fail (pad_template != NULL);
scope->srcpad = gst_pad_new_from_template (pad_template, "src");
gst_pad_set_event_function (scope->srcpad,
- GST_DEBUG_FUNCPTR (gst_audio_base_visualizer_src_event));
+ GST_DEBUG_FUNCPTR (gst_audio_visualizer_src_event));
gst_pad_set_query_function (scope->srcpad,
- GST_DEBUG_FUNCPTR (gst_audio_base_visualizer_src_query));
+ GST_DEBUG_FUNCPTR (gst_audio_visualizer_src_query));
gst_element_add_pad (GST_ELEMENT (scope), scope->srcpad);
scope->adapter = gst_adapter_new ();
@@ -492,7 +493,7 @@ gst_audio_base_visualizer_init (GstAudioBaseVisualizer * scope,
/* properties */
scope->shader_type = DEFAULT_SHADER;
- gst_audio_base_visualizer_change_shader (scope);
+ gst_audio_visualizer_change_shader (scope);
scope->shade_amount = DEFAULT_SHADE_AMOUNT;
/* reset the initial video state */
@@ -510,15 +511,15 @@ gst_audio_base_visualizer_init (GstAudioBaseVisualizer * scope,
}
static void
-gst_audio_base_visualizer_set_property (GObject * object, guint prop_id,
+gst_audio_visualizer_set_property (GObject * object, guint prop_id,
const GValue * value, GParamSpec * pspec)
{
- GstAudioBaseVisualizer *scope = GST_AUDIO_BASE_VISUALIZER (object);
+ GstAudioVisualizer *scope = GST_AUDIO_VISUALIZER (object);
switch (prop_id) {
case PROP_SHADER:
scope->shader_type = g_value_get_enum (value);
- gst_audio_base_visualizer_change_shader (scope);
+ gst_audio_visualizer_change_shader (scope);
break;
case PROP_SHADE_AMOUNT:
scope->shade_amount = g_value_get_uint (value);
@@ -530,10 +531,10 @@ gst_audio_base_visualizer_set_property (GObject * object, guint prop_id,
}
static void
-gst_audio_base_visualizer_get_property (GObject * object, guint prop_id,
+gst_audio_visualizer_get_property (GObject * object, guint prop_id,
GValue * value, GParamSpec * pspec)
{
- GstAudioBaseVisualizer *scope = GST_AUDIO_BASE_VISUALIZER (object);
+ GstAudioVisualizer *scope = GST_AUDIO_VISUALIZER (object);
switch (prop_id) {
case PROP_SHADER:
@@ -549,9 +550,9 @@ gst_audio_base_visualizer_get_property (GObject * object, guint prop_id,
}
static void
-gst_audio_base_visualizer_dispose (GObject * object)
+gst_audio_visualizer_dispose (GObject * object)
{
- GstAudioBaseVisualizer *scope = GST_AUDIO_BASE_VISUALIZER (object);
+ GstAudioVisualizer *scope = GST_AUDIO_VISUALIZER (object);
if (scope->adapter) {
g_object_unref (scope->adapter);
@@ -573,7 +574,7 @@ gst_audio_base_visualizer_dispose (GObject * object)
}
static void
-gst_audio_base_visualizer_reset (GstAudioBaseVisualizer * scope)
+gst_audio_visualizer_reset (GstAudioVisualizer * scope)
{
gst_adapter_clear (scope->adapter);
gst_segment_init (&scope->segment, GST_FORMAT_UNDEFINED);
@@ -585,8 +586,7 @@ gst_audio_base_visualizer_reset (GstAudioBaseVisualizer * scope)
}
static gboolean
-gst_audio_base_visualizer_sink_setcaps (GstAudioBaseVisualizer * scope,
- GstCaps * caps)
+gst_audio_visualizer_sink_setcaps (GstAudioVisualizer * scope, GstCaps * caps)
{
GstAudioInfo info;
gboolean res = TRUE;
@@ -612,11 +612,10 @@ wrong_caps:
}
static gboolean
-gst_audio_base_visualizer_src_setcaps (GstAudioBaseVisualizer * scope,
- GstCaps * caps)
+gst_audio_visualizer_src_setcaps (GstAudioVisualizer * scope, GstCaps * caps)
{
GstVideoInfo info;
- GstAudioBaseVisualizerClass *klass;
+ GstAudioVisualizerClass *klass;
GstStructure *structure;
gboolean res;
@@ -630,7 +629,7 @@ gst_audio_base_visualizer_src_setcaps (GstAudioBaseVisualizer * scope,
&scope->fps_d))
goto wrong_caps;
- klass = GST_AUDIO_BASE_VISUALIZER_CLASS (G_OBJECT_GET_CLASS (scope));
+ klass = GST_AUDIO_VISUALIZER_CLASS (G_OBJECT_GET_CLASS (scope));
scope->vinfo = info;
scope->video_format = info.finfo->format;
@@ -668,7 +667,7 @@ wrong_caps:
}
static gboolean
-gst_audio_base_visualizer_src_negotiate (GstAudioBaseVisualizer * scope)
+gst_audio_visualizer_src_negotiate (GstAudioVisualizer * scope)
{
GstCaps *othercaps, *target;
GstStructure *structure;
@@ -706,7 +705,7 @@ gst_audio_base_visualizer_src_negotiate (GstAudioBaseVisualizer * scope)
GST_DEBUG_OBJECT (scope, "final caps are %" GST_PTR_FORMAT, target);
- gst_audio_base_visualizer_src_setcaps (scope, target);
+ gst_audio_visualizer_src_setcaps (scope, target);
/* try to get a bufferpool now */
/* find a pool for the negotiated caps now */
@@ -757,7 +756,7 @@ no_format:
/* make sure we are negotiated */
static GstFlowReturn
-gst_audio_base_visualizer_ensure_negotiated (GstAudioBaseVisualizer * scope)
+gst_audio_visualizer_ensure_negotiated (GstAudioVisualizer * scope)
{
gboolean reconfigure;
@@ -765,29 +764,29 @@ gst_audio_base_visualizer_ensure_negotiated (GstAudioBaseVisualizer * scope)
/* we don't know an output format yet, pick one */
if (reconfigure || !gst_pad_has_current_caps (scope->srcpad)) {
- if (!gst_audio_base_visualizer_src_negotiate (scope))
+ if (!gst_audio_visualizer_src_negotiate (scope))
return GST_FLOW_NOT_NEGOTIATED;
}
return GST_FLOW_OK;
}
static GstFlowReturn
-gst_audio_base_visualizer_chain (GstPad * pad, GstObject * parent,
+gst_audio_visualizer_chain (GstPad * pad, GstObject * parent,
GstBuffer * buffer)
{
GstFlowReturn ret = GST_FLOW_OK;
- GstAudioBaseVisualizer *scope;
- GstAudioBaseVisualizerClass *klass;
+ GstAudioVisualizer *scope;
+ GstAudioVisualizerClass *klass;
GstBuffer *inbuf;
guint64 dist, ts;
guint avail, sbpf;
gpointer adata;
- gboolean (*render) (GstAudioBaseVisualizer * scope, GstBuffer * audio,
+ gboolean (*render) (GstAudioVisualizer * scope, GstBuffer * audio,
GstBuffer * video);
gint bps, channels, rate;
- scope = GST_AUDIO_BASE_VISUALIZER (parent);
- klass = GST_AUDIO_BASE_VISUALIZER_CLASS (G_OBJECT_GET_CLASS (scope));
+ scope = GST_AUDIO_VISUALIZER (parent);
+ klass = GST_AUDIO_VISUALIZER_CLASS (G_OBJECT_GET_CLASS (scope));
render = klass->render;
@@ -799,7 +798,7 @@ gst_audio_base_visualizer_chain (GstPad * pad, GstObject * parent,
}
/* Make sure have an output format */
- ret = gst_audio_base_visualizer_ensure_negotiated (scope);
+ ret = gst_audio_visualizer_ensure_negotiated (scope);
if (ret != GST_FLOW_OK) {
gst_buffer_unref (buffer);
goto beach;
@@ -938,13 +937,13 @@ beach:
}
static gboolean
-gst_audio_base_visualizer_src_event (GstPad * pad, GstObject * parent,
+gst_audio_visualizer_src_event (GstPad * pad, GstObject * parent,
GstEvent * event)
{
gboolean res;
- GstAudioBaseVisualizer *scope;
+ GstAudioVisualizer *scope;
- scope = GST_AUDIO_BASE_VISUALIZER (parent);
+ scope = GST_AUDIO_VISUALIZER (parent);
switch (GST_EVENT_TYPE (event)) {
case GST_EVENT_QOS:
@@ -983,13 +982,13 @@ gst_audio_base_visualizer_src_event (GstPad * pad, GstObject * parent,
}
static gboolean
-gst_audio_base_visualizer_sink_event (GstPad * pad, GstObject * parent,
+gst_audio_visualizer_sink_event (GstPad * pad, GstObject * parent,
GstEvent * event)
{
gboolean res;
- GstAudioBaseVisualizer *scope;
+ GstAudioVisualizer *scope;
- scope = GST_AUDIO_BASE_VISUALIZER (parent);
+ scope = GST_AUDIO_VISUALIZER (parent);
switch (GST_EVENT_TYPE (event)) {
case GST_EVENT_CAPS:
@@ -997,14 +996,14 @@ gst_audio_base_visualizer_sink_event (GstPad * pad, GstObject * parent,
GstCaps *caps;
gst_event_parse_caps (event, &caps);
- res = gst_audio_base_visualizer_sink_setcaps (scope, caps);
+ res = gst_audio_visualizer_sink_setcaps (scope, caps);
break;
}
case GST_EVENT_FLUSH_START:
res = gst_pad_push_event (scope->srcpad, event);
break;
case GST_EVENT_FLUSH_STOP:
- gst_audio_base_visualizer_reset (scope);
+ gst_audio_visualizer_reset (scope);
res = gst_pad_push_event (scope->srcpad, event);
break;
case GST_EVENT_SEGMENT:
@@ -1026,13 +1025,13 @@ gst_audio_base_visualizer_sink_event (GstPad * pad, GstObject * parent,
}
static gboolean
-gst_audio_base_visualizer_src_query (GstPad * pad, GstObject * parent,
+gst_audio_visualizer_src_query (GstPad * pad, GstObject * parent,
GstQuery * query)
{
gboolean res = FALSE;
- GstAudioBaseVisualizer *scope;
+ GstAudioVisualizer *scope;
- scope = GST_AUDIO_BASE_VISUALIZER (parent);
+ scope = GST_AUDIO_VISUALIZER (parent);
switch (GST_QUERY_TYPE (query)) {
case GST_QUERY_LATENCY:
@@ -1085,7 +1084,7 @@ gst_audio_base_visualizer_src_query (GstPad * pad, GstObject * parent,
}
static gboolean
-gst_audio_base_visualizer_sink_query (GstPad * pad, GstObject * parent,
+gst_audio_visualizer_sink_query (GstPad * pad, GstObject * parent,
GstQuery * query)
{
gboolean res = FALSE;
@@ -1099,17 +1098,17 @@ gst_audio_base_visualizer_sink_query (GstPad * pad, GstObject * parent,
}
static GstStateChangeReturn
-gst_audio_base_visualizer_change_state (GstElement * element,
+gst_audio_visualizer_change_state (GstElement * element,
GstStateChange transition)
{
GstStateChangeReturn ret;
- GstAudioBaseVisualizer *scope;
+ GstAudioVisualizer *scope;
- scope = GST_AUDIO_BASE_VISUALIZER (element);
+ scope = GST_AUDIO_VISUALIZER (element);
switch (transition) {
case GST_STATE_CHANGE_READY_TO_PAUSED:
- gst_audio_base_visualizer_reset (scope);
+ gst_audio_visualizer_reset (scope);
break;
default:
break;
diff --git a/ext/libvisual/gstaudiovisualizer.h b/ext/libvisual/gstaudiovisualizer.h
new file mode 100644
index 000000000..efe3a8cc7
--- /dev/null
+++ b/ext/libvisual/gstaudiovisualizer.h
@@ -0,0 +1,125 @@
+/* GStreamer
+ * Copyright (C) <2011> Stefan Kost <ensonic@users.sf.net>
+ *
+ * gstaudiovisualizer.c: base class for audio visualisation elements
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GST_AUDIO_VISUALIZER_H__
+#define __GST_AUDIO_VISUALIZER_H__
+
+#include <gst/gst.h>
+#include <gst/base/gstbasetransform.h>
+
+#include <gst/video/video.h>
+#include <gst/audio/audio.h>
+#include <gst/base/gstadapter.h>
+
+G_BEGIN_DECLS
+#define GST_TYPE_AUDIO_VISUALIZER (gst_audio_visualizer_get_type())
+#define GST_AUDIO_VISUALIZER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_AUDIO_VISUALIZER,GstAudioVisualizer))
+#define GST_AUDIO_VISUALIZER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_AUDIO_VISUALIZER,GstAudioVisualizerClass))
+#define GST_IS_SYNAESTHESIA(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_AUDIO_VISUALIZER))
+#define GST_IS_SYNAESTHESIA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_AUDIO_VISUALIZER))
+typedef struct _GstAudioVisualizer GstAudioVisualizer;
+typedef struct _GstAudioVisualizerClass GstAudioVisualizerClass;
+
+typedef void (*GstAudioVisualizerShaderFunc)(GstAudioVisualizer *scope, const guint8 *s, guint8 *d);
+
+/**
+ * GstAudioVisualizerShader:
+ * @GST_AUDIO_VISUALIZER_SHADER_NONE: no shading
+ * @GST_AUDIO_VISUALIZER_SHADER_FADE: plain fading
+ * @GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_UP: fade and move up
+ * @GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_DOWN: fade and move down
+ * @GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_LEFT: fade and move left
+ * @GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_RIGHT: fade and move right
+ * @GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_OUT: fade and move horizontally out
+ * @GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_IN: fade and move horizontally in
+ * @GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_OUT: fade and move vertically out
+ * @GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_IN: fade and move vertically in
+ *
+ * Different types of supported background shading functions.
+ */
+typedef enum {
+ GST_AUDIO_VISUALIZER_SHADER_NONE,
+ GST_AUDIO_VISUALIZER_SHADER_FADE,
+ GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_UP,
+ GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_DOWN,
+ GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_LEFT,
+ GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_RIGHT,
+ GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_OUT,
+ GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_HORIZ_IN,
+ GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_OUT,
+ GST_AUDIO_VISUALIZER_SHADER_FADE_AND_MOVE_VERT_IN
+} GstAudioVisualizerShader;
+
+struct _GstAudioVisualizer
+{
+ GstElement parent;
+
+ /* pads */
+ GstPad *srcpad, *sinkpad;
+
+ GstBufferPool *pool;
+ GstAdapter *adapter;
+ GstBuffer *inbuf;
+ guint8 *pixelbuf;
+
+ GstAudioVisualizerShader shader_type;
+ GstAudioVisualizerShaderFunc shader;
+ guint32 shade_amount;
+
+ guint spf; /* samples per video frame */
+ guint req_spf; /* min samples per frame wanted by the subclass */
+
+ /* video state */
+ GstVideoInfo vinfo;
+ GstVideoFormat video_format;
+ gint fps_n, fps_d;
+ gint width;
+ gint height;
+ guint64 frame_duration;
+ guint bpf; /* bytes per frame */
+
+ /* audio state */
+ GstAudioInfo ainfo;
+
+ /* configuration mutex */
+ GMutex config_lock;
+
+ /* QoS stuff *//* with LOCK */
+ gdouble proportion;
+ GstClockTime earliest_time;
+
+ GstSegment segment;
+};
+
+struct _GstAudioVisualizerClass
+{
+ GstElementClass parent_class;
+
+ /* virtual function, called whenever the format changes */
+ gboolean (*setup) (GstAudioVisualizer * scope);
+
+ /* virtual function for rendering a frame */
+ gboolean (*render) (GstAudioVisualizer * scope, GstBuffer * audio, GstBuffer * video);
+};
+
+GType gst_audio_visualizer_get_type (void);
+
+G_END_DECLS
+#endif /* __GST_AUDIO_VISUALIZER_H__ */
diff --git a/ext/libvisual/visual.c b/ext/libvisual/visual.c
index 2b093f11c..fcdb8f490 100644
--- a/ext/libvisual/visual.c
+++ b/ext/libvisual/visual.c
@@ -61,8 +61,8 @@ static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink",
static void gst_visual_init (GstVisual * visual);
static void gst_visual_finalize (GObject * object);
-static gboolean gst_visual_setup (GstAudioBaseVisualizer * bscope);
-static gboolean gst_visual_render (GstAudioBaseVisualizer * bscope,
+static gboolean gst_visual_setup (GstAudioVisualizer * bscope);
+static gboolean gst_visual_render (GstAudioVisualizer * bscope,
GstBuffer * audio, GstBuffer * video);
static GstElementClass *parent_class = NULL;
@@ -86,7 +86,7 @@ gst_visual_get_type (void)
};
type =
- g_type_register_static (GST_TYPE_AUDIO_BASE_VISUALIZER, "GstVisual",
+ g_type_register_static (GST_TYPE_AUDIO_VISUALIZER, "GstVisual",
&info, 0);
}
return type;
@@ -97,8 +97,7 @@ gst_visual_class_init (gpointer g_class, gpointer class_data)
{
GObjectClass *gobject_class = (GObjectClass *) g_class;
GstElementClass *element_class = (GstElementClass *) g_class;
- GstAudioBaseVisualizerClass *scope_class =
- (GstAudioBaseVisualizerClass *) g_class;
+ GstAudioVisualizerClass *scope_class = (GstAudioVisualizerClass *) g_class;
GstVisualClass *klass = (GstVisualClass *) g_class;
klass->plugin = class_data;
@@ -162,7 +161,7 @@ gst_visual_finalize (GObject * object)
}
static gboolean
-gst_visual_setup (GstAudioBaseVisualizer * bscope)
+gst_visual_setup (GstAudioVisualizer * bscope)
{
GstVisual *visual = GST_VISUAL (bscope);
gint pitch, depth;
@@ -216,7 +215,7 @@ no_realize:
}
static gboolean
-gst_visual_render (GstAudioBaseVisualizer * bscope, GstBuffer * audio,
+gst_visual_render (GstAudioVisualizer * bscope, GstBuffer * audio,
GstBuffer * video)
{
GstVisual *visual = GST_VISUAL (bscope);
diff --git a/ext/libvisual/visual.h b/ext/libvisual/visual.h
index 8daf743dd..97f735433 100644
--- a/ext/libvisual/visual.h
+++ b/ext/libvisual/visual.h
@@ -28,7 +28,7 @@
#include <gst/audio/audio.h>
#include <libvisual/libvisual.h>
-#include "gstaudiobasevisualizer.h"
+#include "gstaudiovisualizer.h"
G_BEGIN_DECLS
@@ -44,7 +44,7 @@ typedef struct _GstVisualClass GstVisualClass;
struct _GstVisual
{
- GstAudioBaseVisualizer element;
+ GstAudioVisualizer element;
/* libvisual stuff */
VisAudio *audio;
@@ -54,7 +54,7 @@ struct _GstVisual
struct _GstVisualClass
{
- GstAudioBaseVisualizerClass parent_class;
+ GstAudioVisualizerClass parent_class;
VisPluginRef *plugin;
};