diff --git a/Makefile.am b/Makefile.am index 47cade25c1..454e773356 100644 --- a/Makefile.am +++ b/Makefile.am @@ -2,11 +2,11 @@ DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc SUBDIRS = \ gst-libs gst sys ext pkgconfig \ - m4 common docs tests po + m4 common docs tests po tools DIST_SUBDIRS = \ gst gst-libs sys ext pkgconfig \ - m4 common docs tests po + m4 common docs tests po tools # include before EXTRA_DIST for win32 assignment include $(top_srcdir)/common/win32.mak diff --git a/configure.ac b/configure.ac index 56ebcfa641..c53775cd0b 100644 --- a/configure.ac +++ b/configure.ac @@ -1754,6 +1754,7 @@ docs/version.entities pkgconfig/Makefile pkgconfig/gstreamer-plugins-bad.pc pkgconfig/gstreamer-plugins-bad-uninstalled.pc +tools/Makefile m4/Makefile win32/common/config.h ) diff --git a/tools/Makefile.am b/tools/Makefile.am new file mode 100644 index 0000000000..54cdae13ec --- /dev/null +++ b/tools/Makefile.am @@ -0,0 +1,20 @@ + +EXTRA_DIST = \ + element-maker \ + base.c \ + gobject.c \ + gstaudiofilter.c \ + gstaudiosink.c \ + gstaudiosrc.c \ + gstbaseaudiosink.c \ + gstbaseaudiosrc.c \ + gstbasertpdepayload.c \ + gstbasertppayload.c \ + gstbasesink.c \ + gstbasesrc.c \ + gstbasetransform.c \ + gstcddabasesrc.c \ + gstelement.c \ + gstpushsrc.c \ + gsttagdemux.c \ + gstvideosink.c diff --git a/tools/base.c b/tools/base.c new file mode 100644 index 0000000000..76b3315a66 --- /dev/null +++ b/tools/base.c @@ -0,0 +1,33 @@ + +% copyright +/* GStreamer + * Copyright (C) 2010 FIXME + * + * 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. + */ + +% includes +#include +% part2 + +enum +{ + ARG_0 +}; + + +% end + diff --git a/tools/element-maker b/tools/element-maker new file mode 100755 index 0000000000..1398b042b0 --- /dev/null +++ b/tools/element-maker @@ -0,0 +1,233 @@ +#!/bin/sh + +class=basetransform + +GST_IS_REPLACE=MY_IS_EXAMPLE +GST_REPLACE=MY_EXAMPLE +GST_TYPE_REPLACE=MY_TYPE_EXAMPLE +GstReplace=MyExample +gst_replace=my_example +gstreplace=myexample +replace=example + +source=gst$class.c +pkg=`grep -A 10000 '^% pkg-config' $source | tail -n +2|grep -m 1 -B 10000 '^%'|head -n -1` +GST_TYPE_BASE_REPLACE=`grep -A 10000 '^% TYPE_CLASS_NAME' $source | tail -n +2|grep -m 1 -B 10000 '^%'|head -n -1` +GstBaseReplace=`grep -A 10000 '^% ClassName' $source | tail -n +2|grep -m 1 -B 10000 '^%'|head -n -1` + +generate () +{ + +grep -A 10000 '^% copyright' base.c | tail -n +2|grep -m 1 -B 10000 '^%'|head -n -1 + +cat <"); +} + +static void +gst_replace_class_init (GstReplaceClass * klass) +{ +EOF +grep -A 10000 '^% declare-class' base.c | tail -n +2|grep -m 1 -B 10000 '^%'|head -n -1 +grep -A 10000 '^% declare-class' gobject.c | tail -n +2|grep -m 1 -B 10000 '^%'|head -n -1 +grep -A 10000 '^% declare-class' $source | tail -n +2|grep -m 1 -B 10000 '^%'|head -n -1 + +echo + +grep -A 10000 '^% set-methods' base.c | tail -n +2|grep -m 1 -B 10000 '^%'|head -n -1 +grep -A 10000 '^% set-methods' gobject.c | tail -n +2|grep -m 1 -B 10000 '^%'|head -n -1 +grep -A 10000 '^% set-methods' $source | tail -n +2|grep -m 1 -B 10000 '^%'|head -n -1 + +cat <myexample.c + +generate_header | sed \ + -e "s/GST_BASE_REPLACE/$GST_BASE_REPLACE/g" \ + -e "s/GST_TYPE_BASE_REPLACE/$GST_TYPE_BASE_REPLACE/g" \ + -e "s/GstBaseReplace/$GstBaseReplace/g" \ + -e "s/GST_IS_REPLACE/$GST_IS_REPLACE/g" \ + -e "s/GST_REPLACE/$GST_REPLACE/g" \ + -e "s/GST_TYPE_REPLACE/$GST_TYPE_REPLACE/g" \ + -e "s/GstReplace/$GstReplace/g" \ + -e "s/gst_replace/$gst_replace/g" \ + -e "s/gstreplace/$gstreplace/g" \ + -e "s/replace/$replace/g" >myexample.h + +gst-indent myexample.c + +echo pkg is $pkg + +gcc -Wall $(pkg-config --cflags gstreamer-0.10 $pkg) -c -o myexample.o myexample.c +gcc -shared -o myexample.so myexample.o $(pkg-config --libs gstreamer-0.10 $pkg) + + diff --git a/tools/gobject.c b/tools/gobject.c new file mode 100644 index 0000000000..cae4facc97 --- /dev/null +++ b/tools/gobject.c @@ -0,0 +1,80 @@ + +% includes +% prototypes + +static void gst_replace_set_property (GObject * object, + guint property_id, const GValue * value, GParamSpec * pspec); +static void gst_replace_get_property (GObject * object, + guint property_id, GValue * value, GParamSpec * pspec); +static void gst_replace_dispose (GObject * object); +static void gst_replace_finalize (GObject * object); + +% declare-class + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); +% set-methods + gobject_class->set_property = gst_replace_set_property; + gobject_class->get_property = gst_replace_get_property; + gobject_class->dispose = gst_replace_dispose; + gobject_class->finalize = gst_replace_finalize; +% methods + +void +gst_replace_set_property (GObject * object, guint property_id, + const GValue * value, GParamSpec * pspec) +{ + GstReplace *replace; + + g_return_if_fail (GST_IS_REPLACE (object)); + replace = GST_REPLACE (object); + + switch (property_id) { + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +void +gst_replace_get_property (GObject * object, guint property_id, + GValue * value, GParamSpec * pspec) +{ + GstReplace *replace; + + g_return_if_fail (GST_IS_REPLACE (object)); + replace = GST_REPLACE (object); + + switch (property_id) { + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +void +gst_replace_dispose (GObject * object) +{ + GstReplace *replace; + + g_return_if_fail (GST_IS_REPLACE (object)); + replace = GST_REPLACE (object); + + /* clean up as possible. may be called multiple times */ + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + +void +gst_replace_finalize (GObject * object) +{ + GstReplace *replace; + + g_return_if_fail (GST_IS_REPLACE (object)); + replace = GST_REPLACE (object); + + /* clean up object here */ + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + +% end + diff --git a/tools/gstaudiofilter.c b/tools/gstaudiofilter.c new file mode 100644 index 0000000000..018128153e --- /dev/null +++ b/tools/gstaudiofilter.c @@ -0,0 +1,23 @@ +% ClassName +GstAudioFilter +% TYPE_CLASS_NAME +GST_TYPE_AUDIO_FILTER +% pkg-config +gstreamer-audio-0.10 +% includes +#include +% prototypes +static gboolean +gst_replace_setup (GstAudioFilter * filter, GstRingBufferSpec * format); +% declare-class + GstAudioFilter *audio_filter_class = GST_AUDIO_FILTER (klass); +% set-methods + audio_filter_class-> = GST_DEBUG_FUNCPTR (gst_replace_); +% methods + +static gboolean +gst_replace_setup (GstAudioFilter * filter, GstRingBufferSpec * format) +{ + +} +% end diff --git a/tools/gstaudiosink.c b/tools/gstaudiosink.c new file mode 100644 index 0000000000..9c2a58c7bf --- /dev/null +++ b/tools/gstaudiosink.c @@ -0,0 +1,58 @@ +% ClassName +GstAudioSink +% TYPE_CLASS_NAME +GST_TYPE_AUDIO_SINK +% pkg-config +gstreamer-audio-0.10 +% includes +#include +% prototypes +static gboolean gst_replace_open (GstAudioSrc * src); +static gboolean +gst_replace_prepare (GstAudioSrc * src, GstRingBufferSpec * spec); +static gboolean gst_replace_unprepare (GstAudioSrc * src); +static gboolean gst_replace_close (GstAudioSrc * src); +static guint gst_replace_read (GstAudioSrc * src, gpointer data, guint length); +static guint gst_replace_delay (GstAudioSrc * src); +static void gst_replace_reset (GstAudioSrc * src); +% declare-class + GstAudioSink *audio_sink_class = GST_AUDIO_SINK (klass); +% set-methods + audio_sink_class-> = GST_DEBUG_FUNCPTR (gst_replace_); +% methods + +static gboolean +gst_replace_open (GstAudioSrc * src) +{ +} + +static gboolean +gst_replace_prepare (GstAudioSrc * src, GstRingBufferSpec * spec) +{ +} + +static gboolean +gst_replace_unprepare (GstAudioSrc * src) +{ +} + +static gboolean +gst_replace_close (GstAudioSrc * src) +{ +} + +static guint +gst_replace_read (GstAudioSrc * src, gpointer data, guint length) +{ +} + +static guint +gst_replace_delay (GstAudioSrc * src) +{ +} + +static void +gst_replace_reset (GstAudioSrc * src) +{ +} +% end diff --git a/tools/gstaudiosrc.c b/tools/gstaudiosrc.c new file mode 100644 index 0000000000..95f20e7523 --- /dev/null +++ b/tools/gstaudiosrc.c @@ -0,0 +1,59 @@ +% ClassName +GstAudioSrc +% TYPE_CLASS_NAME +GST_TYPE_AUDIO_SRC +% pkg-config +gstreamer-audio-0.10 +% includes +#include +% prototypes +static gboolean gst_replace_open (GstAudioSink * sink); +static gboolean +gst_replace_prepare (GstAudioSink * sink, GstRingBufferSpec * spec); +static gboolean gst_replace_unprepare (GstAudioSink * sink); +static gboolean gst_replace_close (GstAudioSink * sink); +static guint +gst_replace_write (GstAudioSink * sink, gpointer data, guint length); +static guint gst_replace_delay (GstAudioSink * sink); +static void gst_replace_reset (GstAudioSink * sink); +% declare-class + GstAudioSrc *audio_src_class = GST_AUDIO_SRC (klass); +% set-methods + audio_src_class-> = GST_DEBUG_FUNCPTR (gst_replace_); +% methods + +static gboolean +gst_replace_open (GstAudioSink * sink) +{ +} + +static gboolean +gst_replace_prepare (GstAudioSink * sink, GstRingBufferSpec * spec) +{ +} + +static gboolean +gst_replace_unprepare (GstAudioSink * sink) +{ +} + +static gboolean +gst_replace_close (GstAudioSink * sink) +{ +} + +static guint +gst_replace_write (GstAudioSink * sink, gpointer data, guint length) +{ +} + +static guint +gst_replace_delay (GstAudioSink * sink) +{ +} + +static void +gst_replace_reset (GstAudioSink * sink) +{ +} +% end diff --git a/tools/gstbaseaudiosink.c b/tools/gstbaseaudiosink.c new file mode 100644 index 0000000000..2f36e84c97 --- /dev/null +++ b/tools/gstbaseaudiosink.c @@ -0,0 +1,22 @@ +% ClassName +GstBaseAudioSink +% TYPE_CLASS_NAME +GST_TYPE_BASE_AUDIO_SINK +% pkg-config +gstreamer-audio-0.10 +% includes +#include +% prototypes +static GstRingBuffer *gst_replace_create_ringbuffer (GstBaseAudioSink * sink); +% declare-class + GstBaseAudioSink *base_audio_sink_class = GST_BASE_AUDIO_SINK (klass); +% set-methods + base_audio_sink_class-> = GST_DEBUG_FUNCPTR (gst_replace_); +% methods + +static GstRingBuffer * +gst_replace_create_ringbuffer (GstBaseAudioSink * sink) +{ + +} +% end diff --git a/tools/gstbaseaudiosrc.c b/tools/gstbaseaudiosrc.c new file mode 100644 index 0000000000..c87bb32c02 --- /dev/null +++ b/tools/gstbaseaudiosrc.c @@ -0,0 +1,22 @@ +% ClassName +GstBaseAudioSrc +% TYPE_CLASS_NAME +GST_TYPE_BASE_AUDIO_SRC +% pkg-config +gstreamer-audio-0.10 +% includes +#include +% prototypes +static GstRingBuffer *gst_replace_create_ringbuffer (GstBaseAudioSrc * src); +% declare-class + GstBaseAudioSrc *base_audio_src_class = GST_BASE_AUDIO_SRC (klass); +% set-methods + base_audio_src_class-> = GST_DEBUG_FUNCPTR (gst_replace_); +% methods + +static GstRingBuffer * +gst_replace_create_ringbuffer (GstBaseAudioSrc * src) +{ + +} +% end diff --git a/tools/gstbasertpdepayload.c b/tools/gstbasertpdepayload.c new file mode 100644 index 0000000000..b0810be259 --- /dev/null +++ b/tools/gstbasertpdepayload.c @@ -0,0 +1,57 @@ +% ClassName +GstBaseRTPDepayload +% TYPE_CLASS_NAME +GST_TYPE_BASE_RTP_DEPAYLOAD +% pkg-config +gstreamer-rtp-0.10 +% includes +#include +% prototypes +static gboolean +gst_replace_set_caps (GstBaseRTPDepayload * filter, GstCaps * caps); +static GstFlowReturn +gst_replace_add_to_queue (GstBaseRTPDepayload * filter, GstBuffer * in); +static GstBuffer *gst_replace_process (GstBaseRTPDepayload * base, + GstBuffer * in); +static void +gst_replace_set_gst_timestamp (GstBaseRTPDepayload * filter, guint32 timestamp, + Gst Buffer * buf); +static gboolean +gst_replace_packet_lost (GstBaseRTPDepayload * filter, GstEvent * event); +% declare-class + GstBaseRTPDepayload *base_rtpdepayload_class = GST_BASE_RTPDEPAYLOAD (klass); +% set-methods + base_rtpdepayload_class-> = GST_DEBUG_FUNCPTR (gst_replace_); +% methods + +static gboolean +gst_replace_set_caps (GstBaseRTPDepayload * filter, GstCaps * caps) +{ + +} + +static GstFlowReturn +gst_replace_add_to_queue (GstBaseRTPDepayload * filter, GstBuffer * in) +{ + +} + +static GstBuffer * +gst_replace_process (GstBaseRTPDepayload * base, GstBuffer * in) +{ + +} + +static void +gst_replace_set_gst_timestamp (GstBaseRTPDepayload * filter, guint32 timestamp, + Gst Buffer * buf) +{ + +} + +static gboolean +gst_replace_packet_lost (GstBaseRTPDepayload * filter, GstEvent * event) +{ + +} +% end diff --git a/tools/gstbasertppayload.c b/tools/gstbasertppayload.c new file mode 100644 index 0000000000..a871e901c2 --- /dev/null +++ b/tools/gstbasertppayload.c @@ -0,0 +1,46 @@ +% ClassName +GstBaseRTPPayload +% TYPE_CLASS_NAME +GST_TYPE_BASE_RTP_PAYLOAD +% pkg-config +gstreamer-rtp-0.10 +% includes +#include +% prototypes +static gboolean +gst_replace_set_caps (GstBaseRTPPayload * payload, GstCaps * caps); +static GstFlowReturn +gst_replace_handle_buffer (GstBaseRTPPayload * payload, GstBuffer * buffer); +static gboolean gst_replace_handle_event (GstPad * pad, GstEvent * event); +static GstCaps *gst_replace_get_caps (GstBaseRTPPayload * payload, + GstPad * pad); +% declare-class + GstBaseRTPPayload *base_rtppayload_class = GST_BASE_RTPPAYLOAD (klass); +% set-methods + base_rtppayload_class-> = GST_DEBUG_FUNCPTR (gst_replace_); +% methods + +static gboolean +gst_replace_set_caps (GstBaseRTPPayload * payload, GstCaps * caps) +{ + +} + +static GstFlowReturn +gst_replace_handle_buffer (GstBaseRTPPayload * payload, GstBuffer * buffer) +{ + +} + +static gboolean +gst_replace_handle_event (GstPad * pad, GstEvent * event) +{ + +} + +static GstCaps * +gst_replace_get_caps (GstBaseRTPPayload * payload, GstPad * pad) +{ + +} +% end diff --git a/tools/gstbasesink.c b/tools/gstbasesink.c new file mode 100644 index 0000000000..8682481865 --- /dev/null +++ b/tools/gstbasesink.c @@ -0,0 +1,130 @@ +% ClassName +GstBaseSink +% TYPE_CLASS_NAME +GST_TYPE_BASE_SINK +% pkg-config +gstreamer-base-0.10 +% includes +#include +% prototypes +static GstCaps *gst_replace_get_caps (GstBaseSink * sink); +static gboolean gst_replace_set_caps (GstBaseSink * sink, GstCaps * caps); +static GstFlowReturn +gst_replace_buffer_alloc (GstBaseSink * sink, guint64 offset, guint size, + GstCaps * caps, GstBuffer ** buf); +static void +gst_replace_get_times (GstBaseSink * sink, GstBuffer * buffer, + GstClockTime * start, GstClockTime * end); +static gboolean gst_replace_start (GstBaseSink * sink); +static gboolean gst_replace_stop (GstBaseSink * sink); +static gboolean gst_replace_unlock (GstBaseSink * sink); +static gboolean gst_replace_event (GstBaseSink * sink, GstEvent * event); +static GstFlowReturn +gst_replace_preroll (GstBaseSink * sink, GstBuffer * buffer); +static GstFlowReturn +gst_replace_render (GstBaseSink * sink, GstBuffer * buffer); +static GstStateChangeReturn gst_replace_async_play (GstBaseSink * sink); +static gboolean gst_replace_activate_pull (GstBaseSink * sink, gboolean active); +static void gst_replace_fixate (GstBaseSink * sink, GstCaps * caps); +static gboolean gst_replace_unlock_stop (GstBaseSink * sink); +static GstFlowReturn +gst_replace_render_list (GstBaseSink * sink, GstBufferList * buffer_list); +% declare-class + GstBaseSink *base_sink_class = GST_BASE_SINK (klass); +% set-methods + base_sink_class-> = GST_DEBUG_FUNCPTR (gst_replace_); +% methods + + +static GstCaps * +gst_replace_get_caps (GstBaseSink * sink) +{ + +} + +static gboolean +gst_replace_set_caps (GstBaseSink * sink, GstCaps * caps) +{ + +} + +static GstFlowReturn +gst_replace_buffer_alloc (GstBaseSink * sink, guint64 offset, guint size, + GstCaps * caps, GstBuffer ** buf) +{ + +} + +static void +gst_replace_get_times (GstBaseSink * sink, GstBuffer * buffer, + GstClockTime * start, GstClockTime * end) +{ + +} + +static gboolean +gst_replace_start (GstBaseSink * sink) +{ + +} + +static gboolean +gst_replace_stop (GstBaseSink * sink) +{ + +} + +static gboolean +gst_replace_unlock (GstBaseSink * sink) +{ + +} + +static gboolean +gst_replace_event (GstBaseSink * sink, GstEvent * event) +{ + +} + +static GstFlowReturn +gst_replace_preroll (GstBaseSink * sink, GstBuffer * buffer) +{ + +} + +static GstFlowReturn +gst_replace_render (GstBaseSink * sink, GstBuffer * buffer) +{ + +} + +static GstStateChangeReturn +gst_replace_async_play (GstBaseSink * sink) +{ + +} + +static gboolean +gst_replace_activate_pull (GstBaseSink * sink, gboolean active) +{ + +} + +static void +gst_replace_fixate (GstBaseSink * sink, GstCaps * caps) +{ + +} + +static gboolean +gst_replace_unlock_stop (GstBaseSink * sink) +{ + +} + +static GstFlowReturn +gst_replace_render_list (GstBaseSink * sink, GstBufferList * buffer_list) +{ + +} +% end diff --git a/tools/gstbasesrc.c b/tools/gstbasesrc.c new file mode 100644 index 0000000000..ba4fb2f8bb --- /dev/null +++ b/tools/gstbasesrc.c @@ -0,0 +1,150 @@ +% ClassName +GstBaseSrc +% TYPE_CLASS_NAME +GST_TYPE_BASE_SRC +% pkg-config +gstreamer-base-0.10 +% includes +#include +% prototypes +static GstCaps *gst_replace_get_caps (GstBaseSrc * src); +static gboolean gst_replace_set_caps (GstBaseSrc * src, GstCaps * caps); +static gboolean gst_replace_negotiate (GstBaseSrc * src); +static gboolean gst_replace_newsegment (GstBaseSrc * src); +static gboolean gst_replace_start (GstBaseSrc * src); +static gboolean gst_replace_stop (GstBaseSrc * src); +static void +gst_replace_get_times (GstBaseSrc * src, GstBuffer * buffer, + GstClockTime * start, GstClockTime * end); +static gboolean gst_replace_get_size (GstBaseSrc * src, guint64 * size); +static gboolean gst_replace_is_seekable (GstBaseSrc * src); +static gboolean gst_replace_unlock (GstBaseSrc * src); +static gboolean gst_replace_event (GstBaseSrc * src, GstEvent * event); +static GstFlowReturn +gst_replace_create (GstBaseSrc * src, guint64 offset, guint size, + GstBuffer ** buf); +static gboolean gst_replace_do_seek (GstBaseSrc * src, GstSegment * segment); +static gboolean gst_replace_query (GstBaseSrc * src, GstQuery * query); +static gboolean gst_replace_check_get_range (GstBaseSrc * src); +static void gst_replace_fixate (GstBaseSrc * src, GstCaps * caps); +static gboolean gst_replace_unlock_stop (GstBaseSrc * src); +static gboolean +gst_replace_prepare_seek_segment (GstBaseSrc * src, GstEvent * seek, + GstSegment * segment); +% declare-class + GstBaseSrc *base_src_class = GST_BASE_SRC (klass); +% set-methods + base_src_class-> = GST_DEBUG_FUNCPTR (gst_replace_); +% methods + +static GstCaps * +gst_replace_get_caps (GstBaseSrc * src) +{ + +} + +static gboolean +gst_replace_set_caps (GstBaseSrc * src, GstCaps * caps) +{ + +} + +static gboolean +gst_replace_negotiate (GstBaseSrc * src) +{ + +} + +static gboolean +gst_replace_newsegment (GstBaseSrc * src) +{ + +} + +static gboolean +gst_replace_start (GstBaseSrc * src) +{ + +} + +static gboolean +gst_replace_stop (GstBaseSrc * src) +{ + +} + +static void +gst_replace_get_times (GstBaseSrc * src, GstBuffer * buffer, + GstClockTime * start, GstClockTime * end) +{ + +} + +static gboolean +gst_replace_get_size (GstBaseSrc * src, guint64 * size) +{ + +} + +static gboolean +gst_replace_is_seekable (GstBaseSrc * src) +{ + +} + +static gboolean +gst_replace_unlock (GstBaseSrc * src) +{ + +} + +static gboolean +gst_replace_event (GstBaseSrc * src, GstEvent * event) +{ + +} + +static GstFlowReturn +gst_replace_create (GstBaseSrc * src, guint64 offset, guint size, + GstBuffer ** buf) +{ + +} + +static gboolean +gst_replace_do_seek (GstBaseSrc * src, GstSegment * segment) +{ + +} + +static gboolean +gst_replace_query (GstBaseSrc * src, GstQuery * query) +{ + +} + +static gboolean +gst_replace_check_get_range (GstBaseSrc * src) +{ + +} + +static void +gst_replace_fixate (GstBaseSrc * src, GstCaps * caps) +{ + +} + +static gboolean +gst_replace_unlock_stop (GstBaseSrc * src) +{ + +} + +static gboolean +gst_replace_prepare_seek_segment (GstBaseSrc * src, GstEvent * seek, + GstSegment * segment) +{ + +} +% end diff --git a/tools/gstbasetransform.c b/tools/gstbasetransform.c new file mode 100644 index 0000000000..47d42d39fe --- /dev/null +++ b/tools/gstbasetransform.c @@ -0,0 +1,154 @@ +% ClassName +GstBaseTransform +% TYPE_CLASS_NAME +GST_TYPE_BASE_TRANSFORM +% pkg-config +gstreamer-base-0.10 +% includes +#include +% prototypes +static GstCaps *gst_replace_transform_caps (GstBaseTransform * trans, + GstPadDirection direction, GstCaps * caps); +static void +gst_replace_fixate_caps (GstBaseTransform * trans, + GstPadDirection direction, GstCaps * caps, GstCaps * othercaps); +static gboolean +gst_replace_transform_size (GstBaseTransform * trans, + GstPadDirection direction, + GstCaps * caps, guint size, GstCaps * othercaps, guint * othersize); +static gboolean +gst_replace_get_unit_size (GstBaseTransform * trans, GstCaps * caps, + guint * size); +static gboolean +gst_replace_set_caps (GstBaseTransform * trans, GstCaps * incaps, + GstCaps * outcaps); +static gboolean gst_replace_start (GstBaseTransform * trans); +static gboolean gst_replace_stop (GstBaseTransform * trans); +static gboolean gst_replace_event (GstBaseTransform * trans, GstEvent * event); +static GstFlowReturn +gst_replace_transform (GstBaseTransform * trans, GstBuffer * inbuf, + GstBuffer * outbuf); +static GstFlowReturn +gst_replace_transform_ip (GstBaseTransform * trans, GstBuffer * buf); +static GstFlowReturn +gst_replace_prepare_output_buffer (GstBaseTransform * trans, + GstBuffer * input, gint size, GstCaps * caps, GstBuffer ** buf); +static gboolean +gst_replace_src_event (GstBaseTransform * trans, GstEvent * event); +static void +gst_replace_before_transform (GstBaseTransform * trans, GstBuffer * buffer); +% declare-class + GstBaseTransformClass *base_transform_class = GST_BASE_TRANSFORM_CLASS (klass); +% set-methods + base_transform_class->transform_caps = GST_DEBUG_FUNCPTR (gst_replace_transform_caps); + base_transform_class->fixate_caps = GST_DEBUG_FUNCPTR (gst_replace_fixate_caps); + base_transform_class->transform_size = GST_DEBUG_FUNCPTR (gst_replace_transform_size); + base_transform_class->get_unit_size = GST_DEBUG_FUNCPTR (gst_replace_get_unit_size); + base_transform_class->set_caps = GST_DEBUG_FUNCPTR (gst_replace_set_caps); + base_transform_class->start = GST_DEBUG_FUNCPTR (gst_replace_start); + base_transform_class->stop = GST_DEBUG_FUNCPTR (gst_replace_stop); + base_transform_class->event = GST_DEBUG_FUNCPTR (gst_replace_event); + base_transform_class->transform = GST_DEBUG_FUNCPTR (gst_replace_transform); + base_transform_class->transform_ip = GST_DEBUG_FUNCPTR (gst_replace_transform_ip); + base_transform_class->prepare_output_buffer = GST_DEBUG_FUNCPTR (gst_replace_prepare_output_buffer); + base_transform_class->src_event = GST_DEBUG_FUNCPTR (gst_replace_src_event); + base_transform_class->before_transform = GST_DEBUG_FUNCPTR (gst_replace_before_transform); +% methods + +static GstCaps * +gst_replace_transform_caps (GstBaseTransform * trans, + GstPadDirection direction, GstCaps * caps) +{ + + return NULL; +} + +static void +gst_replace_fixate_caps (GstBaseTransform * trans, + GstPadDirection direction, GstCaps * caps, GstCaps * othercaps) +{ + +} + +static gboolean +gst_replace_transform_size (GstBaseTransform * trans, + GstPadDirection direction, + GstCaps * caps, guint size, GstCaps * othercaps, guint * othersize) +{ + + return FALSE; +} + +static gboolean +gst_replace_get_unit_size (GstBaseTransform * trans, GstCaps * caps, + guint * size) +{ + + return FALSE; +} + +static gboolean +gst_replace_set_caps (GstBaseTransform * trans, GstCaps * incaps, + GstCaps * outcaps) +{ + + return FALSE; +} + +static gboolean +gst_replace_start (GstBaseTransform * trans) +{ + + return FALSE; +} + +static gboolean +gst_replace_stop (GstBaseTransform * trans) +{ + + return FALSE; +} + +static gboolean +gst_replace_event (GstBaseTransform * trans, GstEvent * event) +{ + + return FALSE; +} + +static GstFlowReturn +gst_replace_transform (GstBaseTransform * trans, GstBuffer * inbuf, + GstBuffer * outbuf) +{ + + return GST_FLOW_ERROR; +} + +static GstFlowReturn +gst_replace_transform_ip (GstBaseTransform * trans, GstBuffer * buf) +{ + + return GST_FLOW_ERROR; +} + +static GstFlowReturn +gst_replace_prepare_output_buffer (GstBaseTransform * trans, + GstBuffer * input, gint size, GstCaps * caps, GstBuffer ** buf) +{ + + return GST_FLOW_ERROR; +} + +static gboolean +gst_replace_src_event (GstBaseTransform * trans, GstEvent * event) +{ + + return FALSE; +} + +static void +gst_replace_before_transform (GstBaseTransform * trans, GstBuffer * buffer) +{ + +} +% end diff --git a/tools/gstcddabasesrc.c b/tools/gstcddabasesrc.c new file mode 100644 index 0000000000..d0e0a804f3 --- /dev/null +++ b/tools/gstcddabasesrc.c @@ -0,0 +1,51 @@ +% ClassName +GstCddaBaseSrc +% TYPE_CLASS_NAME +GST_TYPE_CDDA_BASE_SRC +% pkg-config +gstreamer-cdda-0.10 +% includes +#include +% prototypes +static gboolean gst_replace_open (GstCddaBaseSrc * src, const gchar * device); +static void gst_replace_close (GstCddaBaseSrc * src); +static GstBuffer *gst_replace_read_sector (GstCddaBaseSrc * src, gint sector); +static gchar *gst_replace_get_default_device (GstCddaBaseSrc * src); +static gchar **gst_replace_probe_devices (GstCddaBaseSrc * src); +% declare-class + GstcddaBaseSrc *cddabase_src_class = GST_CDDABASE_SRC (klass); +% set-methods + cddabase_src_class-> = GST_DEBUG_FUNCPTR (gst_replace_); +% methods + + +static gboolean +gst_replace_open (GstCddaBaseSrc * src, const gchar * device) +{ + +} + +static void +gst_replace_close (GstCddaBaseSrc * src) +{ + +} + +static GstBuffer * +gst_replace_read_sector (GstCddaBaseSrc * src, gint sector) +{ + +} + +static gchar * +gst_replace_get_default_device (GstCddaBaseSrc * src) +{ + +} + +static gchar ** +gst_replace_probe_devices (GstCddaBaseSrc * src) +{ + +} +% end diff --git a/tools/gstelement.c b/tools/gstelement.c new file mode 100644 index 0000000000..a0f8521eeb --- /dev/null +++ b/tools/gstelement.c @@ -0,0 +1,118 @@ +% ClassName +GstElement +% TYPE_CLASS_NAME +GST_TYPE_ELEMENT +% pkg-config +gstreamer-0.10 +% includes +#include +% prototypes +static GstPad *gst_replace_request_new_pad (GstElement * element, + GstPadTemplate * templ, const gchar * name); +static void gst_replace_release_pad (GstElement * element, GstPad * pad); +static GstStateChangeReturn +gst_replace_get_state (GstElement * element, GstState * state, + GstState * pending, GstClockTime timeout); +static GstStateChangeReturn +gst_replace_set_state (GstElement * element, GstState state); +static GstStateChangeReturn +gst_replace_change_state (GstElement * element, GstStateChange transition); +static void gst_replace_set_bus (GstElement * element, GstBus * bus); +static GstClock *gst_replace_provide_clock (GstElement * element); +static gboolean gst_replace_set_clock (GstElement * element, GstClock * clock); +static GstIndex *gst_replace_get_index (GstElement * element); +static void gst_replace_set_index (GstElement * element, GstIndex * index); +static gboolean gst_replace_send_event (GstElement * element, GstEvent * event); +static const GstQueryType *gst_replace_get_query_types (GstElement * element); +static gboolean gst_replace_query (GstElement * element, GstQuery * query); +% declare-class + GstElement *element_class = GST_ELEMENT (klass); +% set-methods + element_class-> = GST_DEBUG_FUNCPTR (gst_replace_); +% methods + + +static GstPad * +gst_replace_request_new_pad (GstElement * element, GstPadTemplate * templ, + const gchar * name) +{ + + return NULL; +} + +static void +gst_replace_release_pad (GstElement * element, GstPad * pad) +{ + +} + +static GstStateChangeReturn +gst_replace_get_state (GstElement * element, GstState * state, + GstState * pending, GstClockTime timeout) +{ + + return GST_STATE_CHANGE_OK; +} + +static GstStateChangeReturn +gst_replace_set_state (GstElement * element, GstState state) +{ + + return GST_STATE_CHANGE_OK; +} + +static GstStateChangeReturn +gst_replace_change_state (GstElement * element, GstStateChange transition) +{ + + return GST_STATE_CHANGE_OK; +} + +static void +gst_replace_set_bus (GstElement * element, GstBus * bus) +{ + +} + +static GstClock * +gst_replace_provide_clock (GstElement * element) +{ + +} + +static gboolean +gst_replace_set_clock (GstElement * element, GstClock * clock) +{ + +} + +static GstIndex * +gst_replace_get_index (GstElement * element) +{ + +} + +static void +gst_replace_set_index (GstElement * element, GstIndex * index) +{ + +} + +static gboolean +gst_replace_send_event (GstElement * element, GstEvent * event) +{ + +} + +static const GstQueryType * +gst_replace_get_query_types (GstElement * element) +{ + +} + +static gboolean +gst_replace_query (GstElement * element, GstQuery * query) +{ + +} +% end diff --git a/tools/gstpushsrc.c b/tools/gstpushsrc.c new file mode 100644 index 0000000000..5db8e76302 --- /dev/null +++ b/tools/gstpushsrc.c @@ -0,0 +1,22 @@ +% ClassName +GstPushSrc +% TYPE_CLASS_NAME +GST_TYPE_PUSH_SRC +% pkg-config +gstreamer-base-0.10 +% includes +#include +% prototypes +static GstFlowReturn gst_replace_create (GstPushSrc * src, GstBuffer ** buf); +% declare-class + GstPushSrc *pushsrc_class = GST_PUSHSRC (klass); +% set-methods + pushsrc_class-> = GST_DEBUG_FUNCPTR (gst_replace_); +% methods + +static GstFlowReturn +gst_replace_create (GstPushSrc * src, GstBuffer ** buf) +{ + +} +% end diff --git a/tools/gsttagdemux.c b/tools/gsttagdemux.c new file mode 100644 index 0000000000..7ddec9d870 --- /dev/null +++ b/tools/gsttagdemux.c @@ -0,0 +1,47 @@ +% ClassName +GstTagDemux +% TYPE_CLASS_NAME +GST_TYPE_TAG_DEMUX +% pkg-config +gstreamer-tag-0.10 +% includes +#include +% prototypes +static gboolean +gst_replace_identify_tag (GstTagDemux * demux, + GstBuffer * buffer, gboolean start_tag, guint * tag_size); +static GstTagDemuxResult +gst_replace_parse_tag (GstTagDemux * demux, + GstBuffer * buffer, + gboolean start_tag, guint * tag_size, GstTagList ** tags); +static GstTagList *gst_replace_merge_tags (GstTagDemux * demux, + const GstTagList * start_tags, const GstTagList * end_tags); +% declare-class + GstTagdemux *tagdemux_class = GST_TAGDEMUX (klass); +% set-methods + tagdemux_class-> = GST_DEBUG_FUNCPTR (gst_replace_); +% methods + + +static gboolean +gst_replace_identify_tag (GstTagDemux * demux, + GstBuffer * buffer, gboolean start_tag, guint * tag_size) +{ + +} + +static GstTagDemuxResult +gst_replace_parse_tag (GstTagDemux * demux, + GstBuffer * buffer, + gboolean start_tag, guint * tag_size, GstTagList ** tags) +{ + +} + +static GstTagList * +gst_replace_merge_tags (GstTagDemux * demux, + const GstTagList * start_tags, const GstTagList * end_tags) +{ + +} +% end diff --git a/tools/gstvideosink.c b/tools/gstvideosink.c new file mode 100644 index 0000000000..ce12a07f3e --- /dev/null +++ b/tools/gstvideosink.c @@ -0,0 +1,29 @@ +% ClassName +GstVideoSink +% TYPE_CLASS_NAME +GST_TYPE_VIDEO_SINK +% pkg-config +gstreamer-video-0.10 +% includes +#include +% prototypes + +static GstFlowReturn +gst_replace_show_frame (GstVideoSink * video_sink, GstBuffer * buf); + + +% declare-class + GstVideoSinkClass *video_sink_class = GST_VIDEO_SINK_CLASS (klass); +% set-methods + video_sink_class->show_frame = GST_DEBUG_FUNCPTR (gst_replace_show_frame); +% methods + +static GstFlowReturn +gst_replace_show_frame (GstVideoSink * video_sink, GstBuffer * buf) +{ + + return GST_FLOW_OK; +} + +% end +