gst-element-maker: add video pad template and use it in videofilter class
authorTim-Philipp Müller <tim.muller@collabora.co.uk>
Sat, 17 Mar 2012 16:05:20 +0000 (16:05 +0000)
committerTim-Philipp Müller <tim.muller@collabora.co.uk>
Sat, 17 Mar 2012 16:05:20 +0000 (16:05 +0000)
Would be nicer if one could just supplement the generic template
from the element template though.

Also, I would really have liked to just add those sections from the
pads template into the element templet directly (so I can cater for
src template caps == sink template caps), but that didn't seem to
work.

tools/element-templates/sinkpad-template-video [new file with mode: 0644]
tools/element-templates/srcpad-template-video [new file with mode: 0644]
tools/element-templates/videofilter

diff --git a/tools/element-templates/sinkpad-template-video b/tools/element-templates/sinkpad-template-video
new file mode 100644 (file)
index 0000000..ffdac84
--- /dev/null
@@ -0,0 +1,33 @@
+/* vim: set filetype=c: */
+
+% instance-members
+% prototypes
+% pad-template
+/* FIXME: add/remove formats you can handle */
+#define VIDEO_SINK_CAPS \
+    GST_VIDEO_CAPS_RGBA \
+    GST_VIDEO_CAPS_ARGB \
+    GST_VIDEO_CAPS_BGRA \
+    GST_VIDEO_CAPS_ABGR \
+    GST_VIDEO_CAPS_RGBx \
+    GST_VIDEO_CAPS_xRGB \
+    GST_VIDEO_CAPS_BGRx \
+    GST_VIDEO_CAPS_xBGR \
+    GST_VIDEO_CAPS_RGB \
+    GST_VIDEO_CAPS_BGR \
+    GST_VIDEO_CAPS_YUV("{ AYUV }")
+
+static GstStaticPadTemplate gst_replace_sink_template =
+GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS (VIDEO_SINK_CAPS)
+    );
+
+% base-init
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_replace_sink_template);
+% instance-init
+% methods
+% end
+
diff --git a/tools/element-templates/srcpad-template-video b/tools/element-templates/srcpad-template-video
new file mode 100644 (file)
index 0000000..bfdc931
--- /dev/null
@@ -0,0 +1,33 @@
+/* vim: set filetype=c: */
+
+% instance-members
+% prototypes
+% pad-template
+/* FIXME: add/remove formats you can handle */
+#define VIDEO_SRC_CAPS \
+    GST_VIDEO_CAPS_RGBA \
+    GST_VIDEO_CAPS_ARGB \
+    GST_VIDEO_CAPS_BGRA \
+    GST_VIDEO_CAPS_ABGR \
+    GST_VIDEO_CAPS_RGBx \
+    GST_VIDEO_CAPS_xRGB \
+    GST_VIDEO_CAPS_BGRx \
+    GST_VIDEO_CAPS_xBGR \
+    GST_VIDEO_CAPS_RGB \
+    GST_VIDEO_CAPS_BGR \
+    GST_VIDEO_CAPS_YUV("{ AYUV }")
+
+static GstStaticPadTemplate gst_replace_src_template =
+GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS (VIDEO_SRC_CAPS)
+    );
+
+% base-init
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_replace_src_template);
+% instance-init
+% methods
+% end
+
index 65b2f37..3a94b08 100644 (file)
@@ -4,7 +4,7 @@ GstVideoFilter
 % TYPE_CLASS_NAME
 GST_TYPE_VIDEO_FILTER
 % pads
-sinkpad-template srcpad-template
+sinkpad-template-video srcpad-template-video
 % pkg-config
 gstreamer-video-0.10
 % includes