+2005-09-01 Thomas Vander Stichele <thomas at apestaart dot org>
+
+ * Makefile.am:
+ * configure.ac:
+ add docs to build
+ * common/plugins.xsl:
+ wrap Description into a refsect2
+ * docs/Makefile.am:
+ * docs/plugins/Makefile.am:
+ * docs/plugins/gst-plugins-good-plugins-docs.sgml:
+ * docs/plugins/gst-plugins-good-plugins-sections.txt:
+ * gst/goom/Makefile.am:
+ * gst/goom/gstgoom.c: (gst_goom_get_type), (gst_goom_base_init),
+ (gst_goom_class_init), (gst_goom_init), (gst_goom_dispose),
+ (gst_goom_sink_setcaps), (gst_goom_src_setcaps),
+ (gst_goom_src_negotiate), (gst_goom_event), (gst_goom_chain),
+ (gst_goom_change_state):
+ * gst/goom/gstgoom.h:
+ GstGOOM -> GstGoom
+ add an example launch line
+ * gst/level/gstlevel.h:
+ * gst/monoscope/gstmonoscope.c:
+ cleanups
+
2005-08-30 Thomas Vander Stichele <thomas at apestaart dot org>
* configure.ac:
* Boston, MA 02111-1307, USA.
*/
+/**
+ * SECTION:element-goom
+ * @see_also: synaesthesia
+ *
+ * <refsect2>
+ * <title>Example launch line</title>
+ * <para>
+ * <programlisting>
+ * gst-launch -v sinesrc ! goom ! ffmpegcolorspace ! xvimagesink
+ * </programlisting>
+ * </para>
+ * </refsect2>
+ */
+
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <string.h>
#include <gst/gst.h>
+#include "gstgoom.h"
#include <gst/video/video.h>
-#include <gst/base/gstadapter.h>
#include "goom_core.h"
GST_DEBUG_CATEGORY_STATIC (goom_debug);
#define GST_CAT_DEFAULT goom_debug
-#define GOOM_SAMPLES 512
-
-#define GST_TYPE_GOOM (gst_goom_get_type())
-#define GST_GOOM(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_GOOM,GstGOOM))
-#define GST_GOOM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_GOOM,GstGOOM))
-#define GST_IS_GOOM(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_GOOM))
-#define GST_IS_GOOM_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_GOOM))
-
-typedef struct _GstGOOM GstGOOM;
-typedef struct _GstGOOMClass GstGOOMClass;
-
-struct _GstGOOM
-{
- GstElement element;
-
- /* pads */
- GstPad *sinkpad, *srcpad;
- GstAdapter *adapter;
-
- /* input tracking */
- gint sample_rate;
-
- gint16 datain[2][GOOM_SAMPLES];
- /* the timestamp of the next frame */
- GstClockTime audio_basetime;
- guint64 samples_consumed;
-
- /* video state */
- gdouble fps;
- gint width;
- gint height;
- gint channels;
-
- gboolean disposed;
-};
-
-struct _GstGOOMClass
-{
- GstElementClass parent_class;
-};
-
-GType gst_goom_get_type (void);
-
-
/* elementfactory information */
static GstElementDetails gst_goom_details = {
"GOOM: what a GOOM!",
);
-static void gst_goom_class_init (GstGOOMClass * klass);
-static void gst_goom_base_init (GstGOOMClass * klass);
-static void gst_goom_init (GstGOOM * goom);
+static void gst_goom_class_init (GstGoomClass * klass);
+static void gst_goom_base_init (GstGoomClass * klass);
+static void gst_goom_init (GstGoom * goom);
static void gst_goom_dispose (GObject * object);
static GstElementStateReturn gst_goom_change_state (GstElement * element);
if (!type) {
static const GTypeInfo info = {
- sizeof (GstGOOMClass),
+ sizeof (GstGoomClass),
(GBaseInitFunc) gst_goom_base_init,
NULL,
(GClassInitFunc) gst_goom_class_init,
NULL,
NULL,
- sizeof (GstGOOM),
+ sizeof (GstGoom),
0,
(GInstanceInitFunc) gst_goom_init,
};
- type = g_type_register_static (GST_TYPE_ELEMENT, "GstGOOM", &info, 0);
+ type = g_type_register_static (GST_TYPE_ELEMENT, "GstGoom", &info, 0);
}
return type;
}
static void
-gst_goom_base_init (GstGOOMClass * klass)
+gst_goom_base_init (GstGoomClass * klass)
{
GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
}
static void
-gst_goom_class_init (GstGOOMClass * klass)
+gst_goom_class_init (GstGoomClass * klass)
{
GObjectClass *gobject_class;
GstElementClass *gstelement_class;
}
static void
-gst_goom_init (GstGOOM * goom)
+gst_goom_init (GstGoom * goom)
{
/* create the sink and src pads */
goom->sinkpad =
static void
gst_goom_dispose (GObject * object)
{
- GstGOOM *goom = GST_GOOM (object);
+ GstGoom *goom = GST_GOOM (object);
if (!goom->disposed) {
goom_close ();
static gboolean
gst_goom_sink_setcaps (GstPad * pad, GstCaps * caps)
{
- GstGOOM *goom;
+ GstGoom *goom;
GstStructure *structure;
goom = GST_GOOM (GST_PAD_PARENT (pad));
static gboolean
gst_goom_src_setcaps (GstPad * pad, GstCaps * caps)
{
- GstGOOM *goom;
+ GstGoom *goom;
GstStructure *structure;
goom = GST_GOOM (GST_PAD_PARENT (pad));
}
static gboolean
-gst_goom_src_negotiate (GstGOOM * goom)
+gst_goom_src_negotiate (GstGoom * goom)
{
GstCaps *othercaps, *target, *intersect;
GstStructure *structure;
gst_goom_event (GstPad * pad, GstEvent * event)
{
gboolean res;
- GstGOOM *goom;
+ GstGoom *goom;
goom = GST_GOOM (GST_PAD_PARENT (pad));
static GstFlowReturn
gst_goom_chain (GstPad * pad, GstBuffer * bufin)
{
- GstGOOM *goom;
+ GstGoom *goom;
guint32 bytesperread;
gint16 *data;
gint samples_per_frame;
not_negotiated:
{
GST_ELEMENT_ERROR (goom, CORE, NEGOTIATION, (NULL),
- ("Format wasn't negotiated before chain function"));
+ ("Format wasn't negotiated before chain function."));
gst_buffer_unref (bufin);
return GST_FLOW_NOT_NEGOTIATED;
}
no_format:
{
GST_ELEMENT_ERROR (goom, CORE, NEGOTIATION, (NULL),
- ("Could not negotiate format"));
+ ("Could not negotiate format on source pad."));
gst_buffer_unref (bufin);
return GST_FLOW_ERROR;
}
static GstElementStateReturn
gst_goom_change_state (GstElement * element)
{
- GstGOOM *goom = GST_GOOM (element);
+ GstGoom *goom = GST_GOOM (element);
gint transition;
GstElementStateReturn ret;
--- /dev/null
+/* gstgoom.c: implementation of goom drawing element
+ * Copyright (C) <2001> Richard Boulton <richard@tartarus.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GST_GOOM_H__
+#define __GST_GOOM_H__
+
+G_BEGIN_DECLS
+
+#include <gst/gst.h>
+#include <gst/base/gstadapter.h>
+
+#define GOOM_SAMPLES 512
+
+#define GST_TYPE_GOOM (gst_goom_get_type())
+#define GST_GOOM(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_GOOM,GstGoom))
+#define GST_GOOM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_GOOM,GstGoom))
+#define GST_IS_GOOM(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_GOOM))
+#define GST_IS_GOOM_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_GOOM))
+
+typedef struct _GstGoom GstGoom;
+typedef struct _GstGoomClass GstGoomClass;
+
+struct _GstGoom
+{
+ GstElement element;
+
+ /* pads */
+ GstPad *sinkpad, *srcpad;
+ GstAdapter *adapter;
+
+ /* input tracking */
+ gint sample_rate;
+
+ gint16 datain[2][GOOM_SAMPLES];
+ /* the timestamp of the next frame */
+ GstClockTime audio_basetime;
+ guint64 samples_consumed;
+
+ /* video state */
+ gdouble fps;
+ gint width;
+ gint height;
+ gint channels;
+
+ gboolean disposed;
+};
+
+struct _GstGoomClass
+{
+ GstElementClass parent_class;
+};
+
+GType gst_goom_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GST_GOOM_H__ */
+