gstreamer/subprojects/gstreamer-sharp/sources/gstreamer-sharp.metadata
Tim-Philipp Müller 3523ba76ae csharp: fix GstAudioRingBuffer structure size and field offset mismatches
.. which caused the gstreamer_sharp_abi unit test to fail.

GstAudioRingBuffer has segdone and segbase as struct fields and
a get/set API with the same name but different types. The fields
have been deprecated and are no longer used now, and they need to
be hidden and we also need to rename them so that the generator
does not mix types (the setter/getters use guint64 but the fields
have gint types, which caused some type confusion in the generator).

Co-authored by: Andoni Morales Alastruey <ylatuya@gmail.com>

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8541>
2025-02-27 17:38:57 +00:00

381 lines
29 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>
<!-- 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='GstNet']" name="name">Gst.Net</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='GstRtspServer']" name="name">Gst.RtspServer</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.Net']" name="library">gstnet-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>
<attr path="/api/namespace[@name='Gst.RtspServer']" name="library">gstrtspserver-1.0-0.dll</attr>
<!-- MiniObject issues -->
<attr path="/api/namespace/boxed[@cname='GstMiniObject']" name="opaque">true</attr>
<attr path="/api/namespace/boxed[@cname='GstMiniObject']/field[@cname='copy']" name="type">gpointer</attr>
<attr path="/api/namespace/boxed[@cname='GstMiniObject']/field[@cname='free']" name="type">gpointer</attr>
<attr path="/api/namespace/boxed[@cname='GstMiniObject']/field[@cname='dispose']" name="type">gpointer</attr>
<!-- Fix inheritance of GstMiniObject subclasses -->
<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>
<!-- structs and objects that should be opaque -->
<attr path="/api/namespace/struct[@cname='GstTypeFind']" name="opaque">true</attr>
<attr path="/api/namespace/struct[@cname='GstAudioRingBufferSpec']" name="opaque">true</attr>
<attr path="/api/namespace/boxed[@cname='GstDateTime']" name="opaque">true</attr>
<attr path="/api/namespace/boxed[@cname='GstBufferList']" name="opaque">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/boxed[@cname='GstIterator']" name="opaque">true</attr>
<attr path="/api/namespace/boxed[@cname='GstSample']" name="opaque">true</attr>
<attr path="/api/namespace/boxed[@cname='GstSample']" name="parent">GstMiniObject</attr>
<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='GstSDPMessage']" name="opaque">true</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='GstGlobal']/method[@cname='gst_structure_take']" name="hidden">true</attr>
<!-- 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>
<!-- 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>
<!-- 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>
<!-- 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="//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>
<!-- 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>
<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/enum[@cname='GstNavigationModifierType']/member[@cname='GST_NAVIGATION_MODIFIER_META_MASK']"/>
<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>
<attr path="/api/namespace/struct[@cname='GstVideoFrame']/field[@cname='map']" name="name">MapInfo</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>
<attr path="/api/namespace/struct[@cname='GstAudioMeta']/field[@cname='priv_offsets_arr']" name="hidden">true</attr>
<attr path="/api/namespace/struct[@cname='GstDsdPlaneOffsetMeta']/field[@cname='priv_offsets_arr']" name="hidden">true</attr>
<attr path="/api/namespace/struct[@cname='GstDsdPlaneOffsetMeta']/field[@cname='priv_offsets_arr']" name="hidden">true</attr>
<attr path="/api/namespace/boxed[@cname='GstDsdInfo']/method[@cname='gst_dsd_info_set_format']" name="hidden">true</attr>
<remove-attr path="/api/namespace/boxed/method[@cname='gst_audio_info_set_format']/parameters/parameter[@name='position']" name="array_len"/>
<!-- GstRtp -->
<attr path="//method[@cname='gst_rtp_header_extension_wants_update_non_rtp_src_caps']" name="name">SetWantsUpdateNonRtpSrcCaps</attr>
<!-- 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>
<!-- 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>
<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="//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="//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>
<!-- GstAudioRingBuffer has segdone and segbase as struct fields and a get/set API with the same name but different types.
The fields have been deprecated and they need to be hidden and we also need to rename them so that the generator does not mix types. -->
<attr path="//object[@cname='GstAudioRingBuffer']/field[@cname='segdone']" name="name">SegdoneField</attr>
<attr path="//object[@cname='GstAudioRingBuffer']/field[@cname='segdone']" name="hidden">true</attr>
<attr path="//object[@cname='GstAudioRingBuffer']/field[@cname='segbase']" name="name">SegbaseField</attr>
<attr path="//object[@cname='GstAudioRingBuffer']/field[@cname='segbase']" name="hidden">true</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='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>
<!-- Hide because it is basically an alias to NetClock -->
<attr path="/api/namespace/object[@cname='GstNtpClock']" name="hidden">true</attr>
<!-- GstRtspServer fixes -->
<attr path="/api/namespace/object/method[@cname='gst_rtsp_stream_transport_set_callbacks']" name="hidden">true</attr>
<attr path="/api/namespace/object/method[@cname='gst_rtsp_stream_transport_set_list_callbacks']" name="hidden">true</attr>
<attr path="/api/namespace/object/method[@cname='gst_rtsp_stream_transport_message_sent']" 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>
</metadata>