Objects inheriting from MiniObject are unrefing their native handle twice.
Gst.MiniObject implements the following finalizer:
~MiniObject ()
{
if (!Owned)
return;
FinalizerInfo info = new FinalizerInfo (Handle);
GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler));
}
Gst.Message:Gst.MiniObject also implements a similar finalizer:
~Message ()
{
if (!Owned)
return;
FinalizerInfo info = new FinalizerInfo (Handle);
GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler));
}
When the GC kicks in for a Gst.Message it will call both finalizers, ending with an extra unref.
Edited by Andoni Morales Alastruey