aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorDavid Schleef2010-04-14 18:32:34 -0500
committerDavid Schleef2010-04-14 18:43:23 -0500
commitf6f9563dc80ad993a0535e1484c893509753966f (patch)
tree925d2980cf71d4c49ad51665a67e1d7d58ec4b4b /tools
parentc48de5c594a090432cb520596273fc620ea1120e (diff)
downloadgst-plugins-bad0-10-f6f9563dc80ad993a0535e1484c893509753966f.tar.gz
gst-plugins-bad0-10-f6f9563dc80ad993a0535e1484c893509753966f.tar.xz
gst-plugins-bad0-10-f6f9563dc80ad993a0535e1484c893509753966f.zip
tools: Add element-maker
Add a script that creates elements based on any of the GStreamer base classes. It isn't very user friendly at the moment, one needs to edit the script to make it work properly. Each base class has a template file describing what to put into the constructed element. Eventually, these templates should be moved to reside with the base class source and installed to a well-known directory, where an installed script could find them. The template files use the .c ending so editors know they are C source, but gst-indent doesn't handle them correctly. So they need to be committed with -n. Ugh. I'll try to figure out a fix for that soon.
Diffstat (limited to 'tools')
-rw-r--r--tools/Makefile.am20
-rw-r--r--tools/base.c33
-rwxr-xr-xtools/element-maker233
-rw-r--r--tools/gobject.c80
-rw-r--r--tools/gstaudiofilter.c23
-rw-r--r--tools/gstaudiosink.c58
-rw-r--r--tools/gstaudiosrc.c59
-rw-r--r--tools/gstbaseaudiosink.c22
-rw-r--r--tools/gstbaseaudiosrc.c22
-rw-r--r--tools/gstbasertpdepayload.c57
-rw-r--r--tools/gstbasertppayload.c46
-rw-r--r--tools/gstbasesink.c130
-rw-r--r--tools/gstbasesrc.c150
-rw-r--r--tools/gstbasetransform.c154
-rw-r--r--tools/gstcddabasesrc.c51
-rw-r--r--tools/gstelement.c118
-rw-r--r--tools/gstpushsrc.c22
-rw-r--r--tools/gsttagdemux.c47
-rw-r--r--tools/gstvideosink.c29
19 files changed, 1354 insertions, 0 deletions
diff --git a/tools/Makefile.am b/tools/Makefile.am
new file mode 100644
index 000000000..54cdae13e
--- /dev/null
+++ b/tools/Makefile.am
@@ -0,0 +1,20 @@
1
2EXTRA_DIST = \
3 element-maker \
4 base.c \
5 gobject.c \
6 gstaudiofilter.c \
7 gstaudiosink.c \
8 gstaudiosrc.c \
9 gstbaseaudiosink.c \
10 gstbaseaudiosrc.c \
11 gstbasertpdepayload.c \
12 gstbasertppayload.c \
13 gstbasesink.c \
14 gstbasesrc.c \
15 gstbasetransform.c \
16 gstcddabasesrc.c \
17 gstelement.c \
18 gstpushsrc.c \
19 gsttagdemux.c \
20 gstvideosink.c
diff --git a/tools/base.c b/tools/base.c
new file mode 100644
index 000000000..76b3315a6
--- /dev/null
+++ b/tools/base.c
@@ -0,0 +1,33 @@
1
2% copyright
3/* GStreamer
4 * Copyright (C) 2010 FIXME <fixme@example.com>
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Library General Public License for more details.
15 *
16 * You should have received a copy of the GNU Library General Public
17 * License along with this library; if not, write to the
18 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 * Boston, MA 02111-1307, USA.
20 */
21
22% includes
23#include <gst/gst.h>
24% part2
25
26enum
27{
28 ARG_0
29};
30
31
32% end
33
diff --git a/tools/element-maker b/tools/element-maker
new file mode 100755
index 000000000..1398b042b
--- /dev/null
+++ b/tools/element-maker
@@ -0,0 +1,233 @@
1#!/bin/sh
2
3class=basetransform
4
5GST_IS_REPLACE=MY_IS_EXAMPLE
6GST_REPLACE=MY_EXAMPLE
7GST_TYPE_REPLACE=MY_TYPE_EXAMPLE
8GstReplace=MyExample
9gst_replace=my_example
10gstreplace=myexample
11replace=example
12
13source=gst$class.c
14pkg=`grep -A 10000 '^% pkg-config' $source | tail -n +2|grep -m 1 -B 10000 '^%'|head -n -1`
15GST_TYPE_BASE_REPLACE=`grep -A 10000 '^% TYPE_CLASS_NAME' $source | tail -n +2|grep -m 1 -B 10000 '^%'|head -n -1`
16GstBaseReplace=`grep -A 10000 '^% ClassName' $source | tail -n +2|grep -m 1 -B 10000 '^%'|head -n -1`
17
18generate ()
19{
20
21grep -A 10000 '^% copyright' base.c | tail -n +2|grep -m 1 -B 10000 '^%'|head -n -1
22
23cat <<EOF
24
25#ifdef HAVE_CONFIG_H
26#include "config.h"
27#endif
28
29EOF
30
31grep -A 10000 '^% includes' base.c | tail -n +2|grep -m 1 -B 10000 '^%'|head -n -1
32grep -A 10000 '^% includes' gobject.c | tail -n +2|grep -m 1 -B 10000 '^%'|head -n -1
33grep -A 10000 '^% includes' $source | tail -n +2|grep -m 1 -B 10000 '^%'|head -n -1
34
35cat <<EOF
36#include "gstreplace.h"
37
38/* prototypes */
39
40EOF
41
42grep -A 10000 '^% prototypes' base.c | tail -n +2|grep -m 1 -B 10000 '^%'|head -n -1
43grep -A 10000 '^% prototypes' gobject.c | tail -n +2|grep -m 1 -B 10000 '^%'|head -n -1
44grep -A 10000 '^% prototypes' $source | tail -n +2|grep -m 1 -B 10000 '^%'|head -n -1
45
46cat <<EOF
47
48enum
49{
50 PROP_0
51};
52
53/* pad templates */
54
55static GstStaticPadTemplate gst_replace_sink_template =
56GST_STATIC_PAD_TEMPLATE ("sink",
57 GST_PAD_SINK,
58 GST_PAD_ALWAYS,
59 GST_STATIC_CAPS ("application/unknown")
60 );
61
62static GstStaticPadTemplate gst_replace_src_template =
63GST_STATIC_PAD_TEMPLATE ("src",
64 GST_PAD_SRC,
65 GST_PAD_ALWAYS,
66 GST_STATIC_CAPS ("application/unknown")
67 );
68
69/* class initialization */
70
71GST_BOILERPLATE (GstReplace, gst_replace, GstBaseReplace,
72 GST_TYPE_BASE_REPLACE);
73
74static void
75gst_replace_base_init (gpointer g_class)
76{
77 GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
78
79 gst_element_class_add_pad_template (element_class,
80 gst_static_pad_template_get (&gst_replace_src_template));
81 gst_element_class_add_pad_template (element_class,
82 gst_static_pad_template_get (&gst_replace_sink_template));
83
84 gst_element_class_set_details_simple (element_class, "FIXME",
85 "Generic", "FIXME", "FIXME <fixme@example.com>");
86}
87
88static void
89gst_replace_class_init (GstReplaceClass * klass)
90{
91EOF
92grep -A 10000 '^% declare-class' base.c | tail -n +2|grep -m 1 -B 10000 '^%'|head -n -1
93grep -A 10000 '^% declare-class' gobject.c | tail -n +2|grep -m 1 -B 10000 '^%'|head -n -1
94grep -A 10000 '^% declare-class' $source | tail -n +2|grep -m 1 -B 10000 '^%'|head -n -1
95
96echo
97
98grep -A 10000 '^% set-methods' base.c | tail -n +2|grep -m 1 -B 10000 '^%'|head -n -1
99grep -A 10000 '^% set-methods' gobject.c | tail -n +2|grep -m 1 -B 10000 '^%'|head -n -1
100grep -A 10000 '^% set-methods' $source | tail -n +2|grep -m 1 -B 10000 '^%'|head -n -1
101
102cat <<EOF
103
104}
105
106static void
107gst_replace_init (GstReplace * replace, GstReplaceClass * replace_class)
108{
109
110}
111EOF
112
113
114grep -A 10000 '^% methods' base.c | tail -n +2|grep -m 1 -B 10000 '^%'|head -n -1
115grep -A 10000 '^% methods' gobject.c | tail -n +2|grep -m 1 -B 10000 '^%'|head -n -1
116grep -A 10000 '^% methods' $source | tail -n +2|grep -m 1 -B 10000 '^%'|head -n -1
117
118
119cat <<EOF
120
121static gboolean
122plugin_init (GstPlugin * plugin)
123{
124
125 gst_element_register (plugin, "replace", GST_RANK_NONE,
126 gst_replace_get_type ());
127
128 return TRUE;
129}
130
131#define VERSION "0.0.FIXME"
132#define PACKAGE "FIXME_package"
133#define PACKAGE_NAME "FIXME_package_name"
134#define PACKAGE_ORIGIN "http://FIXME.org/"
135
136GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
137 GST_VERSION_MINOR,
138 "replace",
139 "FIXME",
140 plugin_init, VERSION, "LGPL", PACKAGE_NAME, PACKAGE_ORIGIN)
141
142EOF
143
144
145}
146
147generate_header ()
148{
149
150grep -A 10000 '^% copyright' base.c | tail -n +2|grep -m 1 -B 10000 '^%'|head -n -1
151
152cat <<EOF
153#ifndef _GST_REPLACE_H_
154#define _GST_REPLACE_H_
155
156EOF
157
158grep -A 10000 '^% includes' base.c | tail -n +2|grep -m 1 -B 10000 '^%'|head -n -1
159grep -A 10000 '^% includes' gobject.c | tail -n +2|grep -m 1 -B 10000 '^%'|head -n -1
160grep -A 10000 '^% includes' $source | tail -n +2|grep -m 1 -B 10000 '^%'|head -n -1
161
162cat <<EOF
163
164G_BEGIN_DECLS
165
166#define GST_TYPE_REPLACE \
167 (gst_replace_get_type())
168#define GST_REPLACE(obj) \
169 (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_REPLACE,GstReplace))
170#define GST_REPLACE_CLASS(klass) \
171 (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_REPLACE,GstReplaceClass))
172#define GST_IS_REPLACE(obj) \
173 (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_REPLACE))
174#define GST_IS_REPLACE_CLASS(obj) \
175 (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_REPLACE))
176
177typedef struct _GstReplace GstReplace;
178typedef struct _GstReplaceClass GstReplaceClass;
179
180struct _GstReplace
181{
182 GstBaseReplace base_replace;
183
184};
185
186struct _GstReplaceClass
187{
188 GstBaseReplaceClass base_replace_class;
189};
190
191GType gst_replace_get_type (void);
192
193G_END_DECLS
194
195#endif
196EOF
197
198
199}
200
201
202generate | sed \
203 -e "s/GST_BASE_REPLACE/$GST_BASE_REPLACE/g" \
204 -e "s/GST_TYPE_BASE_REPLACE/$GST_TYPE_BASE_REPLACE/g" \
205 -e "s/GstBaseReplace/$GstBaseReplace/g" \
206 -e "s/GST_IS_REPLACE/$GST_IS_REPLACE/g" \
207 -e "s/GST_REPLACE/$GST_REPLACE/g" \
208 -e "s/GST_TYPE_REPLACE/$GST_TYPE_REPLACE/g" \
209 -e "s/GstReplace/$GstReplace/g" \
210 -e "s/gst_replace/$gst_replace/g" \
211 -e "s/gstreplace/$gstreplace/g" \
212 -e "s/replace/$replace/g" >myexample.c
213
214generate_header | sed \
215 -e "s/GST_BASE_REPLACE/$GST_BASE_REPLACE/g" \
216 -e "s/GST_TYPE_BASE_REPLACE/$GST_TYPE_BASE_REPLACE/g" \
217 -e "s/GstBaseReplace/$GstBaseReplace/g" \
218 -e "s/GST_IS_REPLACE/$GST_IS_REPLACE/g" \
219 -e "s/GST_REPLACE/$GST_REPLACE/g" \
220 -e "s/GST_TYPE_REPLACE/$GST_TYPE_REPLACE/g" \
221 -e "s/GstReplace/$GstReplace/g" \
222 -e "s/gst_replace/$gst_replace/g" \
223 -e "s/gstreplace/$gstreplace/g" \
224 -e "s/replace/$replace/g" >myexample.h
225
226gst-indent myexample.c
227
228echo pkg is $pkg
229
230gcc -Wall $(pkg-config --cflags gstreamer-0.10 $pkg) -c -o myexample.o myexample.c
231gcc -shared -o myexample.so myexample.o $(pkg-config --libs gstreamer-0.10 $pkg)
232
233
diff --git a/tools/gobject.c b/tools/gobject.c
new file mode 100644
index 000000000..cae4facc9
--- /dev/null
+++ b/tools/gobject.c
@@ -0,0 +1,80 @@
1
2% includes
3% prototypes
4
5static void gst_replace_set_property (GObject * object,
6 guint property_id, const GValue * value, GParamSpec * pspec);
7static void gst_replace_get_property (GObject * object,
8 guint property_id, GValue * value, GParamSpec * pspec);
9static void gst_replace_dispose (GObject * object);
10static void gst_replace_finalize (GObject * object);
11
12% declare-class
13 GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
14% set-methods
15 gobject_class->set_property = gst_replace_set_property;
16 gobject_class->get_property = gst_replace_get_property;
17 gobject_class->dispose = gst_replace_dispose;
18 gobject_class->finalize = gst_replace_finalize;
19% methods
20
21void
22gst_replace_set_property (GObject * object, guint property_id,
23 const GValue * value, GParamSpec * pspec)
24{
25 GstReplace *replace;
26
27 g_return_if_fail (GST_IS_REPLACE (object));
28 replace = GST_REPLACE (object);
29
30 switch (property_id) {
31 default:
32 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
33 break;
34 }
35}
36
37void
38gst_replace_get_property (GObject * object, guint property_id,
39 GValue * value, GParamSpec * pspec)
40{
41 GstReplace *replace;
42
43 g_return_if_fail (GST_IS_REPLACE (object));
44 replace = GST_REPLACE (object);
45
46 switch (property_id) {
47 default:
48 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
49 break;
50 }
51}
52
53void
54gst_replace_dispose (GObject * object)
55{
56 GstReplace *replace;
57
58 g_return_if_fail (GST_IS_REPLACE (object));
59 replace = GST_REPLACE (object);
60
61 /* clean up as possible. may be called multiple times */
62
63 G_OBJECT_CLASS (parent_class)->finalize (object);
64}
65
66void
67gst_replace_finalize (GObject * object)
68{
69 GstReplace *replace;
70
71 g_return_if_fail (GST_IS_REPLACE (object));
72 replace = GST_REPLACE (object);
73
74 /* clean up object here */
75
76 G_OBJECT_CLASS (parent_class)->finalize (object);
77}
78
79% end
80
diff --git a/tools/gstaudiofilter.c b/tools/gstaudiofilter.c
new file mode 100644
index 000000000..018128153
--- /dev/null
+++ b/tools/gstaudiofilter.c
@@ -0,0 +1,23 @@
1% ClassName
2GstAudioFilter
3% TYPE_CLASS_NAME
4GST_TYPE_AUDIO_FILTER
5% pkg-config
6gstreamer-audio-0.10
7% includes
8#include <gst/audio/gstaudiofilter.h>
9% prototypes
10static gboolean
11gst_replace_setup (GstAudioFilter * filter, GstRingBufferSpec * format);
12% declare-class
13 GstAudioFilter *audio_filter_class = GST_AUDIO_FILTER (klass);
14% set-methods
15 audio_filter_class-> = GST_DEBUG_FUNCPTR (gst_replace_);
16% methods
17
18static gboolean
19gst_replace_setup (GstAudioFilter * filter, GstRingBufferSpec * format)
20{
21
22}
23% end
diff --git a/tools/gstaudiosink.c b/tools/gstaudiosink.c
new file mode 100644
index 000000000..9c2a58c7b
--- /dev/null
+++ b/tools/gstaudiosink.c
@@ -0,0 +1,58 @@
1% ClassName
2GstAudioSink
3% TYPE_CLASS_NAME
4GST_TYPE_AUDIO_SINK
5% pkg-config
6gstreamer-audio-0.10
7% includes
8#include <gst/audio/gstaudiosink.h>
9% prototypes
10static gboolean gst_replace_open (GstAudioSrc * src);
11static gboolean
12gst_replace_prepare (GstAudioSrc * src, GstRingBufferSpec * spec);
13static gboolean gst_replace_unprepare (GstAudioSrc * src);
14static gboolean gst_replace_close (GstAudioSrc * src);
15static guint gst_replace_read (GstAudioSrc * src, gpointer data, guint length);
16static guint gst_replace_delay (GstAudioSrc * src);
17static void gst_replace_reset (GstAudioSrc * src);
18% declare-class
19 GstAudioSink *audio_sink_class = GST_AUDIO_SINK (klass);
20% set-methods
21 audio_sink_class-> = GST_DEBUG_FUNCPTR (gst_replace_);
22% methods
23
24static gboolean
25gst_replace_open (GstAudioSrc * src)
26{
27}
28
29static gboolean
30gst_replace_prepare (GstAudioSrc * src, GstRingBufferSpec * spec)
31{
32}
33
34static gboolean
35gst_replace_unprepare (GstAudioSrc * src)
36{
37}
38
39static gboolean
40gst_replace_close (GstAudioSrc * src)
41{
42}
43
44static guint
45gst_replace_read (GstAudioSrc * src, gpointer data, guint length)
46{
47}
48
49static guint
50gst_replace_delay (GstAudioSrc * src)
51{
52}
53
54static void
55gst_replace_reset (GstAudioSrc * src)
56{
57}
58% end
diff --git a/tools/gstaudiosrc.c b/tools/gstaudiosrc.c
new file mode 100644
index 000000000..95f20e752
--- /dev/null
+++ b/tools/gstaudiosrc.c
@@ -0,0 +1,59 @@
1% ClassName
2GstAudioSrc
3% TYPE_CLASS_NAME
4GST_TYPE_AUDIO_SRC
5% pkg-config
6gstreamer-audio-0.10
7% includes
8#include <gst/audio/gstaudiosrc.h>
9% prototypes
10static gboolean gst_replace_open (GstAudioSink * sink);
11static gboolean
12gst_replace_prepare (GstAudioSink * sink, GstRingBufferSpec * spec);
13static gboolean gst_replace_unprepare (GstAudioSink * sink);
14static gboolean gst_replace_close (GstAudioSink * sink);
15static guint
16gst_replace_write (GstAudioSink * sink, gpointer data, guint length);
17static guint gst_replace_delay (GstAudioSink * sink);
18static void gst_replace_reset (GstAudioSink * sink);
19% declare-class
20 GstAudioSrc *audio_src_class = GST_AUDIO_SRC (klass);
21% set-methods
22 audio_src_class-> = GST_DEBUG_FUNCPTR (gst_replace_);
23% methods
24
25static gboolean
26gst_replace_open (GstAudioSink * sink)
27{
28}
29
30static gboolean
31gst_replace_prepare (GstAudioSink * sink, GstRingBufferSpec * spec)
32{
33}
34
35static gboolean
36gst_replace_unprepare (GstAudioSink * sink)
37{
38}
39
40static gboolean
41gst_replace_close (GstAudioSink * sink)
42{
43}
44
45static guint
46gst_replace_write (GstAudioSink * sink, gpointer data, guint length)
47{
48}
49
50static guint
51gst_replace_delay (GstAudioSink * sink)
52{
53}
54
55static void
56gst_replace_reset (GstAudioSink * sink)
57{
58}
59% end
diff --git a/tools/gstbaseaudiosink.c b/tools/gstbaseaudiosink.c
new file mode 100644
index 000000000..2f36e84c9
--- /dev/null
+++ b/tools/gstbaseaudiosink.c
@@ -0,0 +1,22 @@
1% ClassName
2GstBaseAudioSink
3% TYPE_CLASS_NAME
4GST_TYPE_BASE_AUDIO_SINK
5% pkg-config
6gstreamer-audio-0.10
7% includes
8#include <gst/audio/gstbaseaudiosink.h>
9% prototypes
10static GstRingBuffer *gst_replace_create_ringbuffer (GstBaseAudioSink * sink);
11% declare-class
12 GstBaseAudioSink *base_audio_sink_class = GST_BASE_AUDIO_SINK (klass);
13% set-methods
14 base_audio_sink_class-> = GST_DEBUG_FUNCPTR (gst_replace_);
15% methods
16
17static GstRingBuffer *
18gst_replace_create_ringbuffer (GstBaseAudioSink * sink)
19{
20
21}
22% end
diff --git a/tools/gstbaseaudiosrc.c b/tools/gstbaseaudiosrc.c
new file mode 100644
index 000000000..c87bb32c0
--- /dev/null
+++ b/tools/gstbaseaudiosrc.c
@@ -0,0 +1,22 @@
1% ClassName
2GstBaseAudioSrc
3% TYPE_CLASS_NAME
4GST_TYPE_BASE_AUDIO_SRC
5% pkg-config
6gstreamer-audio-0.10
7% includes
8#include <gst/audio/gstbaseaudiosrc.h>
9% prototypes
10static GstRingBuffer *gst_replace_create_ringbuffer (GstBaseAudioSrc * src);
11% declare-class
12 GstBaseAudioSrc *base_audio_src_class = GST_BASE_AUDIO_SRC (klass);
13% set-methods
14 base_audio_src_class-> = GST_DEBUG_FUNCPTR (gst_replace_);
15% methods
16
17static GstRingBuffer *
18gst_replace_create_ringbuffer (GstBaseAudioSrc * src)
19{
20
21}
22% end
diff --git a/tools/gstbasertpdepayload.c b/tools/gstbasertpdepayload.c
new file mode 100644
index 000000000..b0810be25
--- /dev/null
+++ b/tools/gstbasertpdepayload.c
@@ -0,0 +1,57 @@
1% ClassName
2GstBaseRTPDepayload
3% TYPE_CLASS_NAME
4GST_TYPE_BASE_RTP_DEPAYLOAD
5% pkg-config
6gstreamer-rtp-0.10
7% includes
8#include <gst/rtp/gstbasertpdepayload.h>
9% prototypes
10static gboolean
11gst_replace_set_caps (GstBaseRTPDepayload * filter, GstCaps * caps);
12static GstFlowReturn
13gst_replace_add_to_queue (GstBaseRTPDepayload * filter, GstBuffer * in);
14static GstBuffer *gst_replace_process (GstBaseRTPDepayload * base,
15 GstBuffer * in);
16static void
17gst_replace_set_gst_timestamp (GstBaseRTPDepayload * filter, guint32 timestamp,
18 Gst Buffer * buf);
19static gboolean
20gst_replace_packet_lost (GstBaseRTPDepayload * filter, GstEvent * event);
21% declare-class
22 GstBaseRTPDepayload *base_rtpdepayload_class = GST_BASE_RTPDEPAYLOAD (klass);
23% set-methods
24 base_rtpdepayload_class-> = GST_DEBUG_FUNCPTR (gst_replace_);
25% methods
26
27static gboolean
28gst_replace_set_caps (GstBaseRTPDepayload * filter, GstCaps * caps)
29{
30
31}
32
33static GstFlowReturn
34gst_replace_add_to_queue (GstBaseRTPDepayload * filter, GstBuffer * in)
35{
36
37}
38
39static GstBuffer *
40gst_replace_process (GstBaseRTPDepayload * base, GstBuffer * in)
41{
42
43}
44
45static void
46gst_replace_set_gst_timestamp (GstBaseRTPDepayload * filter, guint32 timestamp,
47 Gst Buffer * buf)
48{
49
50}
51
52static gboolean
53gst_replace_packet_lost (GstBaseRTPDepayload * filter, GstEvent * event)
54{
55
56}
57% end
diff --git a/tools/gstbasertppayload.c b/tools/gstbasertppayload.c
new file mode 100644
index 000000000..a871e901c
--- /dev/null
+++ b/tools/gstbasertppayload.c
@@ -0,0 +1,46 @@
1% ClassName
2GstBaseRTPPayload
3% TYPE_CLASS_NAME
4GST_TYPE_BASE_RTP_PAYLOAD
5% pkg-config
6gstreamer-rtp-0.10
7% includes
8#include <gst/rtp/gstbasertppayload.h>
9% prototypes
10static gboolean
11gst_replace_set_caps (GstBaseRTPPayload * payload, GstCaps * caps);
12static GstFlowReturn
13gst_replace_handle_buffer (GstBaseRTPPayload * payload, GstBuffer * buffer);
14static gboolean gst_replace_handle_event (GstPad * pad, GstEvent * event);
15static GstCaps *gst_replace_get_caps (GstBaseRTPPayload * payload,
16 GstPad * pad);
17% declare-class
18 GstBaseRTPPayload *base_rtppayload_class = GST_BASE_RTPPAYLOAD (klass);
19% set-methods
20 base_rtppayload_class-> = GST_DEBUG_FUNCPTR (gst_replace_);
21% methods
22
23static gboolean
24gst_replace_set_caps (GstBaseRTPPayload * payload, GstCaps * caps)
25{
26
27}
28
29static GstFlowReturn
30gst_replace_handle_buffer (GstBaseRTPPayload * payload, GstBuffer * buffer)
31{
32
33}
34
35static gboolean
36gst_replace_handle_event (GstPad * pad, GstEvent * event)
37{
38
39}
40
41static GstCaps *
42gst_replace_get_caps (GstBaseRTPPayload * payload, GstPad * pad)
43{
44
45}
46% end
diff --git a/tools/gstbasesink.c b/tools/gstbasesink.c
new file mode 100644
index 000000000..868248186
--- /dev/null
+++ b/tools/gstbasesink.c
@@ -0,0 +1,130 @@
1% ClassName
2GstBaseSink
3% TYPE_CLASS_NAME
4GST_TYPE_BASE_SINK
5% pkg-config
6gstreamer-base-0.10
7% includes
8#include <gst/base/gstbasesink.h>
9% prototypes
10static GstCaps *gst_replace_get_caps (GstBaseSink * sink);
11static gboolean gst_replace_set_caps (GstBaseSink * sink, GstCaps * caps);
12static GstFlowReturn
13gst_replace_buffer_alloc (GstBaseSink * sink, guint64 offset, guint size,
14 GstCaps * caps, GstBuffer ** buf);
15static void
16gst_replace_get_times (GstBaseSink * sink, GstBuffer * buffer,
17 GstClockTime * start, GstClockTime * end);
18static gboolean gst_replace_start (GstBaseSink * sink);
19static gboolean gst_replace_stop (GstBaseSink * sink);
20static gboolean gst_replace_unlock (GstBaseSink * sink);
21static gboolean gst_replace_event (GstBaseSink * sink, GstEvent * event);
22static GstFlowReturn
23gst_replace_preroll (GstBaseSink * sink, GstBuffer * buffer);
24static GstFlowReturn
25gst_replace_render (GstBaseSink * sink, GstBuffer * buffer);
26static GstStateChangeReturn gst_replace_async_play (GstBaseSink * sink);
27static gboolean gst_replace_activate_pull (GstBaseSink * sink, gboolean active);
28static void gst_replace_fixate (GstBaseSink * sink, GstCaps * caps);
29static gboolean gst_replace_unlock_stop (GstBaseSink * sink);
30static GstFlowReturn
31gst_replace_render_list (GstBaseSink * sink, GstBufferList * buffer_list);
32% declare-class
33 GstBaseSink *base_sink_class = GST_BASE_SINK (klass);
34% set-methods
35 base_sink_class-> = GST_DEBUG_FUNCPTR (gst_replace_);
36% methods
37
38
39static GstCaps *
40gst_replace_get_caps (GstBaseSink * sink)
41{
42
43}
44
45static gboolean
46gst_replace_set_caps (GstBaseSink * sink, GstCaps * caps)
47{
48
49}
50
51static GstFlowReturn
52gst_replace_buffer_alloc (GstBaseSink * sink, guint64 offset, guint size,
53 GstCaps * caps, GstBuffer ** buf)
54{
55
56}
57
58static void
59gst_replace_get_times (GstBaseSink * sink, GstBuffer * buffer,
60 GstClockTime * start, GstClockTime * end)
61{
62
63}
64
65static gboolean
66gst_replace_start (GstBaseSink * sink)
67{
68
69}
70
71static gboolean
72gst_replace_stop (GstBaseSink * sink)
73{
74
75}
76
77static gboolean
78gst_replace_unlock (GstBaseSink * sink)
79{
80
81}
82
83static gboolean
84gst_replace_event (GstBaseSink * sink, GstEvent * event)
85{
86
87}
88
89static GstFlowReturn
90gst_replace_preroll (GstBaseSink * sink, GstBuffer * buffer)
91{
92
93}
94
95static GstFlowReturn
96gst_replace_render (GstBaseSink * sink, GstBuffer * buffer)
97{
98
99}
100
101static GstStateChangeReturn
102gst_replace_async_play (GstBaseSink * sink)
103{
104
105}
106
107static gboolean
108gst_replace_activate_pull (GstBaseSink * sink, gboolean active)
109{
110
111}
112
113static void
114gst_replace_fixate (GstBaseSink * sink, GstCaps * caps)
115{
116
117}
118
119static gboolean
120gst_replace_unlock_stop (GstBaseSink * sink)
121{
122
123}
124
125static GstFlowReturn
126gst_replace_render_list (GstBaseSink * sink, GstBufferList * buffer_list)
127{
128
129}
130% end
diff --git a/tools/gstbasesrc.c b/tools/gstbasesrc.c
new file mode 100644
index 000000000..ba4fb2f8b
--- /dev/null
+++ b/tools/gstbasesrc.c
@@ -0,0 +1,150 @@
1% ClassName
2GstBaseSrc
3% TYPE_CLASS_NAME
4GST_TYPE_BASE_SRC
5% pkg-config
6gstreamer-base-0.10
7% includes
8#include <gst/base/gstbasesrc.h>
9% prototypes
10static GstCaps *gst_replace_get_caps (GstBaseSrc * src);
11static gboolean gst_replace_set_caps (GstBaseSrc * src, GstCaps * caps);
12static gboolean gst_replace_negotiate (GstBaseSrc * src);
13static gboolean gst_replace_newsegment (GstBaseSrc * src);
14static gboolean gst_replace_start (GstBaseSrc * src);
15static gboolean gst_replace_stop (GstBaseSrc * src);
16static void
17gst_replace_get_times (GstBaseSrc * src, GstBuffer * buffer,
18 GstClockTime * start, GstClockTime * end);
19static gboolean gst_replace_get_size (GstBaseSrc * src, guint64 * size);
20static gboolean gst_replace_is_seekable (GstBaseSrc * src);
21static gboolean gst_replace_unlock (GstBaseSrc * src);
22static gboolean gst_replace_event (GstBaseSrc * src, GstEvent * event);
23static GstFlowReturn
24gst_replace_create (GstBaseSrc * src, guint64 offset, guint size,
25 GstBuffer ** buf);
26static gboolean gst_replace_do_seek (GstBaseSrc * src, GstSegment * segment);
27static gboolean gst_replace_query (GstBaseSrc * src, GstQuery * query);
28static gboolean gst_replace_check_get_range (GstBaseSrc * src);
29static void gst_replace_fixate (GstBaseSrc * src, GstCaps * caps);
30static gboolean gst_replace_unlock_stop (GstBaseSrc * src);
31static gboolean
32gst_replace_prepare_seek_segment (GstBaseSrc * src, GstEvent * seek,
33 GstSegment * segment);
34% declare-class
35 GstBaseSrc *base_src_class = GST_BASE_SRC (klass);
36% set-methods
37 base_src_class-> = GST_DEBUG_FUNCPTR (gst_replace_);
38% methods
39
40static GstCaps *
41gst_replace_get_caps (GstBaseSrc * src)
42{
43
44}
45
46static gboolean
47gst_replace_set_caps (GstBaseSrc * src, GstCaps * caps)
48{
49
50}
51
52static gboolean
53gst_replace_negotiate (GstBaseSrc * src)
54{
55
56}
57
58static gboolean
59gst_replace_newsegment (GstBaseSrc * src)
60{
61
62}
63
64static gboolean
65gst_replace_start (GstBaseSrc * src)
66{
67
68}
69
70static gboolean
71gst_replace_stop (GstBaseSrc * src)
72{
73
74}
75
76static void
77gst_replace_get_times (GstBaseSrc * src, GstBuffer * buffer,
78 GstClockTime * start, GstClockTime * end)
79{
80
81}
82
83static gboolean
84gst_replace_get_size (GstBaseSrc * src, guint64 * size)
85{
86
87}
88
89static gboolean
90gst_replace_is_seekable (GstBaseSrc * src)
91{
92
93}
94
95static gboolean
96gst_replace_unlock (GstBaseSrc * src)
97{
98
99}
100
101static gboolean
102gst_replace_event (GstBaseSrc * src, GstEvent * event)
103{
104
105}
106
107static GstFlowReturn
108gst_replace_create (GstBaseSrc * src, guint64 offset, guint size,
109 GstBuffer ** buf)
110{
111
112}
113
114static gboolean
115gst_replace_do_seek (GstBaseSrc * src, GstSegment * segment)
116{
117
118}
119
120static gboolean
121gst_replace_query (GstBaseSrc * src, GstQuery * query)
122{
123
124}
125
126static gboolean
127gst_replace_check_get_range (GstBaseSrc * src)
128{
129
130}
131
132static void
133gst_replace_fixate (GstBaseSrc * src, GstCaps * caps)
134{
135
136}
137
138static gboolean
139gst_replace_unlock_stop (GstBaseSrc * src)
140{
141
142}
143
144static gboolean
145gst_replace_prepare_seek_segment (GstBaseSrc * src, GstEvent * seek,
146 GstSegment * segment)
147{
148
149}
150% end
diff --git a/tools/gstbasetransform.c b/tools/gstbasetransform.c
new file mode 100644
index 000000000..47d42d39f
--- /dev/null
+++ b/tools/gstbasetransform.c
@@ -0,0 +1,154 @@
1% ClassName
2GstBaseTransform
3% TYPE_CLASS_NAME
4GST_TYPE_BASE_TRANSFORM
5% pkg-config
6gstreamer-base-0.10
7% includes
8#include <gst/base/gstbasetransform.h>
9% prototypes
10static GstCaps *gst_replace_transform_caps (GstBaseTransform * trans,
11 GstPadDirection direction, GstCaps * caps);
12static void
13gst_replace_fixate_caps (GstBaseTransform * trans,
14 GstPadDirection direction, GstCaps * caps, GstCaps * othercaps);
15static gboolean
16gst_replace_transform_size (GstBaseTransform * trans,
17 GstPadDirection direction,
18 GstCaps * caps, guint size, GstCaps * othercaps, guint * othersize);
19static gboolean
20gst_replace_get_unit_size (GstBaseTransform * trans, GstCaps * caps,
21 guint * size);
22static gboolean
23gst_replace_set_caps (GstBaseTransform * trans, GstCaps * incaps,
24 GstCaps * outcaps);
25static gboolean gst_replace_start (GstBaseTransform * trans);
26static gboolean gst_replace_stop (GstBaseTransform * trans);
27static gboolean gst_replace_event (GstBaseTransform * trans, GstEvent * event);
28static GstFlowReturn
29gst_replace_transform (GstBaseTransform * trans, GstBuffer * inbuf,
30 GstBuffer * outbuf);
31static GstFlowReturn
32gst_replace_transform_ip (GstBaseTransform * trans, GstBuffer * buf);
33static GstFlowReturn
34gst_replace_prepare_output_buffer (GstBaseTransform * trans,
35 GstBuffer * input, gint size, GstCaps * caps, GstBuffer ** buf);
36static gboolean
37gst_replace_src_event (GstBaseTransform * trans, GstEvent * event);
38static void
39gst_replace_before_transform (GstBaseTransform * trans, GstBuffer * buffer);
40% declare-class
41 GstBaseTransformClass *base_transform_class = GST_BASE_TRANSFORM_CLASS (klass);
42% set-methods
43 base_transform_class->transform_caps = GST_DEBUG_FUNCPTR (gst_replace_transform_caps);
44 base_transform_class->fixate_caps = GST_DEBUG_FUNCPTR (gst_replace_fixate_caps);
45 base_transform_class->transform_size = GST_DEBUG_FUNCPTR (gst_replace_transform_size);
46 base_transform_class->get_unit_size = GST_DEBUG_FUNCPTR (gst_replace_get_unit_size);
47 base_transform_class->set_caps = GST_DEBUG_FUNCPTR (gst_replace_set_caps);
48 base_transform_class->start = GST_DEBUG_FUNCPTR (gst_replace_start);
49 base_transform_class->stop = GST_DEBUG_FUNCPTR (gst_replace_stop);
50 base_transform_class->event = GST_DEBUG_FUNCPTR (gst_replace_event);
51 base_transform_class->transform = GST_DEBUG_FUNCPTR (gst_replace_transform);
52 base_transform_class->transform_ip = GST_DEBUG_FUNCPTR (gst_replace_transform_ip);
53 base_transform_class->prepare_output_buffer = GST_DEBUG_FUNCPTR (gst_replace_prepare_output_buffer);
54 base_transform_class->src_event = GST_DEBUG_FUNCPTR (gst_replace_src_event);
55 base_transform_class->before_transform = GST_DEBUG_FUNCPTR (gst_replace_before_transform);
56% methods
57
58static GstCaps *
59gst_replace_transform_caps (GstBaseTransform * trans,
60 GstPadDirection direction, GstCaps * caps)
61{
62
63 return NULL;
64}
65
66static void
67gst_replace_fixate_caps (GstBaseTransform * trans,
68 GstPadDirection direction, GstCaps * caps, GstCaps * othercaps)
69{
70
71}
72
73static gboolean
74gst_replace_transform_size (GstBaseTransform * trans,
75 GstPadDirection direction,
76 GstCaps * caps, guint size, GstCaps * othercaps, guint * othersize)
77{
78
79 return FALSE;
80}
81
82static gboolean
83gst_replace_get_unit_size (GstBaseTransform * trans, GstCaps * caps,
84 guint * size)
85{
86
87 return FALSE;
88}
89
90static gboolean
91gst_replace_set_caps (GstBaseTransform * trans, GstCaps * incaps,
92 GstCaps * outcaps)
93{
94
95 return FALSE;
96}
97
98static gboolean
99gst_replace_start (GstBaseTransform * trans)
100{
101
102 return FALSE;
103}
104
105static gboolean
106gst_replace_stop (GstBaseTransform * trans)
107{
108
109 return FALSE;
110}
111
112static gboolean
113gst_replace_event (GstBaseTransform * trans, GstEvent * event)
114{
115
116 return FALSE;
117}
118
119static GstFlowReturn
120gst_replace_transform (GstBaseTransform * trans, GstBuffer * inbuf,
121 GstBuffer * outbuf)
122{
123
124 return GST_FLOW_ERROR;
125}
126
127static GstFlowReturn
128gst_replace_transform_ip (GstBaseTransform * trans, GstBuffer * buf)
129{
130
131 return GST_FLOW_ERROR;
132}
133
134static GstFlowReturn
135gst_replace_prepare_output_buffer (GstBaseTransform * trans,
136 GstBuffer * input, gint size, GstCaps * caps, GstBuffer ** buf)
137{
138
139 return GST_FLOW_ERROR;
140}
141
142static gboolean
143gst_replace_src_event (GstBaseTransform * trans, GstEvent * event)
144{
145
146 return FALSE;
147}
148
149static void
150gst_replace_before_transform (GstBaseTransform * trans, GstBuffer * buffer)
151{
152
153}
154% end
diff --git a/tools/gstcddabasesrc.c b/tools/gstcddabasesrc.c
new file mode 100644
index 000000000..d0e0a804f
--- /dev/null
+++ b/tools/gstcddabasesrc.c
@@ -0,0 +1,51 @@
1% ClassName
2GstCddaBaseSrc
3% TYPE_CLASS_NAME
4GST_TYPE_CDDA_BASE_SRC
5% pkg-config
6gstreamer-cdda-0.10
7% includes
8#include <gst/cdda/gstcddabasesrc.h>
9% prototypes
10static gboolean gst_replace_open (GstCddaBaseSrc * src, const gchar * device);
11static void gst_replace_close (GstCddaBaseSrc * src);
12static GstBuffer *gst_replace_read_sector (GstCddaBaseSrc * src, gint sector);
13static gchar *gst_replace_get_default_device (GstCddaBaseSrc * src);
14static gchar **gst_replace_probe_devices (GstCddaBaseSrc * src);
15% declare-class
16 GstcddaBaseSrc *cddabase_src_class = GST_CDDABASE_SRC (klass);
17% set-methods
18 cddabase_src_class-> = GST_DEBUG_FUNCPTR (gst_replace_);
19% methods
20
21
22static gboolean
23gst_replace_open (GstCddaBaseSrc * src, const gchar * device)
24{
25
26}
27
28static void
29gst_replace_close (GstCddaBaseSrc * src)
30{
31
32}
33
34static GstBuffer *
35gst_replace_read_sector (GstCddaBaseSrc * src, gint sector)
36{
37
38}
39
40static gchar *
41gst_replace_get_default_device (GstCddaBaseSrc * src)
42{
43
44}
45
46static gchar **
47gst_replace_probe_devices (GstCddaBaseSrc * src)
48{
49
50}
51% end
diff --git a/tools/gstelement.c b/tools/gstelement.c
new file mode 100644
index 000000000..a0f8521ee
--- /dev/null
+++ b/tools/gstelement.c
@@ -0,0 +1,118 @@
1% ClassName
2GstElement
3% TYPE_CLASS_NAME
4GST_TYPE_ELEMENT
5% pkg-config
6gstreamer-0.10
7% includes
8#include <gst/gst.h>
9% prototypes
10static GstPad *gst_replace_request_new_pad (GstElement * element,
11 GstPadTemplate * templ, const gchar * name);
12static void gst_replace_release_pad (GstElement * element, GstPad * pad);
13static GstStateChangeReturn
14gst_replace_get_state (GstElement * element, GstState * state,
15 GstState * pending, GstClockTime timeout);
16static GstStateChangeReturn
17gst_replace_set_state (GstElement * element, GstState state);
18static GstStateChangeReturn
19gst_replace_change_state (GstElement * element, GstStateChange transition);
20static void gst_replace_set_bus (GstElement * element, GstBus * bus);
21static GstClock *gst_replace_provide_clock (GstElement * element);
22static gboolean gst_replace_set_clock (GstElement * element, GstClock * clock);
23static GstIndex *gst_replace_get_index (GstElement * element);
24static void gst_replace_set_index (GstElement * element, GstIndex * index);
25static gboolean gst_replace_send_event (GstElement * element, GstEvent * event);
26static const GstQueryType *gst_replace_get_query_types (GstElement * element);
27static gboolean gst_replace_query (GstElement * element, GstQuery * query);
28% declare-class
29 GstElement *element_class = GST_ELEMENT (klass);
30% set-methods
31 element_class-> = GST_DEBUG_FUNCPTR (gst_replace_);
32% methods
33
34
35static GstPad *
36gst_replace_request_new_pad (GstElement * element, GstPadTemplate * templ,
37 const gchar * name)
38{
39
40 return NULL;
41}
42
43static void
44gst_replace_release_pad (GstElement * element, GstPad * pad)
45{
46
47}
48
49static GstStateChangeReturn
50gst_replace_get_state (GstElement * element, GstState * state,
51 GstState * pending, GstClockTime timeout)
52{
53
54 return GST_STATE_CHANGE_OK;
55}
56
57static GstStateChangeReturn
58gst_replace_set_state (GstElement * element, GstState state)
59{
60
61 return GST_STATE_CHANGE_OK;
62}
63
64static GstStateChangeReturn
65gst_replace_change_state (GstElement * element, GstStateChange transition)
66{
67
68 return GST_STATE_CHANGE_OK;
69}
70
71static void
72gst_replace_set_bus (GstElement * element, GstBus * bus)
73{
74
75}
76
77static GstClock *
78gst_replace_provide_clock (GstElement * element)
79{
80
81}
82
83static gboolean
84gst_replace_set_clock (GstElement * element, GstClock * clock)
85{
86
87}
88
89static GstIndex *
90gst_replace_get_index (GstElement * element)
91{
92
93}
94
95static void
96gst_replace_set_index (GstElement * element, GstIndex * index)
97{
98
99}
100
101static gboolean
102gst_replace_send_event (GstElement * element, GstEvent * event)
103{
104
105}
106
107static const GstQueryType *
108gst_replace_get_query_types (GstElement * element)
109{
110
111}
112
113static gboolean
114gst_replace_query (GstElement * element, GstQuery * query)
115{
116
117}
118% end
diff --git a/tools/gstpushsrc.c b/tools/gstpushsrc.c
new file mode 100644
index 000000000..5db8e7630
--- /dev/null
+++ b/tools/gstpushsrc.c
@@ -0,0 +1,22 @@
1% ClassName
2GstPushSrc
3% TYPE_CLASS_NAME
4GST_TYPE_PUSH_SRC
5% pkg-config
6gstreamer-base-0.10
7% includes
8#include <gst/base/gstpushsrc.h>
9% prototypes
10static GstFlowReturn gst_replace_create (GstPushSrc * src, GstBuffer ** buf);
11% declare-class
12 GstPushSrc *pushsrc_class = GST_PUSHSRC (klass);
13% set-methods
14 pushsrc_class-> = GST_DEBUG_FUNCPTR (gst_replace_);
15% methods
16
17static GstFlowReturn
18gst_replace_create (GstPushSrc * src, GstBuffer ** buf)
19{
20
21}
22% end
diff --git a/tools/gsttagdemux.c b/tools/gsttagdemux.c
new file mode 100644
index 000000000..7ddec9d87
--- /dev/null
+++ b/tools/gsttagdemux.c
@@ -0,0 +1,47 @@
1% ClassName
2GstTagDemux
3% TYPE_CLASS_NAME
4GST_TYPE_TAG_DEMUX
5% pkg-config
6gstreamer-tag-0.10
7% includes
8#include <gst/tag/gsttagdemux.h>
9% prototypes
10static gboolean
11gst_replace_identify_tag (GstTagDemux * demux,
12 GstBuffer * buffer, gboolean start_tag, guint * tag_size);
13static GstTagDemuxResult
14gst_replace_parse_tag (GstTagDemux * demux,
15 GstBuffer * buffer,
16 gboolean start_tag, guint * tag_size, GstTagList ** tags);
17static GstTagList *gst_replace_merge_tags (GstTagDemux * demux,
18 const GstTagList * start_tags, const GstTagList * end_tags);
19% declare-class
20 GstTagdemux *tagdemux_class = GST_TAGDEMUX (klass);
21% set-methods
22 tagdemux_class-> = GST_DEBUG_FUNCPTR (gst_replace_);
23% methods
24
25
26static gboolean
27gst_replace_identify_tag (GstTagDemux * demux,
28 GstBuffer * buffer, gboolean start_tag, guint * tag_size)
29{
30
31}
32
33static GstTagDemuxResult
34gst_replace_parse_tag (GstTagDemux * demux,
35 GstBuffer * buffer,
36 gboolean start_tag, guint * tag_size, GstTagList ** tags)
37{
38
39}
40
41static GstTagList *
42gst_replace_merge_tags (GstTagDemux * demux,
43 const GstTagList * start_tags, const GstTagList * end_tags)
44{
45
46}
47% end
diff --git a/tools/gstvideosink.c b/tools/gstvideosink.c
new file mode 100644
index 000000000..ce12a07f3
--- /dev/null
+++ b/tools/gstvideosink.c
@@ -0,0 +1,29 @@
1% ClassName
2GstVideoSink
3% TYPE_CLASS_NAME
4GST_TYPE_VIDEO_SINK
5% pkg-config
6gstreamer-video-0.10
7% includes
8#include <gst/video/gstvideosink.h>
9% prototypes
10
11static GstFlowReturn
12gst_replace_show_frame (GstVideoSink * video_sink, GstBuffer * buf);
13
14
15% declare-class
16 GstVideoSinkClass *video_sink_class = GST_VIDEO_SINK_CLASS (klass);
17% set-methods
18 video_sink_class->show_frame = GST_DEBUG_FUNCPTR (gst_replace_show_frame);
19% methods
20
21static GstFlowReturn
22gst_replace_show_frame (GstVideoSink * video_sink, GstBuffer * buf)
23{
24
25 return GST_FLOW_OK;
26}
27
28% end
29