diff options
author | Andoni Morales Alastruey <ylatuya@gmail.com> | 2010-02-13 12:35:50 +0100 |
---|---|---|
committer | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2010-02-14 10:26:09 +0100 |
commit | 7509d26528ef6103df6910c7197438235f361c28 (patch) | |
tree | d3df48d933d8e6eda06a6c3eecf63d5cf88e440f | |
parent | f774273d46f389c12bbf7c638c84242cbf79388e (diff) |
Add bindings for Windows specific plugins
-rw-r--r-- | gstreamer-sharp/Makefile.am | 2 | ||||
-rw-r--r-- | gstreamer-sharp/badplugins/Makefile.am | 31 | ||||
-rw-r--r-- | gstreamer-sharp/badplugins/inspect/dshowaudiosrc.raw | 142 | ||||
-rw-r--r-- | gstreamer-sharp/badplugins/inspect/dshowvideosink.raw | 86 | ||||
-rw-r--r-- | gstreamer-sharp/badplugins/inspect/dshowvideosrc.raw | 78 | ||||
-rw-r--r-- | gstreamer-sharp/goodplugins/Makefile.am | 31 | ||||
-rw-r--r-- | gstreamer-sharp/goodplugins/inspect/directdrawsink.raw | 81 |
7 files changed, 450 insertions, 1 deletions
diff --git a/gstreamer-sharp/Makefile.am b/gstreamer-sharp/Makefile.am index 30ea4d5..4836ed5 100644 --- a/gstreamer-sharp/Makefile.am +++ b/gstreamer-sharp/Makefile.am @@ -1,4 +1,4 @@ -SUBDIRS = . glue coreplugins baseplugins +SUBDIRS = . glue coreplugins baseplugins goodplugins badplugins TARGET = $(ASSEMBLY) noinst_DATA = $(TARGET) diff --git a/gstreamer-sharp/badplugins/Makefile.am b/gstreamer-sharp/badplugins/Makefile.am new file mode 100644 index 0000000..915c3d1 --- /dev/null +++ b/gstreamer-sharp/badplugins/Makefile.am @@ -0,0 +1,31 @@ +ELEMENTS = dshowvideosink dshowvideosrc dshowaudiosrc + +NAMESPACE = Gst.BadPlugins +INSPECT_FILES = $(patsubst %,$(srcdir)/inspect/%.raw,$(ELEMENTS)) +METADATA_FILES = $(srcdir)/decodebin2.metadata $(srcdir)/playbin2.metadata +CS_FILES = $(patsubst %,$(builddir)/generated/%.cs,$(ELEMENTS)) +XML_FILES = $(patsubst %,$(builddir)/%.xml,$(ELEMENTS)) + +EXTRA_DIST = $(METADATA_FILES) $(INSPECT_FILES) +CLEANFILES = $(XML_FILES) $(CS_FILES) +MAINTAINERCLEANFILES = Makefile.in + +plugins-update: $(patsubst $(srcdir)/inspect/%.raw, inspect-%, $(INSPECT_FILES)) +inspect-%: + $(top_builddir)/elementgen/gsts-xmlinspect $(patsubst inspect-%,%,$@) > inspect/$(patsubst inspect-%,%,$@).raw + +all: $(XML_FILES) $(CS_FILES) + touch generated + +generated/%.cs: $(top_builddir)/elementgen/element-gen.exe $(top_builddir)/gstreamer-sharp/gstreamer-api.xml $(builddir)/%.xml + @mkdir -p generated + $(MONO) $(top_builddir)/elementgen/element-gen.exe --namespace=$(NAMESPACE) \ + --api=$(top_builddir)/gstreamer-sharp/gstreamer-api.xml --input=$(patsubst generated/%.cs,$(builddir)/%.xml,$@) --customfile=$(patsubst generated/%.cs,$(srcdir)/%.custom,$@) --interfacesdir=$(top_srcdir)/elementgen/interfaces > $@ + +%.xml: $(top_builddir)/parser/gst-gapi-fixup.exe $(srcdir)/inspect/%.raw $(srcdir)/%.metadata + cp $(patsubst %.xml,$(srcdir)/inspect/%.raw,$@) $(builddir)/$@ + chmod +w $(builddir)/$@ + $(MONO) $(top_builddir)/parser/gst-gapi-fixup.exe --api=$(builddir)/$@ --metadata=$(patsubst %.xml,$(srcdir)/%.metadata,$@) + +%.xml: $(top_builddir)/parser/gst-gapi-fixup.exe $(srcdir)/inspect/%.raw + cp $(patsubst %.xml,$(srcdir)/inspect/%.raw,$@) $(builddir)/$@ diff --git a/gstreamer-sharp/badplugins/inspect/dshowaudiosrc.raw b/gstreamer-sharp/badplugins/inspect/dshowaudiosrc.raw new file mode 100644 index 0000000..abc9bb2 --- /dev/null +++ b/gstreamer-sharp/badplugins/inspect/dshowaudiosrc.raw @@ -0,0 +1,142 @@ +<element> + <name>dshowaudiosrc</name> + <details> + <long-name>Directshow audio capture source</long-name> + <class>Source/Audio</class> + <description>Receive data from a directshow audio capture graph</description> + <authors>Sebastien Moutte <sebastien@moutte.net></authors> + </details> + <object name="GstDshowAudioSrc"> + <object name="GstAudioSrc"> + <object name="GstBaseAudioSrc"> + <object name="GstPushSrc"> + <object name="GstBaseSrc"> + <object name="GstElement"> + <object name="GstObject"> + <object name="GObject"> + </object> + </object> + </object> + </object> + </object> + </object> + </object> + </object> + <interfaces> + <interface name="GstPropertyProbe" /> + <interface name="GstImplementsInterface" /> + <interface name="GstMixer" /> + </interfaces> + <pad-templates> + <pad-template> + <name>src</name> + <direction>src</direction> + <presence>always</presence> + <caps>audio/x-raw-int, endianness=(int){ 1234 }, signed=(boolean){ true, false }, width=(int)16, depth=(int)16, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2 ]; audio/x-raw-int, signed=(boolean){ true, false }, width=(int)8, depth=(int)8, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2 ]</caps> + </pad-template> + </pad-templates> + <element-flags> + </element-flags> + <element-implementation> + <state-change function="gst_dshowaudiosrc_change_state"/> + <save function="gst_element_save_thyself"/> + <load function="gst_element_restore_thyself"/> + </element-implementation> + <clocking-interaction> + </clocking-interaction> + <pads> + <pad> + <name>src</name> + <direction>src</direction> + <template>src</template> + <implementation> + <get-range-based function="gst_base_src_pad_get_range"/> + <event-function function="gst_base_src_event_handler"/> + <query-function function="gst_base_src_query"/> + <query-type-func function="gst_pad_get_query_types_default"> + </query-type-func> + <intlink-function function="gst_pad_get_internal_links_default"/> + </implementation> + </pad> + </pads> + <element-properties> + <element-property> + <name>buffer-time</name> + <type>gint64</type> + <nick>Buffer Time</nick> + <blurb>Size of audio buffer in microseconds</blurb> + <flags>RW</flags> + <range min="1" max="9223372036854775807"/> + <default>200000</default> + </element-property> + <element-property> + <name>latency-time</name> + <type>gint64</type> + <nick>Latency Time</nick> + <blurb>Audio latency in microseconds</blurb> + <flags>RW</flags> + <range min="1" max="9223372036854775807"/> + <default>10000</default> + </element-property> + <element-property> + <name>actual-buffer-time</name> + <type>gint64</type> + <nick>Actual Buffer Time</nick> + <blurb>Actual configured size of audio buffer in microseconds</blurb> + <flags>R</flags> + <range min="-1" max="9223372036854775807"/> + <default>-1</default> + </element-property> + <element-property> + <name>actual-latency-time</name> + <type>gint64</type> + <nick>Actual Latency Time</nick> + <blurb>Actual configured audio latency in microseconds</blurb> + <flags>R</flags> + <range min="-1" max="9223372036854775807"/> + <default>-1</default> + </element-property> + <element-property> + <name>provide-clock</name> + <type>gboolean</type> + <nick>Provide Clock</nick> + <blurb>Provide a clock to be used as the global pipeline clock</blurb> + <flags>RW</flags> + <default>TRUE</default> + </element-property> + <element-property> + <name>slave-method</name> + <type>GstBaseAudioSrcSlaveMethod</type> + <nick>Slave Method</nick> + <blurb>Algorithm to use to match the rate of the masterclock</blurb> + <flags>RW</flags> + <default>2</default> + <enum-values> + <value value="0" nick="resample"/> + <value value="1" nick="re-timestamp"/> + <value value="2" nick="skew"/> + <value value="3" nick="none"/> + </enum-values> + </element-property> + <element-property> + <name>device</name> + <type>gchararray</type> + <nick>Device</nick> + <blurb>Directshow device reference (classID/name)</blurb> + <flags>RW</flags> + <default>NULL</default> + </element-property> + <element-property> + <name>device-name</name> + <type>gchararray</type> + <nick>Device name</nick> + <blurb>Human-readable name of the sound device</blurb> + <flags>RW</flags> + <default>NULL</default> + </element-property> + </element-properties> + <element-signals> + </element-signals> + <element-actions> + </element-actions> +</element> diff --git a/gstreamer-sharp/badplugins/inspect/dshowvideosink.raw b/gstreamer-sharp/badplugins/inspect/dshowvideosink.raw new file mode 100644 index 0000000..d85fd80 --- /dev/null +++ b/gstreamer-sharp/badplugins/inspect/dshowvideosink.raw @@ -0,0 +1,86 @@ +<element> + <name>dshowvideosink</name> + <details> + <long-name>DirectShow video sink</long-name> + <class>Sink/Video</class> + <description>Display data using a DirectShow video renderer</description> + <authors>Pioneers of the Inevitable <songbird@songbirdnest.com></authors> + </details> + <object name="GstDshowVideoSink"> + <object name="GstBaseSink"> + <object name="GstElement"> + <object name="GstObject"> + <object name="GObject"> + </object> + </object> + </object> + </object> + </object> + <interfaces> + <interface name="GstImplementsInterface" /> + <interface name="GstXOverlay" /> + </interfaces> + <pad-templates> + <pad-template> + <name>sink</name> + <direction>sink</direction> + <presence>always</presence> + <caps>video/x-raw-yuv, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], format=(fourcc){ YUY2, UYVY, YUVY, YV12 }</caps> + </pad-template> + </pad-templates> + <element-flags> + </element-flags> + <element-implementation> + <state-change function="gst_dshowvideosink_change_state"/> + <save function="gst_element_save_thyself"/> + <load function="gst_element_restore_thyself"/> + </element-implementation> + <clocking-interaction> + </clocking-interaction> + <pads> + <pad> + <name>sink</name> + <direction>sink</direction> + <template>sink</template> + <implementation> + <chain-based function="gst_base_sink_chain"/> + <event-function function="gst_base_sink_event"/> + <query-function function="gst_pad_query_default"/> + <query-type-func function="gst_pad_get_query_types_default"> + </query-type-func> + <intlink-function function="gst_pad_get_internal_links_default"/> + <bufferalloc-function function="gst_base_sink_pad_buffer_alloc"/> + </implementation> + </pad> + </pads> + <element-properties> + <element-property> + <name>force-aspect-ratio</name> + <type>gboolean</type> + <nick>Force aspect ratio</nick> + <blurb>When enabled, scaling will respect original aspect ratio</blurb> + <flags>RW</flags> + <default>FALSE</default> + </element-property> + <element-property> + <name>fullscreen</name> + <type>gboolean</type> + <nick>Full screen mode</nick> + <blurb>Use full-screen mode (not available when using XOverlay)</blurb> + <flags>RW</flags> + <default>FALSE</default> + </element-property> + <element-property> + <name>renderer</name> + <type>gchararray</type> + <nick>Renderer</nick> + <blurb>Force usage of specific DirectShow renderer (VMR9 or VMR)</blurb> + <flags>RW</flags> + <default>NULL</default> + </element-property> + </element-properties> + <element-signals> + </element-signals> + <element-actions> + </element-actions> +</element> diff --git a/gstreamer-sharp/badplugins/inspect/dshowvideosrc.raw b/gstreamer-sharp/badplugins/inspect/dshowvideosrc.raw new file mode 100644 index 0000000..6067056 --- /dev/null +++ b/gstreamer-sharp/badplugins/inspect/dshowvideosrc.raw @@ -0,0 +1,78 @@ +<element> + <name>dshowvideosrc</name> + <details> + <long-name>DirectShow video capture source</long-name> + <class>Source/Video</class> + <description>Receive data from a directshow video capture graph</description> + <authors>Sebastien Moutte <sebastien@moutte.net></authors> + </details> + <object name="GstDshowVideoSrc"> + <object name="GstPushSrc"> + <object name="GstBaseSrc"> + <object name="GstElement"> + <object name="GstObject"> + <object name="GObject"> + </object> + </object> + </object> + </object> + </object> + </object> + <interfaces> + <interface name="GstPropertyProbe" /> + </interfaces> + <pad-templates> + <pad-template> + <name>src</name> + <direction>src</direction> + <presence>always</presence> + <caps>video/x-raw-rgb, bpp=(int)24, depth=(int)24, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], format=(fourcc)I420; video/x-raw-yuv, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], format=(fourcc)UYVY; video/x-raw-yuv, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], format=(fourcc)YUY2; video/x-dv, systemstream=(boolean)false, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], format=(fourcc)dvsd; video/x-dv, systemstream=(boolean)true</caps> + </pad-template> + </pad-templates> + <element-flags> + </element-flags> + <element-implementation> + <state-change function="gst_dshowvideosrc_change_state"/> + <save function="gst_element_save_thyself"/> + <load function="gst_element_restore_thyself"/> + </element-implementation> + <clocking-interaction> + </clocking-interaction> + <pads> + <pad> + <name>src</name> + <direction>src</direction> + <template>src</template> + <implementation> + <get-range-based function="gst_base_src_pad_get_range"/> + <event-function function="gst_base_src_event_handler"/> + <query-function function="gst_base_src_query"/> + <query-type-func function="gst_pad_get_query_types_default"> + </query-type-func> + <intlink-function function="gst_pad_get_internal_links_default"/> + </implementation> + </pad> + </pads> + <element-properties> + <element-property> + <name>device</name> + <type>gchararray</type> + <nick>Device</nick> + <blurb>Directshow device path (@..classID/name)</blurb> + <flags>RW</flags> + <default>NULL</default> + </element-property> + <element-property> + <name>device-name</name> + <type>gchararray</type> + <nick>Device name</nick> + <blurb>Human-readable name of the video device</blurb> + <flags>RW</flags> + <default>NULL</default> + </element-property> + </element-properties> + <element-signals> + </element-signals> + <element-actions> + </element-actions> +</element> diff --git a/gstreamer-sharp/goodplugins/Makefile.am b/gstreamer-sharp/goodplugins/Makefile.am new file mode 100644 index 0000000..c998087 --- /dev/null +++ b/gstreamer-sharp/goodplugins/Makefile.am @@ -0,0 +1,31 @@ +ELEMENTS = directdrawsink + +NAMESPACE = Gst.GoodPlugins +INSPECT_FILES = $(patsubst %,$(srcdir)/inspect/%.raw,$(ELEMENTS)) +METADATA_FILES = $(srcdir)/decodebin2.metadata $(srcdir)/playbin2.metadata +CS_FILES = $(patsubst %,$(builddir)/generated/%.cs,$(ELEMENTS)) +XML_FILES = $(patsubst %,$(builddir)/%.xml,$(ELEMENTS)) + +EXTRA_DIST = $(METADATA_FILES) $(INSPECT_FILES) +CLEANFILES = $(XML_FILES) $(CS_FILES) +MAINTAINERCLEANFILES = Makefile.in + +plugins-update: $(patsubst $(srcdir)/inspect/%.raw, inspect-%, $(INSPECT_FILES)) +inspect-%: + $(top_builddir)/elementgen/gsts-xmlinspect $(patsubst inspect-%,%,$@) > inspect/$(patsubst inspect-%,%,$@).raw + +all: $(XML_FILES) $(CS_FILES) + touch generated + +generated/%.cs: $(top_builddir)/elementgen/element-gen.exe $(top_builddir)/gstreamer-sharp/gstreamer-api.xml $(builddir)/%.xml + @mkdir -p generated + $(MONO) $(top_builddir)/elementgen/element-gen.exe --namespace=$(NAMESPACE) \ + --api=$(top_builddir)/gstreamer-sharp/gstreamer-api.xml --input=$(patsubst generated/%.cs,$(builddir)/%.xml,$@) --customfile=$(patsubst generated/%.cs,$(srcdir)/%.custom,$@) --interfacesdir=$(top_srcdir)/elementgen/interfaces > $@ + +%.xml: $(top_builddir)/parser/gst-gapi-fixup.exe $(srcdir)/inspect/%.raw $(srcdir)/%.metadata + cp $(patsubst %.xml,$(srcdir)/inspect/%.raw,$@) $(builddir)/$@ + chmod +w $(builddir)/$@ + $(MONO) $(top_builddir)/parser/gst-gapi-fixup.exe --api=$(builddir)/$@ --metadata=$(patsubst %.xml,$(srcdir)/%.metadata,$@) + +%.xml: $(top_builddir)/parser/gst-gapi-fixup.exe $(srcdir)/inspect/%.raw + cp $(patsubst %.xml,$(srcdir)/inspect/%.raw,$@) $(builddir)/$@ diff --git a/gstreamer-sharp/goodplugins/inspect/directdrawsink.raw b/gstreamer-sharp/goodplugins/inspect/directdrawsink.raw new file mode 100644 index 0000000..5d66566 --- /dev/null +++ b/gstreamer-sharp/goodplugins/inspect/directdrawsink.raw @@ -0,0 +1,81 @@ +<element> + <name>directdrawsink</name> + <details> + <long-name>Direct Draw Video Sink</long-name> + <class>Sink/Video</class> + <description>Output to a video card via Direct Draw</description> + <authors>Sebastien Moutte <sebastien@moutte.net></authors> + </details> + <object name="GstDirectDrawSink"> + <object name="GstVideoSink"> + <object name="GstBaseSink"> + <object name="GstElement"> + <object name="GstObject"> + <object name="GObject"> + </object> + </object> + </object> + </object> + </object> + </object> + <interfaces> + <interface name="GstImplementsInterface" /> + <interface name="GstXOverlay" /> + <interface name="GstNavigation" /> + </interfaces> + <pad-templates> + <pad-template> + <name>sink</name> + <direction>sink</direction> + <presence>always</presence> + <caps>video/x-raw-rgb, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]</caps> + </pad-template> + </pad-templates> + <element-flags> + </element-flags> + <element-implementation> + <state-change function="gst_directdraw_sink_change_state"/> + <save function="gst_element_save_thyself"/> + <load function="gst_element_restore_thyself"/> + </element-implementation> + <clocking-interaction> + </clocking-interaction> + <pads> + <pad> + <name>sink</name> + <direction>sink</direction> + <template>sink</template> + <implementation> + <chain-based function="gst_base_sink_chain"/> + <event-function function="gst_base_sink_event"/> + <query-function function="gst_pad_query_default"/> + <query-type-func function="gst_pad_get_query_types_default"> + </query-type-func> + <intlink-function function="gst_pad_get_internal_links_default"/> + <bufferalloc-function function="gst_base_sink_pad_buffer_alloc"/> + </implementation> + </pad> + </pads> + <element-properties> + <element-property> + <name>show-preroll-frame</name> + <type>gboolean</type> + <nick>Show preroll frame</nick> + <blurb>Whether to render video frames during preroll</blurb> + <flags>RW</flags> + <default>TRUE</default> + </element-property> + <element-property> + <name>force-aspect-ratio</name> + <type>gboolean</type> + <nick>Force aspect ratio</nick> + <blurb>When enabled, scaling will respect original aspect ratio</blurb> + <flags>RW</flags> + <default>FALSE</default> + </element-property> + </element-properties> + <element-signals> + </element-signals> + <element-actions> + </element-actions> +</element> |