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/*");