mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-22 05:56:31 +00:00
Add bindings for Windows specific plugins
This commit is contained in:
parent
f774273d46
commit
7509d26528
7 changed files with 450 additions and 1 deletions
|
@ -1,4 +1,4 @@
|
|||
SUBDIRS = . glue coreplugins baseplugins
|
||||
SUBDIRS = . glue coreplugins baseplugins goodplugins badplugins
|
||||
|
||||
TARGET = $(ASSEMBLY)
|
||||
noinst_DATA = $(TARGET)
|
||||
|
|
31
gstreamer-sharp/badplugins/Makefile.am
Normal file
31
gstreamer-sharp/badplugins/Makefile.am
Normal file
|
@ -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)/$@
|
142
gstreamer-sharp/badplugins/inspect/dshowaudiosrc.raw
Normal file
142
gstreamer-sharp/badplugins/inspect/dshowaudiosrc.raw
Normal file
|
@ -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>
|
86
gstreamer-sharp/badplugins/inspect/dshowvideosink.raw
Normal file
86
gstreamer-sharp/badplugins/inspect/dshowvideosink.raw
Normal file
|
@ -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>
|
78
gstreamer-sharp/badplugins/inspect/dshowvideosrc.raw
Normal file
78
gstreamer-sharp/badplugins/inspect/dshowvideosrc.raw
Normal file
|
@ -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>
|
31
gstreamer-sharp/goodplugins/Makefile.am
Normal file
31
gstreamer-sharp/goodplugins/Makefile.am
Normal file
|
@ -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)/$@
|
81
gstreamer-sharp/goodplugins/inspect/directdrawsink.raw
Normal file
81
gstreamer-sharp/goodplugins/inspect/directdrawsink.raw
Normal file
|
@ -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>
|
Loading…
Reference in a new issue