diff --git a/gstreamer-sharp/Gstreamer.metadata b/gstreamer-sharp/Gstreamer.metadata
index 06698cbb09..4b00017d84 100644
--- a/gstreamer-sharp/Gstreamer.metadata
+++ b/gstreamer-sharp/Gstreamer.metadata
@@ -1,112 +1,64 @@
- 1
- 1
- true
- true
-
-
- true
- true
- true
- true
- true
- true
-
true
- true
- 1
- true
- 1
- 1
- 1
- 1
+
+ EmitChildAdded
+ EmitChildRemoved
+
+ MiniObjectFlags.Last << 0
+ MiniObjectFlags.Last << 1
+ MiniObjectFlags.Last << 2
+ MiniObjectFlags.Last << 3
+ MiniObjectFlags.Last << 4
+ MiniObjectFlags.Last << 5
+ MiniObjectFlags.Last << 8
+
+ 1
1
+ 1
+ 1
+ 1
+
+ ElementFlags.Last << 5
+
+ boxed
+ true
+ true
+ true
+
+ MiniObjectFlags.Readonly
+ MiniObjectFlags.Last << 0
+ MiniObjectFlags.Last << 1
+ MiniObjectFlags.Last << 2
+ MiniObjectFlags.Last << 3
+ MiniObjectFlags.Last << 4
+ MiniObjectFlags.Last << 8
+
+ true
+
+ Last
+ MiniObjectFlags.Last << 0
+ MiniObjectFlags.Last << 1
+
1
1
- 1
- 1
1
- 1
-
- 1
- 1
- 1
- 1
-
-
HasNoMorePads
-
state_change_ret
1
1
- flow_ret
- get_name_ret
- ret_val
- HasPadCreated
- 1
- 1
- 1
- GstPad
-
+
+ true
+
+ Last
+ ObjectFlags.Last << 0
+ ObjectFlags.Last << 1
+ ObjectFlags.Last << 2
+ ObjectFlags.Last << 16
+
boxed
- true
- boxed
- true
- boxed
- true
- boxed
- true
- boxed
- true
-
-
+ true
-
-
-
- true
- true
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- true
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- uint
- 0U
- 0xffffffff
-
@@ -154,34 +106,78 @@
DownstreamOob
Both
BothOob
- Last
- Last
- ElementFlags.Last << 5
- MiniObjectFlags.Readonly
- MiniObjectFlags.Last << 0
- MiniObjectFlags.Last << 1
- MiniObjectFlags.Last << 2
- MiniObjectFlags.Last << 3
- MiniObjectFlags.Last << 4
- MiniObjectFlags.Last << 8
- Last
- MiniObjectFlags.Last << 0
- MiniObjectFlags.Last << 1
- MiniObjectFlags.Last << 0
- MiniObjectFlags.Last << 1
- MiniObjectFlags.Last << 2
- MiniObjectFlags.Last << 3
- MiniObjectFlags.Last << 4
- MiniObjectFlags.Last << 5
- MiniObjectFlags.Last << 8
- ObjectFlags.Last << 0
- ObjectFlags.Last << 1
- ObjectFlags.Last << 2
- ObjectFlags.Last << 16
+
+ flow_ret
+ get_name_ret
+
+ GstPad
+
+ 1
+ 1
+
Last
ObjectFlags.Last << 0
ObjectFlags.Last << 1
ObjectFlags.Last << 8
+
+ ret_val
+ 1
+ 1
+ 1
+ 1
+
+ res
+
+ boxed
+ true
+ 1
+ 1
+ 1
+
+ uint
+ 0U
+ 0xffffffff
+
+ boxed
+ true
+
+
+
+ 1
+ 1
+
+ Last
+
+ 1
+ true
+
+ true
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+
Last
ObjectFlags.Last << 0
ObjectFlags.Last << 1
@@ -189,17 +185,42 @@
ObjectFlags.Last << 3
ObjectFlags.Last << 4
ObjectFlags.Last << 8
+
+ HasPadCreated
+
Last
ObjectFlags.Last << 0
ObjectFlags.Last << 4
+
+ 1
+
+ 1
+ 1
+
BinFlags.Last << 0
BinFlags.Last << 4
+
+ 1
+
+ 1
+
+ boxed
+ true
+
(State.Null << 3) | State.Ready
(State.Ready << 3) | State.Paused
(State.Paused << 3) | State.Playing
(State.Playing << 3) | State.Paused
(State.Paused << 3) | State.Ready
(State.Ready << 3) | State.Null
+
+ true
+ 1
+ 1
+ 1
+
+ 1
+
ref
out
out
@@ -207,41 +228,5 @@
out
out
- EmitChildAdded
- EmitChildRemoved
- res
-
+ 1
diff --git a/parser/gst-gapi-fixup.cs b/parser/gst-gapi-fixup.cs
index d8810c867e..08a3bb4cf6 100644
--- a/parser/gst-gapi-fixup.cs
+++ b/parser/gst-gapi-fixup.cs
@@ -93,6 +93,49 @@ namespace GtkSharp.Parsing {
XPathNavigator meta_nav = meta_doc.CreateNavigator ();
XPathNavigator api_nav = api_doc.CreateNavigator ();
+ XPathNodeIterator change_node_type_iter = meta_nav.Select ("/metadata/change-node-type");
+ while (change_node_type_iter.MoveNext ()) {
+ string path = change_node_type_iter.Current.GetAttribute ("path", "");
+ XPathNodeIterator api_iter = api_nav.Select (path);
+ bool matched = false;
+ while (api_iter.MoveNext ()) {
+ XmlElement node = ((IHasXmlNode)api_iter.Current).GetNode () as XmlElement;
+ XmlElement parent = node.ParentNode as XmlElement;
+ XmlElement new_node = api_doc.CreateElement (change_node_type_iter.Current.Value);
+
+ foreach (XmlNode child in node.ChildNodes)
+ new_node.AppendChild (child.Clone ());
+ foreach (XmlAttribute attribute in node.Attributes)
+ new_node.Attributes.Append ((XmlAttribute) attribute.Clone ());
+
+ parent.ReplaceChild (new_node, node);
+ matched = true;
+ }
+ if (!matched)
+ Console.WriteLine ("Warning: matched no nodes", path);
+ }
+
+ XPathNodeIterator move_iter = meta_nav.Select ("/metadata/move-node");
+ while (move_iter.MoveNext ()) {
+ string path = move_iter.Current.GetAttribute ("path", "");
+ XPathExpression expr = api_nav.Compile (path);
+ string parent = move_iter.Current.Value;
+ XPathNodeIterator parent_iter = api_nav.Select (parent);
+ bool matched = false;
+ while (parent_iter.MoveNext ()) {
+ XmlNode parent_node = ((IHasXmlNode)parent_iter.Current).GetNode ();
+ XPathNodeIterator path_iter = parent_iter.Current.Clone ().Select (expr);
+ while (path_iter.MoveNext ()) {
+ XmlNode node = ((IHasXmlNode)path_iter.Current).GetNode ();
+ parent_node.AppendChild (node.Clone ());
+ node.ParentNode.RemoveChild (node);
+ }
+ matched = true;
+ }
+ if (!matched)
+ Console.WriteLine ("Warning: matched no nodes", path);
+ }
+
XPathNodeIterator rmv_iter = meta_nav.Select ("/metadata/remove-node");
while (rmv_iter.MoveNext ()) {
string path = rmv_iter.Current.GetAttribute ("path", "");
@@ -137,28 +180,6 @@ namespace GtkSharp.Parsing {
Console.WriteLine ("Warning: matched no nodes", path);
}
- XPathNodeIterator change_node_type_iter = meta_nav.Select ("/metadata/change-node-type");
- while (change_node_type_iter.MoveNext ()) {
- string path = change_node_type_iter.Current.GetAttribute ("path", "");
- XPathNodeIterator api_iter = api_nav.Select (path);
- bool matched = false;
- while (api_iter.MoveNext ()) {
- XmlElement node = ((IHasXmlNode)api_iter.Current).GetNode () as XmlElement;
- XmlElement parent = node.ParentNode as XmlElement;
- XmlElement new_node = api_doc.CreateElement (change_node_type_iter.Current.Value);
-
- foreach (XmlNode child in node.ChildNodes)
- new_node.AppendChild (child.Clone ());
- foreach (XmlAttribute attribute in node.Attributes)
- new_node.Attributes.Append ((XmlAttribute) attribute.Clone ());
-
- parent.ReplaceChild (new_node, node);
- matched = true;
- }
- if (!matched)
- Console.WriteLine ("Warning: matched no nodes", path);
- }
-
XPathNodeIterator remove_attr_iter = meta_nav.Select ("/metadata/remove-attr");
while (remove_attr_iter.MoveNext ()) {
string path = remove_attr_iter.Current.GetAttribute ("path", "");
@@ -175,27 +196,6 @@ namespace GtkSharp.Parsing {
Console.WriteLine ("Warning: matched no nodes", path);
}
- XPathNodeIterator move_iter = meta_nav.Select ("/metadata/move-node");
- while (move_iter.MoveNext ()) {
- string path = move_iter.Current.GetAttribute ("path", "");
- XPathExpression expr = api_nav.Compile (path);
- string parent = move_iter.Current.Value;
- XPathNodeIterator parent_iter = api_nav.Select (parent);
- bool matched = false;
- while (parent_iter.MoveNext ()) {
- XmlNode parent_node = ((IHasXmlNode)parent_iter.Current).GetNode ();
- XPathNodeIterator path_iter = parent_iter.Current.Clone ().Select (expr);
- while (path_iter.MoveNext ()) {
- XmlNode node = ((IHasXmlNode)path_iter.Current).GetNode ();
- parent_node.AppendChild (node.Clone ());
- node.ParentNode.RemoveChild (node);
- }
- matched = true;
- }
- if (!matched)
- Console.WriteLine ("Warning: matched no nodes", path);
- }
-
if (symbol_doc != null) {
XPathNavigator symbol_nav = symbol_doc.CreateNavigator ();
XPathNodeIterator iter = symbol_nav.Select ("/api/*");