/* gstreamer-net-1.0.vapi generated by vapigen, do not modify. */

[CCode (cprefix = "Gst", gir_namespace = "GstNet", gir_version = "1.0", lower_case_cprefix = "gst_")]
namespace Gst {
	namespace Net {
		[CCode (cheader_filename = "gst/net/net.h", type_id = "gst_net_client_clock_get_type ()")]
		[GIR (name = "NetClientClock")]
		public class ClientClock : Gst.SystemClock {
			[CCode (has_construct_function = false, type = "GstClock*")]
			public ClientClock (string name, string remote_address, int remote_port, Gst.ClockTime base_time);
			[NoAccessorMethod]
			public string address { owned get; set construct; }
			[NoAccessorMethod]
			public uint64 base_time { get; construct; }
			[NoAccessorMethod]
			public Gst.Bus bus { owned get; set; }
			[NoAccessorMethod]
			public Gst.Clock internal_clock { owned get; }
			[NoAccessorMethod]
			public uint64 minimum_update_interval { get; set; }
			[NoAccessorMethod]
			public int port { get; set construct; }
			[NoAccessorMethod]
			public int qos_dscp { get; set; }
			[NoAccessorMethod]
			public uint64 round_trip_limit { get; set; }
		}
		[CCode (cheader_filename = "gst/net/net.h", cname = "GstNtpClock", lower_case_cprefix = "gst_ntp_clock_", type_id = "gst_ntp_clock_get_type ()")]
		[GIR (name = "NtpClock")]
		public class NtpClock : Gst.Net.ClientClock {
			[CCode (has_construct_function = false, type = "GstClock*")]
			[Version (since = "1.6")]
			public NtpClock (string name, string remote_address, int remote_port, Gst.ClockTime base_time);
		}
		[CCode (cheader_filename = "gst/net/net.h", cname = "GstPtpClock", lower_case_cprefix = "gst_ptp_clock_", type_id = "gst_ptp_clock_get_type ()")]
		[GIR (name = "PtpClock")]
		[Version (since = "1.6")]
		public class PtpClock : Gst.SystemClock {
			[CCode (has_construct_function = false, type = "GstClock*")]
			public PtpClock (string name, uint domain);
			[NoAccessorMethod]
			public uint domain { get; construct; }
			[NoAccessorMethod]
			public uint64 grandmaster_clock_id { get; }
			[NoAccessorMethod]
			public Gst.Clock internal_clock { owned get; }
			[NoAccessorMethod]
			public uint64 master_clock_id { get; }
		}
		[CCode (cheader_filename = "gst/net/net.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "gst_net_time_packet_get_type ()")]
		[Compact]
		[GIR (name = "NetTimePacket")]
		public class TimePacket {
			public Gst.ClockTime local_time;
			public Gst.ClockTime remote_time;
			[CCode (cname = "GST_NET_TIME_PACKET_SIZE")]
			public const int SIZE;
			[CCode (has_construct_function = false)]
			public TimePacket ([CCode (array_length = false)] uint8[] buffer);
			public Gst.Net.TimePacket copy ();
			public void free ();
			public static Gst.Net.TimePacket receive (GLib.Socket socket, out GLib.SocketAddress src_address) throws GLib.Error;
			public bool send (GLib.Socket socket, GLib.SocketAddress dest_address) throws GLib.Error;
			public uint8 serialize ();
		}
		[CCode (cheader_filename = "gst/net/net.h", type_id = "gst_net_time_provider_get_type ()")]
		[GIR (name = "NetTimeProvider")]
		public class TimeProvider : Gst.Object, GLib.Initable {
			[CCode (has_construct_function = false)]
			public TimeProvider (Gst.Clock clock, string? address, int port);
			[NoAccessorMethod]
			public bool active { get; set; }
			[NoAccessorMethod]
			public string address { owned get; construct; }
			[NoAccessorMethod]
			public Gst.Clock clock { owned get; construct; }
			[NoAccessorMethod]
			public int port { get; construct; }
			[NoAccessorMethod]
			public int qos_dscp { get; set; }
		}
		[CCode (cheader_filename = "gst/net/net.h", has_type_id = false)]
		[GIR (name = "NetAddressMeta")]
		public struct AddressMeta {
			public Gst.Meta meta;
			public weak GLib.SocketAddress addr;
			public static unowned Gst.MetaInfo? get_info ();
		}
		[CCode (cheader_filename = "gst/net/net.h", has_type_id = false)]
		[GIR (name = "NetControlMessageMeta")]
		public struct ControlMessageMeta {
			public Gst.Meta meta;
			public weak GLib.SocketControlMessage message;
			public static unowned Gst.MetaInfo? get_info ();
		}
		[CCode (cheader_filename = "gst/net/net.h", cname = "GstPtpStatisticsCallback", instance_pos = 2.9)]
		public delegate bool PtpStatisticsCallback (uint8 domain, Gst.Structure stats);
		[CCode (cheader_filename = "gst/net/net.h", cname = "GST_PTP_CLOCK_ID_NONE")]
		public const uint64 PTP_CLOCK_ID_NONE;
		[CCode (cheader_filename = "gst/net/net.h", cname = "GST_PTP_STATISTICS_BEST_MASTER_CLOCK_SELECTED")]
		public const string PTP_STATISTICS_BEST_MASTER_CLOCK_SELECTED;
		[CCode (cheader_filename = "gst/net/net.h", cname = "GST_PTP_STATISTICS_NEW_DOMAIN_FOUND")]
		public const string PTP_STATISTICS_NEW_DOMAIN_FOUND;
		[CCode (cheader_filename = "gst/net/net.h", cname = "GST_PTP_STATISTICS_PATH_DELAY_MEASURED")]
		public const string PTP_STATISTICS_PATH_DELAY_MEASURED;
		[CCode (cheader_filename = "gst/net/net.h", cname = "GST_PTP_STATISTICS_TIME_UPDATED")]
		public const string PTP_STATISTICS_TIME_UPDATED;
		[CCode (cheader_filename = "gst/net/net.h")]
		public static GLib.Type address_meta_api_get_type ();
		[CCode (cheader_filename = "gst/net/net.h")]
		[Version (replacement = "NetAddressMeta.get_info")]
		public static unowned Gst.MetaInfo? address_meta_get_info ();
		[CCode (cheader_filename = "gst/net/net.h", cname = "gst_buffer_add_net_address_meta")]
		public static unowned Gst.Net.AddressMeta? buffer_add_net_address_meta (Gst.Buffer buffer, GLib.SocketAddress addr);
		[CCode (cheader_filename = "gst/net/net.h", cname = "gst_buffer_add_net_control_message_meta")]
		public static unowned Gst.Net.ControlMessageMeta? buffer_add_net_control_message_meta (Gst.Buffer buffer, GLib.SocketControlMessage message);
		[CCode (cheader_filename = "gst/net/net.h", cname = "gst_buffer_get_net_address_meta")]
		public static unowned Gst.Net.AddressMeta? buffer_get_net_address_meta (Gst.Buffer buffer);
		[CCode (cheader_filename = "gst/net/net.h")]
		public static GLib.Type control_message_meta_api_get_type ();
		[CCode (cheader_filename = "gst/net/net.h")]
		[Version (replacement = "NetControlMessageMeta.get_info")]
		public static unowned Gst.MetaInfo? control_message_meta_get_info ();
		[CCode (cheader_filename = "gst/net/net.h", cname = "gst_ptp_deinit")]
		[Version (since = "1.6")]
		public static void ptp_deinit ();
		[CCode (cheader_filename = "gst/net/net.h", cname = "gst_ptp_init")]
		[Version (since = "1.6")]
		public static bool ptp_init (uint64 clock_id, [CCode (array_length = false, array_null_terminated = true)] string[]? interfaces);
		[CCode (cheader_filename = "gst/net/net.h", cname = "gst_ptp_is_initialized")]
		[Version (since = "1.6")]
		public static bool ptp_is_initialized ();
		[CCode (cheader_filename = "gst/net/net.h", cname = "gst_ptp_is_supported")]
		[Version (since = "1.6")]
		public static bool ptp_is_supported ();
		[CCode (cheader_filename = "gst/net/net.h", cname = "gst_ptp_statistics_callback_add")]
		[Version (since = "1.6")]
		public static ulong ptp_statistics_callback_add (owned Gst.Net.PtpStatisticsCallback callback);
		[CCode (cheader_filename = "gst/net/net.h", cname = "gst_ptp_statistics_callback_remove")]
		[Version (since = "1.6")]
		public static void ptp_statistics_callback_remove (ulong id);
		[CCode (cheader_filename = "gst/net/net.h")]
		[Version (replacement = "NetTimePacket.receive")]
		public static Gst.Net.TimePacket time_packet_receive (GLib.Socket socket, out GLib.SocketAddress src_address) throws GLib.Error;
		[CCode (cheader_filename = "gst/net/net.h")]
		[Version (since = "1.18")]
		public static bool utils_set_socket_tos (GLib.Socket socket, int qos_dscp);
	}
}
