Fix compilation errors
authorStephan Sundermann <ssundermann@gnome.org>
Sun, 20 Jul 2014 01:32:48 +0000 (03:32 +0200)
committerStephan Sundermann <ssundermann@gnome.org>
Sun, 20 Jul 2014 01:32:48 +0000 (03:32 +0200)
sources/Makefile.am
sources/custom/Buffer.cs [new file with mode: 0644]
sources/custom/Iterator.cs
sources/glue/Makefile.am
sources/gstreamer-sharp-api.raw
sources/gstreamer-sharp.metadata

index fbc8607..87b95e5 100644 (file)
@@ -35,11 +35,11 @@ generated-stamp: $(API)
        $(GAPI_CODEGEN) --generate $(srcdir)/$(API) $(GLIB_SHARP_CFLAGS) \
                --outdir=generated \
                --glue-filename=$(GLUEDIR)/generated.c --gluelib-name=libgstreamersharpglue-1.0.0.dll \
-               --glue-includes=gst/gst.h,`cd $(GST_INCLUDEDIR);find gst -type f -name "*.h" | tr "\n" ","` \
+               --glue-includes=gst/gst.h,`cd $(GST_INCLUDEDIR);find gst -type f -name "*.h" -not -path "gst/gl/*" | tr "\n" ","` \
                --assembly-name=$(ASSEMBLY_NAME) && touch generated-stamp
 
 $(DLL): $(build_sources) generated-stamp
-       $(CSC) -nowarn:169 -unsafe -target:library $(GLIB_SHARP_LIBS) \
+       $(CSC) -nowarn:169 -nowarn:108 -nowarn:114 -unsafe -target:library $(GLIB_SHARP_LIBS) \
                $(build_sources)  generated/*/*.cs -out:$(DLL)
 
 install-data-local:
diff --git a/sources/custom/Buffer.cs b/sources/custom/Buffer.cs
new file mode 100644 (file)
index 0000000..3ebdea1
--- /dev/null
@@ -0,0 +1,50 @@
+// Copyright (C) 2014  Stephan Sundermann <stephansundermann@gmail.com>
+// 
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+// 02110-1301  USA
+
+namespace Gst {
+       using System;
+       using System.Collections;
+       using System.Runtime.InteropServices;
+
+       partial class Buffer {
+               [DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+               static extern UIntPtr gst_buffer_extract(IntPtr raw, UIntPtr offset, byte[] dest, UIntPtr size);
+
+               public ulong Extract(ulong offset, ref byte[] dest) {
+                       UIntPtr raw_ret = gst_buffer_extract(Handle, new UIntPtr (offset), dest, new UIntPtr ((ulong)dest.Length));
+                       ulong ret = (ulong) raw_ret;
+                       return ret;
+               }
+
+               [DllImport("libgstreamer-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
+               static extern void gst_buffer_extract_dup(IntPtr raw, UIntPtr offset, UIntPtr size, out IntPtr dest, out UIntPtr dest_size);
+
+               public ulong ExtractDup(ulong offset, ulong size, out byte[] dest) {
+                       UIntPtr native_dest_size;
+                       IntPtr ptr;
+                       gst_buffer_extract_dup(Handle, new UIntPtr (offset), new UIntPtr (size), out ptr, out native_dest_size);
+
+                       byte[] bytes = new byte[(ulong)native_dest_size];
+                       Marshal.Copy (ptr, bytes, 0, (int)native_dest_size);
+
+                       dest = bytes;
+                       GLib.Marshaller.Free (ptr);
+
+                       return (ulong) native_dest_size;
+               }
+       }
+}
index 4a32278..4028c8c 100644 (file)
@@ -114,7 +114,7 @@ namespace Gst {
 
                ~Iterator () {
                        if (Raw != IntPtr.Zero)
-                               Free ();
+                               Free (Handle);
                }
 
        }
index 6423a58..6b1b079 100644 (file)
@@ -8,6 +8,8 @@ libgstreamersharpglue_1_0_0_la_LDFLAGS = -module -avoid-version -no-undefined
 
 libgstreamersharpglue_1_0_0_la_LIBADD = $(GST_LIBS)
 
+libgstreamersharpglue_1_0_0_la_CPPFLAGS = -DGST_USE_UNSTABLE_API
+
 INCLUDES = $(GST_CFLAGS) -I$(top_srcdir)
 
 libgstreamersharpglue.dll: $(libgstreamersharpglue_1_0_0_la_OBJECTS) libgstreamersharpglue.rc libgstreamersharpglue.def
index 8736c0f..145ab37 100644 (file)
     </enum>
     <enum name="DVBCodeRate" cname="GstMpegtsDVBCodeRate" type="enum">
       <member cname="GST_MPEGTS_FEC_NONE" name="None" value="0"/>
-      <member cname="GST_MPEGTS_FEC_1_2" name="12" value="1"/>
-      <member cname="GST_MPEGTS_FEC_2_3" name="23" value="2"/>
-      <member cname="GST_MPEGTS_FEC_3_4" name="34" value="3"/>
-      <member cname="GST_MPEGTS_FEC_4_5" name="45" value="4"/>
-      <member cname="GST_MPEGTS_FEC_5_6" name="56" value="5"/>
-      <member cname="GST_MPEGTS_FEC_6_7" name="67" value="6"/>
-      <member cname="GST_MPEGTS_FEC_7_8" name="78" value="7"/>
-      <member cname="GST_MPEGTS_FEC_8_9" name="89" value="8"/>
+      <member cname="GST_MPEGTS_FEC_1_2" name="_112" value="1"/>
+      <member cname="GST_MPEGTS_FEC_2_3" name="_223" value="2"/>
+      <member cname="GST_MPEGTS_FEC_3_4" name="_334" value="3"/>
+      <member cname="GST_MPEGTS_FEC_4_5" name="_445" value="4"/>
+      <member cname="GST_MPEGTS_FEC_5_6" name="_556" value="5"/>
+      <member cname="GST_MPEGTS_FEC_6_7" name="_667" value="6"/>
+      <member cname="GST_MPEGTS_FEC_7_8" name="_778" value="7"/>
+      <member cname="GST_MPEGTS_FEC_8_9" name="_889" value="8"/>
       <member cname="GST_MPEGTS_FEC_AUTO" name="Auto" value="9"/>
-      <member cname="GST_MPEGTS_FEC_3_5" name="35" value="10"/>
-      <member cname="GST_MPEGTS_FEC_9_10" name="910" value="11"/>
-      <member cname="GST_MPEGTS_FEC_2_5" name="25" value="12"/>
+      <member cname="GST_MPEGTS_FEC_3_5" name="_335" value="10"/>
+      <member cname="GST_MPEGTS_FEC_9_10" name="_9910" value="11"/>
+      <member cname="GST_MPEGTS_FEC_2_5" name="_225" value="12"/>
     </enum>
     <enum name="DVBDescriptorType" cname="GstMpegtsDVBDescriptorType" type="enum">
       <member cname="GST_MTS_DESC_DVB_NETWORK_NAME" name="NetworkName" value="64"/>
       <member cname="GST_MPEGTS_POLARIZATION_CIRCULAR_RIGHT" name="CircularRight" value="3"/>
     </enum>
     <enum name="SatelliteRolloff" cname="GstMpegtsSatelliteRolloff" type="enum">
-      <member cname="GST_MPEGTS_ROLLOFF_35" name="35" value="0"/>
-      <member cname="GST_MPEGTS_ROLLOFF_20" name="20" value="1"/>
-      <member cname="GST_MPEGTS_ROLLOFF_25" name="25" value="2"/>
+      <member cname="GST_MPEGTS_ROLLOFF_35" name="_35" value="0"/>
+      <member cname="GST_MPEGTS_ROLLOFF_20" name="_20" value="1"/>
+      <member cname="GST_MPEGTS_ROLLOFF_25" name="_25" value="2"/>
       <member cname="GST_MPEGTS_ROLLOFF_RESERVED" name="Reserved" value="3"/>
       <member cname="GST_MPEGTS_ROLLOFF_AUTO" name="Auto" value="4"/>
     </enum>
       <member cname="GST_MTS_TABLE_ID_CONDITIONAL_ACCESS" name="ConditionalAccess" value="1"/>
       <member cname="GST_MTS_TABLE_ID_TS_PROGRAM_MAP" name="TsProgramMap" value="2"/>
       <member cname="GST_MTS_TABLE_ID_TS_DESCRIPTION" name="TsDescription" value="3"/>
-      <member cname="GST_MTS_TABLE_ID_14496_SCENE_DESCRIPTION" name="14496SceneDescription" value="4"/>
-      <member cname="GST_MTS_TABLE_ID_14496_OBJET_DESCRIPTOR" name="14496ObjetDescriptor" value="5"/>
+      <member cname="GST_MTS_TABLE_ID_14496_SCENE_DESCRIPTION" name="_1449614496SceneDescription" value="4"/>
+      <member cname="GST_MTS_TABLE_ID_14496_OBJET_DESCRIPTOR" name="_1449614496ObjetDescriptor" value="5"/>
       <member cname="GST_MTS_TABLE_ID_METADATA" name="Metadata" value="6"/>
       <member cname="GST_MTS_TABLE_ID_IPMP_CONTROL_INFORMATION" name="IpmpControlInformation" value="7"/>
       <member cname="GST_MTS_TABLE_ID_DSM_CC_MULTIPROTO_ENCAPSULATED_DATA" name="DsmCcMultiprotoEncapsulatedData" value="58"/>
       <member cname="GST_MPEGTS_STREAM_TYPE_IPMP_STREAM" name="IpmpStream" value="127"/>
     </enum>
     <enum name="TerrestrialGuardInterval" cname="GstMpegtsTerrestrialGuardInterval" type="enum">
-      <member cname="GST_MPEGTS_GUARD_INTERVAL_1_32" name="132" value="0"/>
-      <member cname="GST_MPEGTS_GUARD_INTERVAL_1_16" name="116" value="1"/>
-      <member cname="GST_MPEGTS_GUARD_INTERVAL_1_8" name="18" value="2"/>
-      <member cname="GST_MPEGTS_GUARD_INTERVAL_1_4" name="14" value="3"/>
+      <member cname="GST_MPEGTS_GUARD_INTERVAL_1_32" name="_1132" value="0"/>
+      <member cname="GST_MPEGTS_GUARD_INTERVAL_1_16" name="_1116" value="1"/>
+      <member cname="GST_MPEGTS_GUARD_INTERVAL_1_8" name="_118" value="2"/>
+      <member cname="GST_MPEGTS_GUARD_INTERVAL_1_4" name="_114" value="3"/>
       <member cname="GST_MPEGTS_GUARD_INTERVAL_AUTO" name="Auto" value="4"/>
-      <member cname="GST_MPEGTS_GUARD_INTERVAL_1_128" name="1128" value="5"/>
-      <member cname="GST_MPEGTS_GUARD_INTERVAL_19_128" name="19128" value="6"/>
-      <member cname="GST_MPEGTS_GUARD_INTERVAL_19_256" name="19256" value="7"/>
+      <member cname="GST_MPEGTS_GUARD_INTERVAL_1_128" name="_11128" value="5"/>
+      <member cname="GST_MPEGTS_GUARD_INTERVAL_19_128" name="_1919128" value="6"/>
+      <member cname="GST_MPEGTS_GUARD_INTERVAL_19_256" name="_1919256" value="7"/>
       <member cname="GST_MPEGTS_GUARD_INTERVAL_PN420" name="Pn420" value="8"/>
       <member cname="GST_MPEGTS_GUARD_INTERVAL_PN595" name="Pn595" value="9"/>
       <member cname="GST_MPEGTS_GUARD_INTERVAL_PN945" name="Pn945" value="10"/>
       <member cname="GST_MPEGTS_HIERARCHY_NONE" name="None" value="0"/>
       <member cname="GST_MPEGTS_HIERARCHY_1" name="GSTMPEGTSHIERARCHY1" value="1"/>
       <member cname="GST_MPEGTS_HIERARCHY_2" name="GSTMPEGTSHIERARCHY2" value="2"/>
-      <member cname="GST_MPEGTS_HIERARCHY_4" name="4" value="3"/>
+      <member cname="GST_MPEGTS_HIERARCHY_4" name="_4" value="3"/>
       <member cname="GST_MPEGTS_HIERARCHY_AUTO" name="Auto" value="4"/>
     </enum>
     <enum name="TerrestrialTransmissionMode" cname="GstMpegtsTerrestrialTransmissionMode" type="enum">
-      <member cname="GST_MPEGTS_TRANSMISSION_MODE_2K" name="2k" value="0"/>
-      <member cname="GST_MPEGTS_TRANSMISSION_MODE_8K" name="8k" value="1"/>
+      <member cname="GST_MPEGTS_TRANSMISSION_MODE_2K" name="_2k" value="0"/>
+      <member cname="GST_MPEGTS_TRANSMISSION_MODE_8K" name="_8k" value="1"/>
       <member cname="GST_MPEGTS_TRANSMISSION_MODE_AUTO" name="Auto" value="2"/>
-      <member cname="GST_MPEGTS_TRANSMISSION_MODE_4K" name="4k" value="3"/>
-      <member cname="GST_MPEGTS_TRANSMISSION_MODE_1K" name="1k" value="4"/>
-      <member cname="GST_MPEGTS_TRANSMISSION_MODE_16K" name="16k" value="5"/>
-      <member cname="GST_MPEGTS_TRANSMISSION_MODE_32K" name="32k" value="6"/>
+      <member cname="GST_MPEGTS_TRANSMISSION_MODE_4K" name="_4k" value="3"/>
+      <member cname="GST_MPEGTS_TRANSMISSION_MODE_1K" name="_1k" value="4"/>
+      <member cname="GST_MPEGTS_TRANSMISSION_MODE_16K" name="_16k" value="5"/>
+      <member cname="GST_MPEGTS_TRANSMISSION_MODE_32K" name="_32k" value="6"/>
       <member cname="GST_MPEGTS_TRANSMISSION_MODE_C1" name="C1" value="7"/>
       <member cname="GST_MPEGTS_TRANSMISSION_MODE_C3780" name="C3780" value="8"/>
     </enum>
       <field cname="symbol_rate" access="public" writeable="true" readable="true" name="SymbolRate" type="guint32"/>
       <field cname="fec_inner" access="public" writeable="true" readable="true" name="FecInner" type="GstMpegtsDVBCodeRate"/>
     </struct>
-    <boxed name="Section" cname="GstMpegtsSection" opaque="false" hidden="false">
+    <boxed name="Section" cname="GstMpegtsSection" opaque="true" hidden="false">
       <method name="GetType" cname="gst_mpegts_section_get_type" shared="true">
         <return-type type="GType"/>
       </method>
     </enum>
     <enum name="RTPPayload" cname="GstRTPPayload" type="enum">
       <member cname="GST_RTP_PAYLOAD_PCMU" name="Pcmu" value="0"/>
-      <member cname="GST_RTP_PAYLOAD_1016" name="1016" value="1"/>
+      <member cname="GST_RTP_PAYLOAD_1016" name="_1016" value="1"/>
       <member cname="GST_RTP_PAYLOAD_G721" name="G721" value="2"/>
       <member cname="GST_RTP_PAYLOAD_GSM" name="Gsm" value="3"/>
       <member cname="GST_RTP_PAYLOAD_G723" name="G723" value="4"/>
     </enum>
     <enum name="RTSPVersion" cname="GstRTSPVersion" type="enum" gtype="gst_rtsp_version_get_type">
       <member cname="GST_RTSP_VERSION_INVALID" name="Invalid" value="0"/>
-      <member cname="GST_RTSP_VERSION_1_0" name="10" value="16"/>
-      <member cname="GST_RTSP_VERSION_1_1" name="11" value="17"/>
+      <member cname="GST_RTSP_VERSION_1_0" name="_110" value="16"/>
+      <member cname="GST_RTSP_VERSION_1_1" name="_111" value="17"/>
     </enum>
     <enum name="RTSPEvent" cname="GstRTSPEvent" type="flags" gtype="gst_rtsp_event_get_type">
       <member cname="GST_RTSP_EV_READ" name="Read" value="1"/>
     </enum>
     <enum name="VideoColorRange" cname="GstVideoColorRange" type="enum" gtype="gst_video_color_range_get_type">
       <member cname="GST_VIDEO_COLOR_RANGE_UNKNOWN" name="Unknown" value="0"/>
-      <member cname="GST_VIDEO_COLOR_RANGE_0_255" name="0255" value="1"/>
-      <member cname="GST_VIDEO_COLOR_RANGE_16_235" name="16235" value="2"/>
+      <member cname="GST_VIDEO_COLOR_RANGE_0_255" name="_00255" value="1"/>
+      <member cname="GST_VIDEO_COLOR_RANGE_16_235" name="_1616235" value="2"/>
     </enum>
     <enum name="VideoFormat" cname="GstVideoFormat" type="enum" gtype="gst_video_format_get_type">
       <member cname="GST_VIDEO_FORMAT_UNKNOWN" name="Unknown" value="0"/>
         <parameters/>
       </method>
     </struct>
-    <struct name="VideoGLTextureUploadMeta" cname="GstVideoGLTextureUploadMeta" opaque="false" hidden="false">
+    <struct name="VideoGLTextureUploadMeta" cname="GstVideoGLTextureUploadMeta" opaque="true" hidden="false">
       <field cname="meta" access="public" writeable="true" readable="true" name="Meta" type="GstMeta">
         <warning>missing glib:type-name</warning>
       </field>
index 25e08bc..84cce8e 100644 (file)
@@ -45,14 +45,14 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
        <attr path="/api/namespace/object[@cname='GstElement']/field[@cname='object']" name="hidden">true</attr>
        <attr path="/api/namespace/object[@cname='GstBin']/field[@cname='element']" name="hidden">true</attr>
        <attr path="/api/namespace/object[@cname='GstPipeline']/field[@cname='bin']" name="hidden">true</attr>
-       <!-- add native attribute to all structs which need special handling -->
-       <change-node-type path="/api/namespace//boxed[field/@cname='mini_object']">struct</change-node-type>
-       <attr path="/api/namespace//struct[field/@cname='mini_object']" name="native">true</attr>
+       <!-- add opaque attribute to all structs which need special handling -->
+       <change-node-type path="/api//namespace//boxed[field/@cname='mini_object']">struct</change-node-type>
+       <attr path="/api/namespace//struct[field/@cname='mini_object']" name="opaque">true</attr>
        <change-node-type path="/api/namespace//boxed[@cname='GstStructure']">struct</change-node-type>
-       <attr path="/api/namespace/struct[@cname='GstStructure']" name="native">true</attr>
-       <attr path="/api/namespace/struct[@cname='GstRTSPMessage']" name="native">true</attr>
+       <attr path="/api/namespace/struct[@cname='GstStructure']" name="opaque">true</attr>
+       <attr path="/api/namespace/struct[@cname='GstRTSPMessage']" name="opaque">true</attr>
        <change-node-type path="/api/namespace//boxed[@cname='GstIterator']">struct</change-node-type>
-       <attr path="/api/namespace/struct[@cname='GstIterator']" name="native">true</attr>
+       <attr path="/api/namespace/struct[@cname='GstIterator']" name="opaque">true</attr>
        <attr path="/api/namespace/struct[@cname='GstIterator']/method[@cname='gst_iterator_next']" name="hidden">true</attr>
        <remove-node path="/api/namespace/boxed[@cname='GstStructure']/field[@cname='name']" />
        <!-- Fix for GstChildProxy -->
@@ -61,14 +61,13 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
        <!-- FIXME: array handling -->
        <attr path="/api/namespace/struct[@cname='GstRTCPPacket']/method[@cname='gst_rtcp_packet_sdes_copy_entry']" name="hidden">true</attr>
        <attr path="/api/namespace/struct[@cname='GstRTCPPacket']/method[@cname='gst_rtcp_packet_sdes_get_entry']" name="hidden">true</attr>
-       <attr path="/api/namespace/struct[@cname='GstRTCPPacket']/method[@cname='gst_rtcp_packet_sdes_extension_data']" name="hidden">true</attr>
-       <attr path="/api/namespace/struct[@cname='GstRTPBuffer']/method[@cname='gst_rtp_buffer_get_extension_data']" name="hidden">true</attr>
        <attr path="/api/namespace/struct[@cname='GstRTPBuffer']/method[@cname='gst_rtp_buffer_get_extension_onebyte_header']" name="hidden">true</attr>
        <attr path="/api/namespace/struct[@cname='GstRTPBuffer']/method[@cname='gst_rtp_buffer_get_extension_twobytes_header']" name="hidden">true</attr>
        <attr path="/api/namespace/struct[@cname='GstRTSPMessage']/method[@cname='gst_rtsp_message_get_body']" name="hidden">true</attr>
        <attr path="/api/namespace/struct[@cname='GstRTSPMessage']/method[@cname='gst_rtsp_message_steal_body']" name="hidden">true</attr>
        <attr path="/api/namespace/struct[@cname='GstFFTF32']/method[@cname='gst_fft_f32_fft']" name="hidden">true</attr>
        <attr path="/api/namespace/struct[@cname='GstFFTF32']/method[@cname='gst_fft_f32_window']" name="hidden">true</attr>
+    <attr path="//virtual_method[@cname='get_g_value_array']" name="hidden">true</attr>
        <!-- Maybe some problems with the name -->
        <remove-node path="/api/namespace/interface[@cname='GstURIHandler']/class_struct/method[@vm='get_type']" name="vm" />
        <remove-node path="/api/namespace/interface[@cname='GstURIHandler']/virtual_method[@cname='get_type']" name="hidden" />
@@ -83,54 +82,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
        <attr path="/api/namespace/struct[@cname='GstClockEntry']/field[@cname='destroy_data']" name="hidden">true</attr>
        <attr path="/api/namespace/object[@cname='GstTask']/field[@cname='notify']" name="hidden">true</attr>
 
-       <!-- These classes are not abstract but should not be instantiable from managed. FIXME: bug in gir metadata? -->
-       <remove-attr name="abstract" path="/api/namespace/object[@cname='GstAllocator']"/>
-       <attr name="defaultconstructoraccess" path="/api/namespace/object[@cname='GstAllocator']">protected</attr>
-       <remove-attr name="abstract" path="/api/namespace/object[@cname='GstClock']"/>
-       <attr name="defaultconstructoraccess" path="/api/namespace/object[@cname='GstClock']">protected</attr>
-       <remove-attr name="abstract" path="/api/namespace/object[@cname='GstControlBinding']"/>
-       <attr name="defaultconstructoraccess" path="/api/namespace/object[@cname='GstControlBinding']">protected</attr>
-       <remove-attr name="abstract" path="/api/namespace/object[@cname='GstControlSource']"/>
-       <attr name="defaultconstructoraccess" path="/api/namespace/object[@cname='GstControlSource']">protected</attr>
-       <remove-attr name="abstract" path="/api/namespace/object[@cname='GstElement']"/>
-       <attr name="defaultconstructoraccess" path="/api/namespace/object[@cname='GstElement']">protected</attr>
-       <remove-attr name="abstract" path="/api/namespace/object[@cname='GstObject']"/>
-       <attr name="defaultconstructoraccess" path="/api/namespace/object[@cname='GstObject']">protected</attr>
-       <remove-attr name="abstract" path="/api/namespace/object[@cname='GstPluginFeature']"/>
-       <attr name="defaultconstructoraccess" path="/api/namespace/object[@cname='GstPluginFeature']">protected</attr>
-       <remove-attr name="abstract" path="/api/namespace/object[@cname='GstBaseParse']"/>
-       <attr name="defaultconstructoraccess" path="/api/namespace/object[@cname='GstBaseParse']">protected</attr>
-       <remove-attr name="abstract" path="/api/namespace/object[@cname='GstBaseSink']"/>
-       <attr name="defaultconstructoraccess" path="/api/namespace/object[@cname='GstBaseSink']">protected</attr>
-       <remove-attr name="abstract" path="/api/namespace/object[@cname='GstBaseSrc']"/>
-       <attr name="defaultconstructoraccess" path="/api/namespace/object[@cname='GstBaseSrc']">protected</attr>
-       <remove-attr name="abstract" path="/api/namespace/object[@cname='GstBaseTransform']"/>
-       <attr name="defaultconstructoraccess" path="/api/namespace/object[@cname='GstBaseTransform']">protected</attr>
-       <remove-attr name="abstract" path="/api/namespace/object[@cname='GstTagDemux']"/>
-       <attr name="defaultconstructoraccess" path="/api/namespace/object[@cname='GstTagDemux']">protected</attr>
-       <remove-attr name="abstract" path="/api/namespace/object[@cname='GstTagMux']"/>
-       <attr name="defaultconstructoraccess" path="/api/namespace/object[@cname='GstTagMux']">protected</attr>
-       <remove-attr name="abstract" path="/api/namespace/object[@cname='GstVideoDecoder']"/>
-       <attr name="defaultconstructoraccess" path="/api/namespace/object[@cname='GstVideoDecoder']">protected</attr>
-       <remove-attr name="abstract" path="/api/namespace/object[@cname='GstVideoEncoder']"/>
-       <attr name="defaultconstructoraccess" path="/api/namespace/object[@cname='GstVideoEncoder']">protected</attr>
-       <remove-attr name="abstract" path="/api/namespace/object[@cname='GstVideoFilter']"/>
-       <attr name="defaultconstructoraccess" path="/api/namespace/object[@cname='GstVideoFilter']">protected</attr>
-       <remove-attr name="abstract" path="/api/namespace/object[@cname='GstAudioDecoder']"/>
-       <attr name="defaultconstructoraccess" path="/api/namespace/object[@cname='GstAudioDecoder']">protected</attr>
-       <remove-attr name="abstract" path="/api/namespace/object[@cname='GstAudioEncoder']"/>
-       <attr name="defaultconstructoraccess" path="/api/namespace/object[@cname='GstAudioEncoder']">protected</attr>
-       <remove-attr name="abstract" path="/api/namespace/object[@cname='GstAudioFilter']"/>
-       <attr name="defaultconstructoraccess" path="/api/namespace/object[@cname='GstAudioFilter']">protected</attr>
-       <remove-attr name="abstract" path="/api/namespace/object[@cname='GstAudioRingBuffer']"/>
-       <attr name="defaultconstructoraccess" path="/api/namespace/object[@cname='GstAudioRingBuffer']">protected</attr>
-       <remove-attr name="abstract" path="/api/namespace/object[@cname='GstTimedValueControlSource']"/>
-       <attr name="defaultconstructoraccess" path="/api/namespace/object[@cname='GstTimedValueControlSource']">protected</attr>
-       <remove-attr name="abstract" path="/api/namespace/object[@cname='GstRTPBaseDepayload']"/>
-       <attr name="defaultconstructoraccess" path="/api/namespace/object[@cname='GstRTPBaseDepayload']">protected</attr>
-       <remove-attr name="abstract" path="/api/namespace/object[@cname='GstRTPBasePayload']"/>
-       <attr name="defaultconstructoraccess" path="/api/namespace/object[@cname='GstRTPBasePayload']">protected</attr>
-
        <!-- Add miniobject methods to all miniobject types -->
        <copy-node path="/api/namespace/struct[@cname='GstMiniObject']//method">/api/namespace//boxed[field/@cname='mini_object']</copy-node>
        <attr path="/api/namespace/struct[@cname='GstMiniObject']//method" name="hidden">true</attr>
@@ -176,11 +127,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
        <attr path="/api/namespace/boxed[@cname='GstVideoCodecState']/field[@cname='padding']" name="type">gpointer</attr>
        <attr path="/api/namespace/object[@cname='GstVideoDecoder']/field[@cname='padding']" name="type">gpointer</attr>
        <attr path="/api/namespace/object[@cname='GstVideoDecoder']/class_struct/field[@cname='padding']" name="type">gpointer</attr>
-       <attr path="/api/namespace/enum[@cname='GstVideoColorRange']/member[@name='0255']" name="name">EightBit</attr>
-       <attr path="/api/namespace/enum[@cname='GstVideoColorRange']/member[@name='16235']" name="name">SixteenBit</attr>
-       <attr path="/api/namespace/object[@cname='GstAdapter']/method[@cname='gst_adapter_copy']" name="hidden">1</attr>
        <attr path="/api/namespace/struct[@cname='GstByteReader']" name="opaque">1</attr>
        <remove-node path="/api/namespace//struct[@cname='GstByteReader']//method" />
+    <attr path="//struct[@name='VideoGLTextureUploadMeta']//field[@cname='user_data_copy' or @cname='user_data_free']" name="hidden">true</attr>
 
        <!-- FIXME: remove when https://bugzilla.gnome.org/show_bug.cgi?id=709938 is fixed -->
        <attr path="/api/namespace/interface[@cname='GstNavigation']/method[@cname='gst_navigation_query_parse_commands_length']/parameters/parameter[@name='n_cmds']" name="pass_as">out</attr>
@@ -192,10 +141,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
        <!-- Name clashes -->
        <attr path="/api/namespace/struct[@cname='GstRTCPBuffer']/field[@cname='map']" name="name">MapInfo</attr>
        <attr path="/api/namespace/struct[@cname='GstRTPBuffer']/field[@cname='map']" name="name">MapInfo</attr>
-       <!-- Enums starting with numbers -->
-       <attr path="/api/namespace/enum[@cname='GstRTPPayload']/member[@name='1016']" name="name">ThousandSixteen</attr>
-       <attr path="/api/namespace/enum[@cname='GstRTSPVersion']/member[@name='10']" name="name">Ten</attr>
-       <attr path="/api/namespace/enum[@cname='GstRTSPVersion']/member[@name='11']" name="name">Eleven</attr>
        <!-- Namespace switches -->
        <attr path="/api/namespace[@name='GstVideo']" name="name">Gst.Video</attr>
        <attr path="/api/namespace[@name='GstAudio']" name="name">Gst.Audio</attr>
@@ -211,7 +156,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
        <attr path="/api/namespace[@name='GstRtsp']" name="name">Gst.Rtsp</attr>
        <attr path="/api/namespace[@name='GstSdp']" name="name">Gst.Sdp</attr>
 
-       <!-- FIXME: Remove when https://bugzilla.gnome.org/show_bug.cgi?id=710001 is fixed -->
        <attr path="/api/namespace" name="library">libgstreamer-1.0-0.dll</attr>
        <attr path="/api/namespace[@name='Gst.Base']" name="library">libgstbase-1.0-0.dll</attr>
        <attr path="/api/namespace[@name='Gst.Audio']" name="library">libgstaudio-1.0-0.dll</attr>
@@ -227,18 +171,29 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
        <attr path="/api/namespace[@name='Gst.Rtsp']" name="library">libgstrtsp-1.0-0.dll</attr>
        <attr path="/api/namespace[@name='Gst.Sdp']" name="library">libgstsdp-1.0-0.dll</attr>
 
+    <!-- DoubleRange and Fraction are in Value.cs -->
+    <attr path="//struct[@name='DoubleRange' or @name='Fraction' or @name='IntRange' or @name='FractionRange']" name="hidden">true</attr>
+
        <!-- AppSink fixes -->
        <attr path="/api/namespace/object[@cname='GstAppSink']/signal[@cname='pull-sample']" name="hidden">true</attr>
        <attr path="/api/namespace/object[@cname='GstAppSink']/signal[@cname='pull-preroll']" name="hidden">true</attr>
-       <add-node path="/api/namespace/object[@cname='GstAppSink']">
-         <method name="PullPreroll" cname="gst_app_sink_pull_preroll">
-        <return-type type="GstSample*" owned="true" />
-        <parameters/>
-      </method>
-         <method name="PullSample" cname="gst_app_sink_pull_sample">
-        <return-type type="GstSample*" owned="true" />
-        <parameters/>
-      </method>
-       </add-node>
+
+    <!-- MessageType should be uint -->
+    <attr path="//enum[@name='MessageType']/member[@cname='GST_MESSAGE_UNKNOWN']" name="value">0U</attr>
+    <!-- Extract is manually bound -->
+    <attr path="//method[@cname='gst_buffer_extract']" name="hidden">true</attr>
+    <attr path="//method[@cname='gst_buffer_extract_dup']" name="hidden">true</attr>
+
+    <!-- Introspection fails -->
+    <attr path="//object[@cname='GstBufferPool']/field[@cname='flushing']" name="type">gboolean</attr>
+    <remove-attr path="//boxed[@cname='GstMpegtsSection']//method//return-type[@type='GPtrArray']" name="array"/>
+    <remove-attr path="//boxed[@cname='GstMpegtsSection']//method//return-type[@type='GPtrArray']" name="null_term_array"/>
+    <remove-attr path="//object[@cname='GstMpegtsGlobal']//method//return-type[@type='GPtrArray']" name="array"/>
+    <remove-attr path="//object[@cname='GstMpegtsGlobal']//method//return-type[@type='GPtrArray']" name="null_term_array"/>
+    <remove-attr path="//boxed[@cname='GstMpegtsDescriptor']//method//parameter[@type='GPtrArray***']" name="array"/>
+    <remove-attr path="//boxed[@cname='GstMpegtsDescriptor']//method//parameter[@type='GPtrArray***']" name="null_term_array"/>
+
+    <!-- No way to correctly generate these without the element type -->
+    <attr path="//boxed[@cname='GstMpegtsDescriptor']//method[parameters/parameter[@type='GArray***']]" name="hidden">true</attr>
 </metadata>