gstreamer/subprojects/gstreamer-sharp/sources/gstreamer-sharp.metadata

406 lines
31 KiB
XML

<?xml version="1.0"?>
<!--
Copyright (C) 2013 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
-->
<metadata>
<!-- No Conversion for GLib.Value -->
<remove-node path="/api/namespace/object[@cname='GstPad']/property[@name='Caps']"/>
<!-- Error with array -->
<attr path="/api/namespace/object[@cname='GstGlobal']/method[@cname='gst_formats_contains']" name="hidden">true</attr>
<!-- GParamSpec are not handled in the generator -->
<attr path="/api/namespace/struct[@cname='GstParamSpecArray']" name="hidden">true</attr>
<attr path="/api/namespace/struct[@cname='GstParamSpecFraction']" name="hidden">true</attr>
<!-- MiniObject issues -->
<attr path="/api/namespace/struct[@cname='GstMiniObject']" name="opaque">true</attr>
<attr path="/api/namespace/struct[@cname='GstMiniObject']/field[@cname='copy']" name="type">gpointer</attr>
<attr path="/api/namespace/struct[@cname='GstMiniObject']/field[@cname='free']" name="type">gpointer</attr>
<attr path="/api/namespace/struct[@cname='GstMiniObject']/field[@cname='dispose']" name="type">gpointer</attr>
<!-- structs and objects that should be opaque -->
<attr path="/api/namespace/boxed[@cname='GstDateTime']" name="opaque">true</attr>
<attr path="/api/namespace/boxed[@cname='GstBufferList']" name="opaque">true</attr>
<!-- GstPromise fixes -->
<attr path="/api/namespace/boxed[@cname='GstPromise']/method[@cname='gst_promise_get_reply']" name="name">RetrieveReply</attr>
<attr path="/api/namespace/boxed[@cname='GstPromise']/constructor[@cname='gst_promise_new_with_change_func']/*/*[@name='func']" name="scope">notified</attr>
<attr path="/api/namespace/boxed[@cname='GstPromise']/constructor[@cname='gst_promise_new_with_change_func']/*/*[@name='func']" name="closure">1</attr>
<attr path="/api/namespace/boxed[@cname='GstPromise']/constructor[@cname='gst_promise_new_with_change_func']/*/*[@name='func']" name="destroy">2</attr>
<!-- GstRTSPMessage fixes -->
<attr path="/api/namespace/boxed[@cname='GstRTSPMessage']/method[@cname='gst_rtsp_message_get_body']" name="hidden">true</attr>
<attr path="/api/namespace/boxed[@cname='GstRTSPMessage']/method[@cname='gst_rtsp_message_steal_body']" name="hidden">true</attr>
<attr path="/api/namespace/boxed[@cname='GstRTSPMessage']/method[@cname='gst_rtsp_message_get_type']" name="name">GetMessageType</attr>
<!-- <attr path="/api/namespace/boxed[@cname='GstRTSPMessage']" name="noequals">true</attr>
<attr path="/api/namespace/boxed[@cname='GstRTSPMessage']" name="nohash">true</attr> -->
<attr path="/api/namespace/boxed[@cname='GstRTSPMessage']/field[@cname='body']" name="type">guint8*</attr>
<attr path="/api/namespace//method[@cname='gst_rtsp_message_parse_auth_credentials']" name="hidden">true</attr>
<!-- GstCaps fixes -->
<remove-node path="/api/namespace/boxed[@cname='GstCaps']/constructor[@cname='gst_caps_new_any']"/>
<add-node path="/api/namespace/boxed[@cname='GstCaps']">
<constructor cname="gst_caps_new_any" disable_void_ctor="" />
</add-node>
<attr path="/api/namespace/boxed[@cname='GstEvent']" name="name_constructors">true</attr>
<attr path="/api/namespace/boxed[@cname='GstMessage']" name="name_constructors">true</attr>
<!-- Explicitly declare GstSample as a GstMiniObject (the opaque struct definition doesn't have GObject-Introspection
annotations) to get ref-counting to work.
-->
<attr path="/api/namespace/boxed[@cname='GstSample']" name="opaque">true</attr>
<attr path="/api/namespace/boxed[@cname='GstSample']" name="parent">GstMiniObject</attr>
<!-- GstVideoOverlayComposition fixes -->
<attr path="/api/namespace/boxed[@cname='GstVideoOverlayComposition']" name="opaque">true</attr>
<attr path="/api/namespace/boxed[@cname='GstVideoOverlayComposition']" name="parent">GstMiniObject</attr>
<attr path="/api/namespace/boxed[@cname='GstVideoOverlayRectangle']" name="opaque">true</attr>
<attr path="/api/namespace/boxed[@cname='GstVideoOverlayRectangle']" name="parent">GstMiniObject</attr>
<attr path="/api/namespace/boxed[@cname='GstAudioInfo']" name="opaque">true</attr>
<attr path="/api/namespace/boxed[@cname='GstVideoInfo']" name="opaque">true</attr>
<attr path="/api/namespace/boxed[@cname='GstAtomicQueue']" name="opaque">true</attr>
<attr path="/api/namespace/boxed[@cname='GstParseContext']" name="opaque">true</attr>
<attr path="/api/namespace/object[@cname='GstElementFactory']" name="opaque">true</attr>
<attr path="/api/namespace/object[@cname='GstTypeFindFactory']" name="opaque">true</attr>
<attr path="/api/namespace/object[@cname='GstPluginFeature']" name="opaque">true</attr>
<attr path="/api/namespace/object[@cname='GstPlugin']" name="opaque">true</attr>
<attr path="/api/namespace/object[@cname='GstBus']" name="opaque">true</attr>
<attr path="/api/namespace/object[@cname='GstRegistry']" name="opaque">true</attr>
<!-- hide some fields which do not exist -->
<attr path="/api/namespace/object[@cname='GstBus']/field[@cname='object']" name="hidden">true</attr>
<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>
<!-- hide some methods if the same name exisits in a parent class -->
<attr path="/api/namespace/object[@cname='GstPipeline']/method[@name='GetBus']" name="hidden">true</attr>
<!-- add opaque attribute to all structs which need special handling -->
<attr path="/api/namespace//boxed[field[@type='GstMiniObject']]" name="opaque">true</attr>
<attr path="/api/namespace//boxed[field[@type='GstMiniObject']]" name="parent">GstMiniObject</attr>
<attr path="/api/namespace//boxed/field[@type='GstMiniObject']" name="hidden">true</attr>
<attr path="/api/namespace/boxed[@cname='GstStructure']" name="opaque">true</attr>
<attr path="/api/namespace/boxed[@cname='GstStructure']/method[@cname='gst_structure_take']" name="hidden">true</attr>
<attr path="/api/namespace/object[@cname='GstGlobal']/method[@cname='gst_structure_take']" name="hidden">true</attr>
<attr path="/api/namespace/struct[@cname='GstTypeFind']" name="opaque">true</attr>
<attr path="/api/namespace/boxed[@cname='GstIterator']" name="opaque">true</attr>
<!-- acknowledge that we GstIterator implements the IEnumerator interface -->
<add-node path="/api/namespace/boxed[@cname='GstIterator']">
<implements>
<interface name="IEnumerable" doc="https://docs.microsoft.com/fr-fr/dotnet/api/system.collections.ienumerable"/>
</implements>
</add-node>
<attr path="/api/namespace/boxed[@cname='GstIterator']/method[@cname='gst_iterator_next']" name="hidden">true</attr>
<attr path="/api/namespace/boxed[@cname='GstIterator']/field[@cname='master_cookie']" name="type">guint32*</attr>
<!-- Fix for GstChildProxy -->
<attr path="/api/namespace/interface[@cname='GstChildProxy']/method[@cname='gst_child_proxy_get_property']" name="hidden">1</attr>
<attr path="/api/namespace/interface[@cname='GstChildProxy']/method[@cname='gst_child_proxy_set_property']" name="hidden">1</attr>
<!-- 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='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='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"/>
<!-- calling oldobj.Handle should fix this -->
<remove-attr path="/api/namespace/object[@cname='GstObject']/method[@cname='gst_object_replace']/parameters/parameter[@name='oldobj']" name="pass_as"/>
<add-node path="/api/namespace/object[@cname='GstObject']">
<method name="Connect">
<parameters>
<parameter name="o" type="GObject" />
<parameter name="handler" type="Delegate" />
</parameters>
</method>
</add-node>
<!-- Some glue problems -->
<attr path="/api/namespace/object[@cname='GstObject']/field[@cname='object']" name="hidden">true</attr>
<attr path="/api/namespace/struct[@cname='GstClockEntry']/field[@cname='func']" name="hidden">true</attr>
<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>
<!-- hide user data; FIXME: already removed in 1.2 GIR file, remove when we update to this version -->
<attr path="/api/namespace/object[@cname='GstBus']/method[@cname='gst_bus_sync_signal_handler']/parameters/parameter[@name='data']" name="hidden">1</attr>
<!-- FIXME Check why this is badly handled in bindinator -->
<remove-node path="/api/namespace/object[@cname='GstElementFactory']/method[@cname='gst_element_factory_get_static_pad_templates']/return-type"/>
<add-node path="/api/namespace/object[@cname='GstElementFactory']/method[@cname='gst_element_factory_get_static_pad_templates']">
<return-type type="const GList*" element_type="GstStaticPadTemplate"/>
</add-node>
<!-- API improvements -->
<add-node path="/api/namespace[@name='Gst']">
<class name="Parse" cname="GstParse" disable_void_ctor="1"/>
</add-node>
<move-node path="/api/namespace//object[@name='Global']//method[starts-with(@cname, 'gst_parse')]">/api/namespace/class[@name='Parse']</move-node>
<add-node path="/api/namespace[@name='Gst']">
<class name="Debug" cname="GstDebug" disable_void_ctor="1"/>
</add-node>
<move-node path="/api/namespace//object[@name='Global']//method[starts-with(@cname, 'gst_debug')]">/api/namespace/class[@cname='GstDebug']</move-node>
<add-node path="/api/namespace[@name='Gst']">
<class name="Application" cname="GstApplication" disable_void_ctor="1"/>
</add-node>
<move-node path="/api/namespace//object[@name='Global']//method[contains(@cname, 'gst_init') or starts-with(@cname, 'gst_version')]">/api/namespace/class[@cname='GstApplication']</move-node>
<add-node path="/api/namespace[@name='Gst']">
<class name="Value" cname="GstValue" disable_void_ctor="1"/>
</add-node>
<move-node path="/api/namespace//object[@name='Global']//method[starts-with(@cname, 'gst_value')]">/api/namespace/class[@cname='GstValue']</move-node>
<add-node path="/api/namespace[@name='Gst']">
<class name="Tag" cname="GstTag" disable_void_ctor="1"/>
</add-node>
<move-node path="/api/namespace//object[@name='Global']//method[starts-with(@cname, 'gst_tag')]">/api/namespace/class[@cname='GstTag']</move-node>
<add-node path="/api/namespace[@name='Gst']">
<class name="Util" cname="GstUtil" disable_void_ctor="1"/>
</add-node>
<move-node path="/api/namespace//object[@name='Global']//method[starts-with(@cname, 'gst_format') or starts-with(@cname, 'gst_uri') or starts-with(@cname, 'gst_util') or @cname='gst_filename_to_uri']">/api/namespace/class[@cname='GstUtil']</move-node>
<move-node path="/api/namespace//object[@name='Global']//method[contains(@cname, 'registry')]">/api/namespace/object[@cname='GstRegistry']</move-node>
<move-node path="/api/namespace//object[@name='Global']//method[starts-with(@cname, 'gst_poll')]">/api/namespace/struct[@cname='GstPoll']</move-node>
<move-node path="/api/namespace//object[@name='Global']//method[starts-with(@cname, 'gst_pad')]">/api/namespace/object[@cname='GstPad']</move-node>
<!-- Things implemented on our own -->
<attr path="/api/namespace/boxed[@cname='GstMessage']/method[@cname='gst_message_parse_error']" name="hidden">true</attr>
<attr path="/api/namespace/boxed[@cname='GstMessage']/method[@cname='gst_message_get_stream_status_object']" name="hidden">true</attr>
<attr path="/api/namespace/boxed[@cname='GstMessage']/method[@cname='gst_message_set_stream_status_object']" name="hidden">true</attr>
<attr path="/api/namespace/object[@cname='GstGlobal']/method[@cname='gst_init']" name="hidden">true</attr>
<attr path="/api/namespace/object[@cname='GstGlobal']/method[@cname='gst_init_check']" name="hidden">true</attr>
<attr path="//method[contains(@cname, 'gst_element_class_')]" name="hidden">true</attr>
<attr path="//method[@cname='gst_element_class_get_metadata']" name="hidden">true</attr>
<attr path="/api/namespace/object/method[starts-with(@cname, 'gst_element_class')]" name="hidden">true</attr>
<attr path="/api/namespace/object/method[starts-with(@cname, 'gst_device_provider_class')]" name="hidden">true</attr>
<!-- GstVideo -->
<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/object[@cname='GstVideoEncoder']/field[@cname='padding']" name="type">gpointer</attr>
<attr path="/api/namespace/struct[@cname='GstByteReader']" name="opaque">1</attr>
<attr path="/api/namespace/struct[@cname='GstAudioRingBufferSpec']" name="opaque">true</attr>
<remove-node path="/api/namespace/enum[@cname='GstVideoBufferFlags']/member[@cname='GST_VIDEO_BUFFER_FLAG_ONEFIELD']"/>
<remove-node path="/api/namespace/enum[@cname='GstVideoFrameFlags']/member[@cname='GST_VIDEO_FRAME_FLAG_ONEFIELD']"/>
<remove-node path="/api/namespace//struct[@cname='GstByteReader']//method"/>
<remove-node path="/api/namespace//method[@cname='gst_buffer_add_video_meta_full']"/>
<attr path="//struct[@name='VideoGLTextureUploadMeta']//field[@cname='user_data_copy' or @cname='user_data_free']" name="hidden">true</attr>
<attr path="//interface[@cname='GstVideoOverlay']//parameter[@type='guintptr']" name="type">gpointer</attr>
<attr path="//method[@cname='gst_video_scaler_2d']" name="name">TwoD</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>
<attr path="/api/namespace/interface[@cname='GstNavigation']/method[@cname='gst_navigation_query_parse_commands_nth']/parameters/parameter[@name='cmd']" name="pass_as">out</attr>
<!-- GstAudio -->
<attr path="/api/namespace/object[@cname='GstAudioClock']/field[@cname='destroy_notify']" name="hidden">1</attr>
<attr path="/api/namespace/interface[@cname='GstStreamVolume']/property[@cname='volume']" name="hidden">1</attr>
<attr path="//method[@cname='gst_audio_filter_class_add_pad_templates']" name="name">AddAudioPadTemplate</attr> <!-- FIXME This should probably be usable -->
<attr path="/api/namespace//struct[@cname='GstAudioDownmixMeta']" name="parent">GstMeta</attr>
<attr path="/api/namespace//struct[@cname='GstAudioDownmixMeta']/field[@cname='from_position']" name="type">GstAudioChannelPosition*</attr>
<attr path="/api/namespace//struct[@cname='GstAudioDownmixMeta']/field[@cname='to_position']" name="type">GstAudioChannelPosition*</attr>
<attr path="/api/namespace/boxed/method[@cname='gst_audio_converter_convert']" name="hidden">true</attr>
<attr path="/api/namespace/object/method[@cname='gst_audio_ring_buffer_prepare_read']" name="hidden">true</attr>
<attr path="/api/namespace/struct[@cname='GstAudioBuffer']/field[@cname='priv_planes_arr']" name="hidden">true</attr>
<attr path="/api/namespace/struct[@cname='GstAudioBuffer']/field[@cname='priv_map_infos_arr']" name="hidden">true</attr>
<attr path="/api/namespace/struct[@cname='GstAudioMeta']/field[@cname='priv_offsets_arr']" name="hidden">true</attr>
<remove-attr path="/api/namespace/boxed/method[@cname='gst_audio_info_set_format']/parameters/parameter[@name='position']" name="array_len"/>
<!-- FIXME Make GstAudioAggregator working -->
<attr path="/api/namespace/object[@cname='GstAudioAggregator']" name="hidden">true</attr>
<attr path="/api/namespace/object[@cname='GstAudioAggregatorPad']" name="hidden">true</attr>
<attr path="/api/namespace/object[@cname='GstAudioAggregatorConvertPad']" name="hidden">true</attr>
<!-- Name clashes -->
<attr path="//method[@cname='gst_buffer_foreach_meta']" name="hidden">true</attr> <!-- FIXME This should probably be usable -->
<attr path="//method[@cname='gst_clock_set_synced']" name="name">is_synced</attr>
<attr path="//method[@cname='gst_control_source_get_value']" name="name">GetValueAt</attr>
<attr path="//method[@cname='gst_control_source_get_value_array']" name="name">GetValues</attr>
<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>
<!-- Namespace switches -->
<attr path="/api/namespace[@name='GstVideo']" name="name">Gst.Video</attr>
<attr path="/api/namespace[@name='GstAudio']" name="name">Gst.Audio</attr>
<attr path="/api/namespace[@name='GstBase']" name="name">Gst.Base</attr>
<attr path="/api/namespace[@name='GstPbutils']" name="name">Gst.PbUtils</attr>
<attr path="/api/namespace[@name='GstTag']" name="name">Gst.Tags</attr>
<attr path="/api/namespace[@name='GstApp']" name="name">Gst.App</attr>
<attr path="/api/namespace[@name='GstController']" name="name">Gst.Controller</attr>
<attr path="/api/namespace[@name='GstFft']" name="name">Gst.FFT</attr>
<attr path="/api/namespace[@name='GstNet']" name="name">Gst.Net</attr>
<attr path="/api/namespace[@name='GstRiff']" name="name">Gst.Riff</attr>
<attr path="/api/namespace[@name='GstRtp']" name="name">Gst.Rtp</attr>
<attr path="/api/namespace[@name='GstRtsp']" name="name">Gst.Rtsp</attr>
<attr path="/api/namespace[@name='GstSdp']" name="name">Gst.Sdp</attr>
<attr path="/api/namespace[@name='GstWebRTC']" name="name">Gst.WebRTC</attr>
<attr path="/api/namespace" name="library">gstreamer-1.0-0.dll</attr>
<attr path="/api/namespace[@name='Gst.Base']" name="library">gstbase-1.0-0.dll</attr>
<attr path="/api/namespace[@name='Gst.Audio']" name="library">gstaudio-1.0-0.dll</attr>
<attr path="/api/namespace[@name='Gst.Video']" name="library">gstvideo-1.0-0.dll</attr>
<attr path="/api/namespace[@name='Gst.PbUtils']" name="library">gstpbutils-1.0-0.dll</attr>
<attr path="/api/namespace[@name='Gst.Tags']" name="library">gsttag-1.0-0.dll</attr>
<attr path="/api/namespace[@name='Gst.App']" name="library">gstapp-1.0-0.dll</attr>
<attr path="/api/namespace[@name='Gst.Controller']" name="library">gstcontroller-1.0-0.dll</attr>
<attr path="/api/namespace[@name='Gst.FFT']" name="library">gstfft-1.0-0.dll</attr>
<attr path="/api/namespace[@name='Gst.Net']" name="library">gstnet-1.0-0.dll</attr>
<attr path="/api/namespace[@name='Gst.Riff']" name="library">gstriff-1.0-0.dll</attr>
<attr path="/api/namespace[@name='Gst.Rtp']" name="library">gstrtp-1.0-0.dll</attr>
<attr path="/api/namespace[@name='Gst.Rtsp']" name="library">gstrtsp-1.0-0.dll</attr>
<attr path="/api/namespace[@name='Gst.Sdp']" name="library">gstsdp-1.0-0.dll</attr>
<attr path="/api/namespace[@name='Gst.WebRTC']" name="library">gstwebrtc-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>
<!-- 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>
<!-- GWeakRef is unknown at this point.. we can make it a gpointer for now. -->
<attr path="//object[@cname='GstProxyControlBinding']/field[@cname='ref_object']" name="type">gpointer</attr>
<!-- FIXME Reactivate GstMpegTS when stablized
<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"/>
-->
<attr path="//method[@cname='gst_mini_object_replace']" name="hidden">true</attr>
<attr path="//method[@cname='gst_mini_object_take']" name="hidden">true</attr>
<attr path="//struct[@cname='GstVideoGLTextureUploadMeta']" name="noequals">true</attr>
<attr path="//object[@cname='GstPad']//union" name="hidden">true</attr>
<attr path="//struct[@cname='GstControlPoint']" name="hidden">true</attr>
<attr path="//boxed[@cname='GstVideoCodecFrame']/union" name="hidden">true</attr>
<attr path="//boxed[@cname='GstVideoCodecFrame']/union/field[@cname='padding']" name="type">gpointer</attr>
<attr path="//*[@type='const GList*']" name="type">GList*</attr>
<attr path="//*[@type='const GSList*']" name="type">GSList*</attr>
<attr path="//object/field[@cname='object' and @type='GstObject*']" name="hidden">true</attr>
<attr path="//constant[@name='CLOCK_TIME_NONE']" name="ctype">guint64</attr>
<attr path="//constant[@name='SECOND']" name="ctype">gint64</attr>
<attr path="//constant[@name='MSECOND']" name="ctype">gint64</attr>
<attr path="//method[parameters/parameter[contains(@type, 'Class*')]]" name="hidden">true</attr>
<attr path="//struct[@cname='GstMapInfo']/field[@name='Data']" name="type">gpointer</attr>
<attr path="//struct[@cname='GstMapInfo']/field[@name='Data']" name="array">false</attr>
<attr path="//method[@cname='gst_tag_list_copy_value']/parameters/parameter[@name='dest']" name="pass_as">ref</attr>
<attr path="//object/field[@cname='parent']" name="hidden">true</attr>
<!-- buffer fixes -->
<attr path="//constructor[@cname='gst_buffer_new_wrapped']" name="hidden">true</attr>
<attr path="//constructor[@cname='gst_buffer_new_wrapped_full']/parameters/parameter[@name='data']" name="type">guint8*</attr>
<attr path="//constructor[@cname='gst_memory_new_wrapped']/parameters/parameter[@name='data']" name="type">guint8*</attr>
<attr path="//method[@cname='gst_buffer_fill']/parameters/parameter[@name='src']" name="type">guint8*</attr>
<attr path="//method[@cname='gst_buffer_fill']/parameters/parameter[@name='size']" name="name">n_length</attr>
<attr path="//method[@cname='gst_buffer_memcmp']/parameters/parameter[@name='mem']" name="type">guint8*</attr>
<attr path="//method[@cname='gst_buffer_memcmp']/parameters/parameter[@name='size']" name="name">n_length</attr>
<!-- array fixes -->
<attr path="//method[@cname='gst_rtcp_packet_copy_profile_specific_ext']//parameter[@name='data']" name="type">guint8**</attr>
<attr path="//method[@cname='gst_rtcp_packet_copy_profile_specific_ext']//parameter[@name='data']" name="array">false</attr>
<attr path="//method[@cname='gst_rtcp_packet_get_profile_specific_ext']//parameter[@name='data']" name="array">false</attr>
<attr path="//method[@cname='gst_rtp_buffer_new_copy_data']/parameters/parameter[@name='data']" name="type">guint8*</attr>
<attr path="//method[@cname='gst_rtp_buffer_new_copy_data']/parameters/parameter[@name='len']" name="name">n_length</attr>
<attr path="//method[@cname='gst_rtp_buffer_new_take_data']/parameters/parameter[@name='data']" name="type">guint8*</attr>
<attr path="//method[@cname='gst_rtp_buffer_new_take_data']/parameters/parameter[@name='len']" name="name">n_length</attr>
<attr path="//method[@cname='gst_rtcp_buffer_new_copy_data']/parameters/parameter[@name='data']" name="type">guint8*</attr>
<attr path="//method[@cname='gst_rtcp_buffer_new_copy_data']/parameters/parameter[@name='len']" name="name">n_length</attr>
<attr path="//method[@cname='gst_rtcp_buffer_new_take_data']/parameters/parameter[@name='data']" name="type">guint8*</attr>
<attr path="//method[@cname='gst_rtcp_buffer_new_take_data']/parameters/parameter[@name='len']" name="name">n_length</attr>
<attr path="//method[@cname='gst_rtp_buffer_add_extension_onebyte_header']/parameters/parameter[@name='data']" name="type">guint8*</attr>
<attr path="//method[@cname='gst_rtp_buffer_add_extension_onebyte_header']/parameters/parameter[@name='size']" name="name">n_length</attr>
<attr path="//method[@cname='gst_rtp_buffer_add_extension_twobytes_header']/parameters/parameter[@name='data']" name="type">guint8*</attr>
<attr path="//method[@cname='gst_rtp_buffer_add_extension_twobytes_header']/parameters/parameter[@name='size']" name="name">n_length</attr>
<attr path="//constructor[@cname='gst_mikey_message_new_from_data']/parameters/parameter[@name='data']" name="type">guint8*</attr>
<attr path="//constructor[@cname='gst_mikey_message_new_from_data']/parameters/parameter[@name='size']" name="name">n_length</attr>
<attr path="//method[@cname='gst_audio_reorder_channels']/parameters/parameter[@name='data']" name="type">guint8*</attr>
<attr path="//method[@cname='gst_audio_reorder_channels']/parameters/parameter[@name='size']" name="name">n_length</attr>
<attr path="//method[@cname='gst_audio_format_fill_silence']/parameters/parameter[@name='dest']" name="type">guint8*</attr>
<attr path="//method[@cname='gst_audio_format_fill_silence']/parameters/parameter[@name='length']" name="name">n_length</attr>
<attr path="//callback[@cname='GstAudioFormatPack']/parameters/parameter[@name='src']" name="type">guint8*</attr>
<attr path="//callback[@cname='GstAudioFormatPack']/parameters/parameter[@name='data']" name="type">guint8*</attr>
<attr path="//callback[@cname='GstAudioFormatPack']/parameters/parameter[@name='length']" name="name">n_length</attr>
<attr path="//callback[@cname='GstAudioFormatUnpack']/parameters/parameter[@name='data']" name="type">guint8*</attr>
<attr path="//callback[@cname='GstAudioFormatUnpack']/parameters/parameter[@name='dest']" name="type">guint8*</attr>
<attr path="//callback[@cname='GstAudioFormatUnpack']/parameters/parameter[@name='length']" name="name">n_length</attr>
<attr path="/api/namespace/object[@cname='GstObject']/field[@cname='flags']" name="writeable">true</attr>
<attr path="/api/namespace/object[@cname='GstAudioRingBuffer']/field[@cname='empty_seg']" name="type">guint8*</attr>
<attr path="/api/namespace/struct[@cname='GstMIKEYPayloadKeyData']/field[@cname='key_data']" name="type">guint8*</attr>
<attr path="/api/namespace/struct[@cname='GstMIKEYPayloadKeyData']/field[@cname='salt_data']" name="type">guint8*</attr>
<attr path="/api/namespace/struct[@cname='GstMIKEYPayloadKeyData']/field[@cname='kv_data']" name="type">guint8*</attr>
<attr path="/api/namespace/struct[@cname='GstMIKEYPayloadSPParam']/field[@cname='val']" name="type">guint8*</attr>
<attr path="/api/namespace/struct[@cname='GstMIKEYPayloadPKE']/field[@cname='data']" name="type">guint8*</attr>
<attr path="/api/namespace/struct[@cname='GstMIKEYPayloadrand']/field[@cname='rand']" name="type">guint8*</attr>
<attr path="/api/namespace/struct[@cname='gstmikeypayloadT']/field[@cname='ts_value']" name="type">guint8*</attr>
<attr path="/api/namespace/struct[@cname='GstVideoResampler']/field[@cname='phase']" name="type">guint32*</attr>
<attr path="/api/namespace/struct[@cname='GstVideoResampler']/field[@cname='n_taps']" name="type">guint32*</attr>
<attr path="/api/namespace/struct[@cname='GstVideoResampler']/field[@cname='taps']" name="type">gdouble*</attr>
<!-- Webrtc fixes -->
<attr path="/api/namespace/object[@cname='GstWebRTCDataChannel']/signal[@cname='on-close']" name="hidden">true</attr>
<!-- No way to correctly generate these without the element type -->
<attr path="//boxed[@cname='GstMpegtsDescriptor']//method[parameters/parameter[@type='GArray***']]" name="hidden">true</attr>
<!-- Hide because it is basically an alias to NetClock -->
<attr path="/api/namespace/object[@cname='GstNtpClock']" name="hidden">true</attr>
<!-- Fixed in 1.4.1 -->
<attr path="//callback[@cname='GstPadEventFunction']/parameters/parameter[@name='event']" name="owned">true</attr>
<attr path="//callback[@cname='GstPadChainListFunction']/parameters/parameter[@name='list']" name="owned">true</attr>
<attr path="//callback[@cname='GstPadChainFunction']/parameters/parameter[@name='buffer']" name="owned">true</attr>
<!-- FIXME in codegen - gst_codec_utils_opus_parse_caps -->
<attr path="/api/namespace/object[@cname='GstPbutilsGlobal']/method[@cname='gst_codec_utils_opus_parse_caps']" name="hidden">true</attr>
<attr path="/api/namespace/object[@cname='GstPbutilsGlobal']/method[@cname='gst_codec_utils_opus_parse_header']" name="hidden">true</attr>
<!-- Mark reserved fields as padding -->
<attr path="//*[contains(@cname, 'gst_reserved')]" name="padding">true</attr>
<attr path="//*[contains(@cname, 'gst_reserved2')]" name="padding">true</attr>
<attr path="//*[contains(@cname, 'gst_reserved')]" name="padding">true</attr>
<attr path="//*[contains(@cname, 'gst_reserved_p')]" name="padding">true</attr>
<attr path="//*[contains(@cname, 'gst_reserved_i')]" name="padding">true</attr>
<attr path="//*[contains(@cname, 'gst_reserved')]" name="padding">true</attr>
<attr path="//*[@cname='_padding']" name="padding">true</attr>
<attr path="/api/namespace/boxed[@cname='GstSDPMessage']" name="opaque">true</attr>
<!-- New APIs in 1.18 that need need some fixing -->
<attr path="/api/namespace//method[@cname='gst_rtp_buffer_get_extension_onebyte_header_from_bytes']" name="hidden">true</attr>
</metadata>