#include <glib/gprintf.h>
#include <gst/gst.h>
+#include <gst/base/gstbasesrc.h>
+#include <gst/base/gstbasesink.h>
+#include <gst/base/gstbasetransform.h>
+#include <gst/base/gstpushsrc.h>
#define PUT_START_TAG(pfx,tag) \
G_STMT_START{ \
if (param->owner_type == GST_TYPE_OBJECT ||
param->owner_type == GST_TYPE_ELEMENT ||
param->owner_type == GST_TYPE_BIN ||
- param->owner_type == GST_TYPE_PIPELINE)
+ param->owner_type == GST_TYPE_PIPELINE ||
+ param->owner_type == GST_TYPE_BASE_SRC ||
+ param->owner_type == GST_TYPE_BASE_SINK ||
+ param->owner_type == GST_TYPE_BASE_TRANSFORM ||
+ param->owner_type == GST_TYPE_PUSH_SRC)
continue;
PUT_START_TAG (pfx + 1, "element-property");
</interfaces>
<pad-templates>
<pad-template>
- <name>sink</name>
- <direction>sink</direction>
- <presence>always</presence>
- <caps>ANY</caps>
- </pad-template>
- <pad-template>
<name>src%d</name>
<direction>src</direction>
<presence>sometimes</presence>
<caps>ANY</caps>
</pad-template>
+ <pad-template>
+ <name>sink</name>
+ <direction>sink</direction>
+ <presence>always</presence>
+ <caps>ANY</caps>
+ </pad-template>
</pad-templates>
<element-flags>
</element-flags>
</interfaces>
<pad-templates>
<pad-template>
- <name>sink</name>
- <direction>sink</direction>
- <presence>always</presence>
- <caps>ANY</caps>
- </pad-template>
- <pad-template>
<name>src%d</name>
<direction>src</direction>
<presence>sometimes</presence>
<caps>ANY</caps>
</pad-template>
+ <pad-template>
+ <name>sink</name>
+ <direction>sink</direction>
+ <presence>always</presence>
+ <caps>ANY</caps>
+ </pad-template>
</pad-templates>
<element-flags>
</element-flags>
</object>
</object>
<interfaces>
+ <interface name="GstPropertyProbe" />
<interface name="GstImplementsInterface" />
<interface name="GstNavigation" />
<interface name="GstXOverlay" />
<interface name="GstColorBalance" />
- <interface name="GstPropertyProbe" />
</interfaces>
<pad-templates>
<pad-template>
</pads>
<element-properties>
<element-property>
- <name>preroll-queue-len</name>
- <type>guint</type>
- <nick>Preroll queue length</nick>
- <blurb>Number of buffers to queue during preroll</blurb>
- <flags>RW</flags>
- <range min="0" max="4294967295"/>
- <default>0</default>
- </element-property>
- <element-property>
- <name>sync</name>
- <type>gboolean</type>
- <nick>Sync</nick>
- <blurb>Sync on the clock</blurb>
- <flags>RW</flags>
- <default>TRUE</default>
- </element-property>
- <element-property>
- <name>max-lateness</name>
- <type>gint64</type>
- <nick>Max Lateness</nick>
- <blurb>Maximum number of nanoseconds that a buffer can be late before it is dropped (-1 unlimited)</blurb>
- <flags>RW</flags>
- <range min="-1" max="9223372036854775807"/>
- <default>20000000</default>
- </element-property>
- <element-property>
- <name>qos</name>
- <type>gboolean</type>
- <nick>Qos</nick>
- <blurb>Generate Quality-of-Service events upstream</blurb>
- <flags>RW</flags>
- <default>TRUE</default>
- </element-property>
- <element-property>
- <name>async</name>
- <type>gboolean</type>
- <nick>Async</nick>
- <blurb>Go asynchronously to PAUSED</blurb>
- <flags>RW</flags>
- <default>TRUE</default>
- </element-property>
- <element-property>
- <name>ts-offset</name>
- <type>gint64</type>
- <nick>TS Offset</nick>
- <blurb>Timestamp offset in nanoseconds</blurb>
- <flags>RW</flags>
- <range min="-9223372036854775808" max="9223372036854775807"/>
- <default>0</default>
- </element-property>
- <element-property>
- <name>last-buffer</name>
- <type>GstBuffer</type>
- <nick>Last Buffer</nick>
- <blurb>The last buffer received in the sink</blurb>
- <flags>R</flags>
- </element-property>
- <element-property>
- <name>blocksize</name>
- <type>guint</type>
- <nick>Block size</nick>
- <blurb>Size in bytes to pull per buffer (0 = default)</blurb>
- <flags>RW</flags>
- <range min="0" max="4294967295"/>
- <default>4096</default>
- </element-property>
- <element-property>
- <name>render-delay</name>
- <type>guint64</type>
- <nick>Render Delay</nick>
- <blurb>Additional render delay of the sink in nanoseconds</blurb>
- <flags>RW</flags>
- <range min="0" max="18446744073709551615"/>
- <default>0</default>
- </element-property>
- <element-property>
<name>contrast</name>
<type>gint</type>
<nick>Contrast</nick>
</interfaces>
<pad-templates>
<pad-template>
- <name>sink</name>
- <direction>sink</direction>
+ <name>src</name>
+ <direction>src</direction>
<presence>always</presence>
<caps>ANY</caps>
</pad-template>
<pad-template>
- <name>src</name>
- <direction>src</direction>
+ <name>sink</name>
+ <direction>sink</direction>
<presence>always</presence>
<caps>ANY</caps>
</pad-template>
</pads>
<element-properties>
<element-property>
- <name>qos</name>
- <type>gboolean</type>
- <nick>QoS</nick>
- <blurb>Handle Quality-of-Service events</blurb>
- <flags>RW</flags>
- <default>FALSE</default>
- </element-property>
- <element-property>
<name>caps</name>
<type>GstCaps</type>
<nick>Filter caps</nick>
</pads>
<element-properties>
<element-property>
- <name>preroll-queue-len</name>
- <type>guint</type>
- <nick>Preroll queue length</nick>
- <blurb>Number of buffers to queue during preroll</blurb>
- <flags>RW</flags>
- <range min="0" max="4294967295"/>
- <default>0</default>
- </element-property>
- <element-property>
- <name>sync</name>
- <type>gboolean</type>
- <nick>Sync</nick>
- <blurb>Sync on the clock</blurb>
- <flags>RW</flags>
- <default>FALSE</default>
- </element-property>
- <element-property>
- <name>max-lateness</name>
- <type>gint64</type>
- <nick>Max Lateness</nick>
- <blurb>Maximum number of nanoseconds that a buffer can be late before it is dropped (-1 unlimited)</blurb>
- <flags>RW</flags>
- <range min="-1" max="9223372036854775807"/>
- <default>-1</default>
- </element-property>
- <element-property>
- <name>qos</name>
- <type>gboolean</type>
- <nick>Qos</nick>
- <blurb>Generate Quality-of-Service events upstream</blurb>
- <flags>RW</flags>
- <default>FALSE</default>
- </element-property>
- <element-property>
- <name>async</name>
- <type>gboolean</type>
- <nick>Async</nick>
- <blurb>Go asynchronously to PAUSED</blurb>
- <flags>RW</flags>
- <default>TRUE</default>
- </element-property>
- <element-property>
- <name>ts-offset</name>
- <type>gint64</type>
- <nick>TS Offset</nick>
- <blurb>Timestamp offset in nanoseconds</blurb>
- <flags>RW</flags>
- <range min="-9223372036854775808" max="9223372036854775807"/>
- <default>0</default>
- </element-property>
- <element-property>
- <name>last-buffer</name>
- <type>GstBuffer</type>
- <nick>Last Buffer</nick>
- <blurb>The last buffer received in the sink</blurb>
- <flags>R</flags>
- </element-property>
- <element-property>
- <name>blocksize</name>
- <type>guint</type>
- <nick>Block size</nick>
- <blurb>Size in bytes to pull per buffer (0 = default)</blurb>
- <flags>RW</flags>
- <range min="0" max="4294967295"/>
- <default>4096</default>
- </element-property>
- <element-property>
- <name>render-delay</name>
- <type>guint64</type>
- <nick>Render Delay</nick>
- <blurb>Additional render delay of the sink in nanoseconds</blurb>
- <flags>RW</flags>
- <range min="0" max="18446744073709551615"/>
- <default>0</default>
- </element-property>
- <element-property>
<name>state-error</name>
<type>GstFakeSinkStateError</type>
<nick>State Error</nick>
</pads>
<element-properties>
<element-property>
- <name>blocksize</name>
- <type>gulong</type>
- <nick>Block size</nick>
- <blurb>Size in bytes to read per buffer (-1 = default)</blurb>
- <flags>RW</flags>
- <range min="0" max="18446744073709551615"/>
- <default>4096</default>
- </element-property>
- <element-property>
- <name>num-buffers</name>
- <type>gint</type>
- <nick>num-buffers</nick>
- <blurb>Number of buffers to output before sending EOS (-1 = unlimited)</blurb>
- <flags>RW</flags>
- <range min="-1" max="2147483647"/>
- <default>-1</default>
- </element-property>
- <element-property>
- <name>typefind</name>
- <type>gboolean</type>
- <nick>Typefind</nick>
- <blurb>Run typefind before negotiating</blurb>
- <flags>RW</flags>
- <default>FALSE</default>
- </element-property>
- <element-property>
- <name>do-timestamp</name>
- <type>gboolean</type>
- <nick>Do timestamp</nick>
- <blurb>Apply current stream time to buffers</blurb>
- <flags>RW</flags>
- <default>FALSE</default>
- </element-property>
- <element-property>
<name>data</name>
<type>GstFakeSrcDataType</type>
<nick>data</nick>
</pads>
<element-properties>
<element-property>
- <name>preroll-queue-len</name>
- <type>guint</type>
- <nick>Preroll queue length</nick>
- <blurb>Number of buffers to queue during preroll</blurb>
- <flags>RW</flags>
- <range min="0" max="4294967295"/>
- <default>0</default>
- </element-property>
- <element-property>
- <name>sync</name>
- <type>gboolean</type>
- <nick>Sync</nick>
- <blurb>Sync on the clock</blurb>
- <flags>RW</flags>
- <default>TRUE</default>
- </element-property>
- <element-property>
- <name>max-lateness</name>
- <type>gint64</type>
- <nick>Max Lateness</nick>
- <blurb>Maximum number of nanoseconds that a buffer can be late before it is dropped (-1 unlimited)</blurb>
- <flags>RW</flags>
- <range min="-1" max="9223372036854775807"/>
- <default>-1</default>
- </element-property>
- <element-property>
- <name>qos</name>
- <type>gboolean</type>
- <nick>Qos</nick>
- <blurb>Generate Quality-of-Service events upstream</blurb>
- <flags>RW</flags>
- <default>FALSE</default>
- </element-property>
- <element-property>
- <name>async</name>
- <type>gboolean</type>
- <nick>Async</nick>
- <blurb>Go asynchronously to PAUSED</blurb>
- <flags>RW</flags>
- <default>TRUE</default>
- </element-property>
- <element-property>
- <name>ts-offset</name>
- <type>gint64</type>
- <nick>TS Offset</nick>
- <blurb>Timestamp offset in nanoseconds</blurb>
- <flags>RW</flags>
- <range min="-9223372036854775808" max="9223372036854775807"/>
- <default>0</default>
- </element-property>
- <element-property>
- <name>last-buffer</name>
- <type>GstBuffer</type>
- <nick>Last Buffer</nick>
- <blurb>The last buffer received in the sink</blurb>
- <flags>R</flags>
- </element-property>
- <element-property>
- <name>blocksize</name>
- <type>guint</type>
- <nick>Block size</nick>
- <blurb>Size in bytes to pull per buffer (0 = default)</blurb>
- <flags>RW</flags>
- <range min="0" max="4294967295"/>
- <default>4096</default>
- </element-property>
- <element-property>
- <name>render-delay</name>
- <type>guint64</type>
- <nick>Render Delay</nick>
- <blurb>Additional render delay of the sink in nanoseconds</blurb>
- <flags>RW</flags>
- <range min="0" max="18446744073709551615"/>
- <default>0</default>
- </element-property>
- <element-property>
<name>fd</name>
<type>gint</type>
<nick>fd</nick>
</pads>
<element-properties>
<element-property>
- <name>blocksize</name>
- <type>gulong</type>
- <nick>Block size</nick>
- <blurb>Size in bytes to read per buffer (-1 = default)</blurb>
- <flags>RW</flags>
- <range min="0" max="18446744073709551615"/>
- <default>4096</default>
- </element-property>
- <element-property>
- <name>num-buffers</name>
- <type>gint</type>
- <nick>num-buffers</nick>
- <blurb>Number of buffers to output before sending EOS (-1 = unlimited)</blurb>
- <flags>RW</flags>
- <range min="-1" max="2147483647"/>
- <default>-1</default>
- </element-property>
- <element-property>
- <name>typefind</name>
- <type>gboolean</type>
- <nick>Typefind</nick>
- <blurb>Run typefind before negotiating</blurb>
- <flags>RW</flags>
- <default>FALSE</default>
- </element-property>
- <element-property>
- <name>do-timestamp</name>
- <type>gboolean</type>
- <nick>Do timestamp</nick>
- <blurb>Apply current stream time to buffers</blurb>
- <flags>RW</flags>
- <default>FALSE</default>
- </element-property>
- <element-property>
<name>fd</name>
<type>gint</type>
<nick>fd</nick>
</pads>
<element-properties>
<element-property>
- <name>preroll-queue-len</name>
- <type>guint</type>
- <nick>Preroll queue length</nick>
- <blurb>Number of buffers to queue during preroll</blurb>
- <flags>RW</flags>
- <range min="0" max="4294967295"/>
- <default>0</default>
- </element-property>
- <element-property>
- <name>sync</name>
- <type>gboolean</type>
- <nick>Sync</nick>
- <blurb>Sync on the clock</blurb>
- <flags>RW</flags>
- <default>FALSE</default>
- </element-property>
- <element-property>
- <name>max-lateness</name>
- <type>gint64</type>
- <nick>Max Lateness</nick>
- <blurb>Maximum number of nanoseconds that a buffer can be late before it is dropped (-1 unlimited)</blurb>
- <flags>RW</flags>
- <range min="-1" max="9223372036854775807"/>
- <default>-1</default>
- </element-property>
- <element-property>
- <name>qos</name>
- <type>gboolean</type>
- <nick>Qos</nick>
- <blurb>Generate Quality-of-Service events upstream</blurb>
- <flags>RW</flags>
- <default>FALSE</default>
- </element-property>
- <element-property>
- <name>async</name>
- <type>gboolean</type>
- <nick>Async</nick>
- <blurb>Go asynchronously to PAUSED</blurb>
- <flags>RW</flags>
- <default>TRUE</default>
- </element-property>
- <element-property>
- <name>ts-offset</name>
- <type>gint64</type>
- <nick>TS Offset</nick>
- <blurb>Timestamp offset in nanoseconds</blurb>
- <flags>RW</flags>
- <range min="-9223372036854775808" max="9223372036854775807"/>
- <default>0</default>
- </element-property>
- <element-property>
- <name>last-buffer</name>
- <type>GstBuffer</type>
- <nick>Last Buffer</nick>
- <blurb>The last buffer received in the sink</blurb>
- <flags>R</flags>
- </element-property>
- <element-property>
- <name>blocksize</name>
- <type>guint</type>
- <nick>Block size</nick>
- <blurb>Size in bytes to pull per buffer (0 = default)</blurb>
- <flags>RW</flags>
- <range min="0" max="4294967295"/>
- <default>4096</default>
- </element-property>
- <element-property>
- <name>render-delay</name>
- <type>guint64</type>
- <nick>Render Delay</nick>
- <blurb>Additional render delay of the sink in nanoseconds</blurb>
- <flags>RW</flags>
- <range min="0" max="18446744073709551615"/>
- <default>0</default>
- </element-property>
- <element-property>
<name>location</name>
<type>gchararray</type>
<nick>File Location</nick>
</pads>
<element-properties>
<element-property>
- <name>blocksize</name>
- <type>gulong</type>
- <nick>Block size</nick>
- <blurb>Size in bytes to read per buffer (-1 = default)</blurb>
- <flags>RW</flags>
- <range min="0" max="18446744073709551615"/>
- <default>4096</default>
- </element-property>
- <element-property>
- <name>num-buffers</name>
- <type>gint</type>
- <nick>num-buffers</nick>
- <blurb>Number of buffers to output before sending EOS (-1 = unlimited)</blurb>
- <flags>RW</flags>
- <range min="-1" max="2147483647"/>
- <default>-1</default>
- </element-property>
- <element-property>
- <name>typefind</name>
- <type>gboolean</type>
- <nick>Typefind</nick>
- <blurb>Run typefind before negotiating</blurb>
- <flags>RW</flags>
- <default>FALSE</default>
- </element-property>
- <element-property>
- <name>do-timestamp</name>
- <type>gboolean</type>
- <nick>Do timestamp</nick>
- <blurb>Apply current stream time to buffers</blurb>
- <flags>RW</flags>
- <default>FALSE</default>
- </element-property>
- <element-property>
<name>location</name>
<type>gchararray</type>
<nick>File Location</nick>
</interfaces>
<pad-templates>
<pad-template>
- <name>sink</name>
- <direction>sink</direction>
+ <name>src</name>
+ <direction>src</direction>
<presence>always</presence>
<caps>ANY</caps>
</pad-template>
<pad-template>
- <name>src</name>
- <direction>src</direction>
+ <name>sink</name>
+ <direction>sink</direction>
<presence>always</presence>
<caps>ANY</caps>
</pad-template>
</pads>
<element-properties>
<element-property>
- <name>qos</name>
- <type>gboolean</type>
- <nick>QoS</nick>
- <blurb>Handle Quality-of-Service events</blurb>
- <flags>RW</flags>
- <default>FALSE</default>
- </element-property>
- <element-property>
<name>sleep-time</name>
<type>guint</type>
<nick>Sleep time</nick>
</interfaces>
<pad-templates>
<pad-template>
- <name>src%d</name>
- <direction>src</direction>
- <presence>sometimes</presence>
- <caps>ANY</caps>
- </pad-template>
- <pad-template>
<name>sink%d</name>
<direction>sink</direction>
<presence>request</presence>
<request-function>gst_multi_queue_request_new_pad</request-function>
<caps>ANY</caps>
</pad-template>
+ <pad-template>
+ <name>src%d</name>
+ <direction>src</direction>
+ <presence>sometimes</presence>
+ <caps>ANY</caps>
+ </pad-template>
</pad-templates>
<element-flags>
</element-flags>
</interfaces>
<pad-templates>
<pad-template>
- <name>sink</name>
- <direction>sink</direction>
+ <name>src</name>
+ <direction>src</direction>
<presence>always</presence>
<caps>ANY</caps>
</pad-template>
<pad-template>
- <name>src</name>
- <direction>src</direction>
+ <name>sink</name>
+ <direction>sink</direction>
<presence>always</presence>
<caps>ANY</caps>
</pad-template>
</interfaces>
<pad-templates>
<pad-template>
+ <name>sink</name>
+ <direction>sink</direction>
+ <presence>always</presence>
+ <caps>ANY</caps>
+ </pad-template>
+ <pad-template>
<name>src%d</name>
<direction>src</direction>
<presence>request</presence>
<request-function>gst_tee_request_new_pad</request-function>
<caps>ANY</caps>
</pad-template>
- <pad-template>
- <name>sink</name>
- <direction>sink</direction>
- <presence>always</presence>
- <caps>ANY</caps>
- </pad-template>
</pad-templates>
<element-flags>
</element-flags>
</interfaces>
<pad-templates>
<pad-template>
- <name>sink</name>
- <direction>sink</direction>
+ <name>src</name>
+ <direction>src</direction>
<presence>always</presence>
<caps>ANY</caps>
</pad-template>
<pad-template>
- <name>src</name>
- <direction>src</direction>
+ <name>sink</name>
+ <direction>sink</direction>
<presence>always</presence>
<caps>ANY</caps>
</pad-template>