Also fix indention everywhere and change code to use Gst.MiniObject.GetObject()
instead of GLib.Opaque.GetOpaque().
It's currently not possible to implement or use GInterfaces on mini objects
but apart from that this should be a great improvement, especially new
mini object classes can be defined in C# now.
As C# interfaces don't allow a default implementation we
add a static Gst.PresetDefault class that provides static
methods for calling the default GstPreset method implementations.
Unfortunately this requires us to work around Gtk# being unable
to handle static interface methods and Gtk# being unable to
allow us to override interface adapter code...
What still needs to be done is to add a way to set
a custom lock to the task, currently a newly created
task can only get a lock by making it a pad task.
Make sure that we a) don't free structures of caps as we don't own them
and b) make sure to create a copy of all still referenced structures
before it gets removed, the caps are unreffed or something else happens.
This still needs to be fixed for gst_caps_do_simplify()!
This workaround is inspired by the one in gst-python.
Also fix some reference ownership issues in the StaticPadTemplate bindings
and make them a read-only container without any way to create new instances.
We don't need StaticCaps anywhere and StaticPadTemplates only for reading
the static pad templates of an element factory.
This will be needed later to call the action signals of
playbin2 for example.
Also get the correct instance size of GClosure at runtime
instead of always taking the largest known one.
We can't call gst_object_unref() directly as this will conflict
with the toggle-refs used in glib-sharp. It's also not required
to call gst_object_unref(), it's just a wrapper around g_object_unref()
with some debugging.
* gstreamer-sharp/BindingHelper.cs: Static helper class to assist
in making element bindings (delegate manipulation/invocation)
* gstreamer-sharp/DynamicSignal.cs: Updated DynamicSignalArgs so they
can more easily be derived
* gstreamer-sharp/Makefile.am: Updated build
* sample/HelloWorld.cs: More cleaning
* sample/Makefile.am:
* sample/TypeFind.cs: Added typefind sample
* gstreamer-sharp.mdp: Updated MonoDevelop project
* gstreamer-sharp/plugins-base/DecodeBin.cs: Signal support rewritten
to use BindingHelper/DynamicSignal
* gstreamer-sharp/plugins-base/TypeFindElement.cs: New typefind
element wrapper using BindingHelper/DynamicSignal
* gstreamer-sharp/Element.custom: Fixed property getter/setter methods
and added indexer wrapper for property lookup for syntax convenience
git-svn-id: svn://anonsvn.mono-project.com/source/branches/abock/gstreamer-sharp@62570 e3ebcda4-bce8-0310-ba0a-eca2169e7518
* sample/HelloWorld.cs: Cleaned up, works with new dynamic signal stuff
* gstreamer-sharp.mdp: Updated MonoDevelop project
* gstreamer-sharp/glue/dynamicsignal.c:
* gstreamer-sharp/DynamicSignal.cs: Added DynamicSignal support for
runtime GObject signal binding
* gstreamer-sharp/glue/Makefile.am:
* gstreamer-sharp/Makefile.am: Updated build
* gstreamer-sharp/Element.custom: Removed old DynamicSignal
stuff and added pass-thru/proxy Connect/Disconnect methods on
top of GLib.DynamicSignal
* gstreamer-sharp/DynamicSignalHandlerGenerator.cs:
* gstreamer-sharp/DynamicSignalMarshalHandler.cs: Removed
* gstreamer-sharp/gstreamer-sharp.dll.config.in: Updated maps, removed
old 0.8 maps
git-svn-id: svn://anonsvn.mono-project.com/source/branches/abock/gstreamer-sharp@62542 e3ebcda4-bce8-0310-ba0a-eca2169e7518
* gstreamer-sharp.mds:
* gstreamer-sharp.mdp: Updated MonoDevelo project/solution
* source/gstreamer-sharp-source.xml: Cleaned up a bit
* sample/DecodeBinTranscoder.cs: Updated to reflect renaming of
Clock.GstSecond to Clock.Second, etc.
* gstreamer-sharp/glue/clock.c: Added gstsharp_gst_clock_get_time_none
and gstsharp_gst_clock_time_is_valid
* gstreamer-sharp/Clock.custom: Added bindings for new clock glue
and renamed GstNSecond to NSecond (and friends)
git-svn-id: svn://anonsvn.mono-project.com/source/branches/abock/gstreamer-sharp@62535 e3ebcda4-bce8-0310-ba0a-eca2169e7518
* gstreamer-sharp/glue/Bin.c: Newly added. Added a function to
return the offset of *children.
* tests/ElementTest.cs: Newly added. Added two NUnit tests for
Element class - one to test creation of elements and the other
to test addition and deletion of Pads from elements.
git-svn-id: svn://anonsvn.mono-project.com/source/branches/abock/gstreamer-sharp@61443 e3ebcda4-bce8-0310-ba0a-eca2169e7518
* sample/DecodeBinTranscoder.cs: Fixing ambigious cast.
* gstreamer-sharp/glue/clock.c:
* gstreamer-sharp/Clock.custom: Changing the gint64 to guint64 and
long to ulong respectively. The clocktime (GstClockTime) is measured
in nanoseconds as unsigned long inside GStreamer.
This is introducing a small schizophrenia since some functions (such
as queries, seeks) take signed long (-1 to mark infinity or error).
This is the expected Gst behaviour.
Just sticking silently to long (instead of ulong) will bork us sooner
or later, especially for custom-build low level routines/elements.
Comments welcome.
git-svn-id: svn://anonsvn.mono-project.com/source/branches/abock/gstreamer-sharp@61438 e3ebcda4-bce8-0310-ba0a-eca2169e7518
* gstreamer-sharp/Gstreamer.metadata: Hide the Children property and
implement own version in Bin.custom to return an Element [] instead of
a GLib.List
* gstreamer-sharp/Bin.custom: Implement Bin.Children
* tests/BinTest.cs: wrote a test for Bin.Children
git-svn-id: svn://anonsvn.mono-project.com/source/branches/abock/gstreamer-sharp@61115 e3ebcda4-bce8-0310-ba0a-eca2169e7518
* gstreamer-sharp/plugins-base/DecodeBin.cs: Added a quick binding for
decodebin to test new-decoded-pad; probably is only a temporary solution
* sample/DecodeBinTranscoder.cs: Added a small decodebin sample
* sample/Makefile.am: Added build rules for decodebin sample
* gstreamer-sharp.mdp: Updated MonoDevelop project
* gstreamer-sharp/Makefile.am: Added plugins-base/DecodeBin.cs
git-svn-id: svn://anonsvn.mono-project.com/source/branches/abock/gstreamer-sharp@60931 e3ebcda4-bce8-0310-ba0a-eca2169e7518
* autogen.sh: Fixed a left over configure.in to configure.ac
* confiugre.ac: Added check foo for NUnit
* gstreamer-sharp.mdp:
* gstreamer-sharp.mds: Added MonoDevelop solution
* source/Makefile.am: Cleaned and fixed
* tests/ConsoleUi.cs:
* tests/ApplicationTest.cs:
* tests/BinTest.cs:
* tests/Makefile.am: Added NUnit test framework and a few tests for
Gst.Application and Gst.Bin
* gstreamer-sharp/CommonTags.cs:
* gstreamer-sharp/*.custom:
* gstreamer-sharp/glue/*.c: Cleaned up
* gstreamer-sharp/Application.cs: New application bindings; fixed
to work properly with GStreamer 0.10
* gstreamer-sharp/Version.cs: New Gst.Version class
* gstreamer-sharp/Makefile.am: Added Version.cs
* gstreamer-sharp/plugins-base/PlayBin.cs: Fixed and extended PlayBin
element binding with new (but not all) properties
* Makefile.am: Added tests
git-svn-id: svn://anonsvn.mono-project.com/source/branches/abock/gstreamer-sharp@60902 e3ebcda4-bce8-0310-ba0a-eca2169e7518