Skip to content

Fix App{Src,Sink} constructors

Apparently GtkSharp expects each object has only one ToggleRef at any time. Assigning element.Handle into Raw has a consequence that second ToggleRef attempts to get created but fails on g_object_unref () that breaks a GObject assertion:

toggle_refs_notify: assertion failed: (tstack.n_toggle_refs == 1)

This is because toggle references should be removed with g_object_remove_toggle_ref(), not a simple unref().

In order to avoid duplicate toggle references, introduce ElementFactory.MakeRaw(), which creates a GstElement without its accompanying C# object. The returned raw pointer can be assigned into another GLib.Object without trouble.

Merge request reports