<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="Gio" version="2.0"/>
  <include name="Gst" version="1.0"/>
  <package name="gstreamer-net-1.0"/>
  <c:include name="gst/net/net.h"/>
  <namespace name="GstNet"
             version="1.0"
             shared-library="libgstnet-1.0.so.1.0"
             c:identifier-prefixes="Gst"
             c:symbol-prefixes="gst">
    <constant name="NET_TIME_PACKET_SIZE"
              value="16"
              c:type="GST_NET_TIME_PACKET_SIZE">
      <doc xml:space="preserve">The size of the packets sent between network clocks.</doc>
      <type name="gint" c:type="gint"/>
    </constant>
    <record name="NetAddressMeta" c:type="GstNetAddressMeta">
      <doc xml:space="preserve">#GstNetAddress can be used to store a network address. #GstNetAddressMeta can
be used to store a network address in a #GstBuffer so that it network
elements can track the to and from address of the buffer.

Last reviewed on 2011-11-03 (0.11.2)</doc>
      <field name="meta" writable="1">
        <type name="Gst.Meta" c:type="GstMeta"/>
      </field>
      <field name="addr" writable="1">
        <type name="Gio.SocketAddress" c:type="GSocketAddress*"/>
      </field>
      <function name="get_info" c:identifier="gst_net_address_meta_get_info">
        <return-value transfer-ownership="none">
          <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/>
        </return-value>
      </function>
    </record>
    <class name="NetClientClock"
           c:symbol-prefix="net_client_clock"
           c:type="GstNetClientClock"
           parent="Gst.SystemClock"
           glib:type-name="GstNetClientClock"
           glib:get-type="gst_net_client_clock_get_type"
           glib:type-struct="NetClientClockClass">
      <doc xml:space="preserve">This object implements a custom #GstClock that synchronizes its time
to a remote time provider such as #GstNetTimeProvider.

A new clock is created with gst_net_client_clock_new() which takes the
address and port of the remote time provider along with a name and
an initial time.

This clock will poll the time provider and will update its calibration
parameters based on the local and remote observations.

Various parameters of the clock can be configured with the parent #GstClock
"timeout", "window-size" and "window-threshold" object properties.

A #GstNetClientClock is typically set on a #GstPipeline with 
gst_pipeline_use_clock().

Last reviewed on 2005-11-23 (0.9.5)</doc>
      <constructor name="new" c:identifier="gst_net_client_clock_new">
        <doc xml:space="preserve">Create a new #GstNetClientClock that will report the time
provided by the #GstNetTimeProvider on @remote_address and 
@remote_port.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a new #GstClock that receives a time from the remote clock.</doc>
          <type name="Gst.Clock" c:type="GstClock*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">a name for the clock</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="remote_address" transfer-ownership="none">
            <doc xml:space="preserve">the address of the remote clock provider</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="remote_port" transfer-ownership="none">
            <doc xml:space="preserve">the port of the remote clock provider</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="base_time" transfer-ownership="none">
            <doc xml:space="preserve">initial time of the clock</doc>
            <type name="Gst.ClockTime" c:type="GstClockTime"/>
          </parameter>
        </parameters>
      </constructor>
      <property name="address" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="port" writable="1" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <field name="clock">
        <type name="Gst.SystemClock" c:type="GstSystemClock"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="NetClientClockPrivate" c:type="GstNetClientClockPrivate*"/>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </class>
    <record name="NetClientClockClass"
            c:type="GstNetClientClockClass"
            glib:is-gtype-struct-for="NetClientClock">
      <field name="parent_class">
        <type name="Gst.SystemClockClass" c:type="GstSystemClockClass"/>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="NetClientClockPrivate"
            c:type="GstNetClientClockPrivate"
            disguised="1">
    </record>
    <record name="NetTimePacket"
            c:type="GstNetTimePacket"
            glib:type-name="GstNetTimePacket"
            glib:get-type="gst_net_time_packet_get_type"
            c:symbol-prefix="net_time_packet">
      <doc xml:space="preserve">Various functions for receiving, sending an serializing #GstNetTimePacket
structures.

Last reviewed on 2005-11-23 (0.9.5)</doc>
      <field name="local_time" writable="1">
        <type name="Gst.ClockTime" c:type="GstClockTime"/>
      </field>
      <field name="remote_time" writable="1">
        <type name="Gst.ClockTime" c:type="GstClockTime"/>
      </field>
      <constructor name="new" c:identifier="gst_net_time_packet_new">
        <doc xml:space="preserve">Creates a new #GstNetTimePacket from a buffer received over the network. The
caller is responsible for ensuring that @buffer is at least
#GST_NET_TIME_PACKET_SIZE bytes long.

If @buffer is #NULL, the local and remote times will be set to
#GST_CLOCK_TIME_NONE.

MT safe. Caller owns return value (gst_net_time_packet_free to free).</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The new #GstNetTimePacket.</doc>
          <type name="NetTimePacket" c:type="GstNetTimePacket*"/>
        </return-value>
        <parameters>
          <parameter name="buffer" transfer-ownership="none">
            <doc xml:space="preserve">a buffer from which to construct the packet, or NULL</doc>
            <array zero-terminated="0" c:type="guint8*">
              <type name="guint8" c:type="guint8"/>
            </array>
          </parameter>
        </parameters>
      </constructor>
      <method name="copy" c:identifier="gst_net_time_packet_copy">
        <doc xml:space="preserve">Make a copy of @packet.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a copy of @packet, free with gst_net_time_packet_free().</doc>
          <type name="NetTimePacket" c:type="GstNetTimePacket*"/>
        </return-value>
        <parameters>
          <instance-parameter name="packet" transfer-ownership="none">
            <doc xml:space="preserve">the #GstNetTimePacket</doc>
            <type name="NetTimePacket" c:type="const GstNetTimePacket*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="gst_net_time_packet_free">
        <doc xml:space="preserve">Free @packet.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="packet" transfer-ownership="none">
            <doc xml:space="preserve">the #GstNetTimePacket</doc>
            <type name="NetTimePacket" c:type="GstNetTimePacket*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="send" c:identifier="gst_net_time_packet_send" throws="1">
        <doc xml:space="preserve">Sends a #GstNetTimePacket over a socket.

MT safe.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE if successful, FALSE in case an error occured.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="packet" transfer-ownership="none">
            <doc xml:space="preserve">the #GstNetTimePacket to send</doc>
            <type name="NetTimePacket" c:type="const GstNetTimePacket*"/>
          </instance-parameter>
          <parameter name="socket" transfer-ownership="none">
            <doc xml:space="preserve">socket to send the time packet on</doc>
            <type name="Gio.Socket" c:type="GSocket*"/>
          </parameter>
          <parameter name="dest_address" transfer-ownership="none">
            <doc xml:space="preserve">address to send the time packet to</doc>
            <type name="Gio.SocketAddress" c:type="GSocketAddress*"/>
          </parameter>
        </parameters>
      </method>
      <method name="serialize" c:identifier="gst_net_time_packet_serialize">
        <doc xml:space="preserve">Serialized a #GstNetTimePacket into a newly-allocated sequence of
#GST_NET_TIME_PACKET_SIZE bytes, in network byte order. The value returned is
suitable for passing to write(2) or sendto(2) for communication over the
network.

MT safe. Caller owns return value (g_free to free).</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A newly allocated sequence of #GST_NET_TIME_PACKET_SIZE bytes.</doc>
          <type name="guint8" c:type="guint8*"/>
        </return-value>
        <parameters>
          <instance-parameter name="packet" transfer-ownership="none">
            <doc xml:space="preserve">the #GstNetTimePacket</doc>
            <type name="NetTimePacket" c:type="const GstNetTimePacket*"/>
          </instance-parameter>
        </parameters>
      </method>
      <function name="receive"
                c:identifier="gst_net_time_packet_receive"
                throws="1">
        <doc xml:space="preserve">Receives a #GstNetTimePacket over a socket. Handles interrupted system
calls, but otherwise returns NULL on error.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #GstNetTimePacket, or NULL on error. Free with gst_net_time_packet_free() when done.</doc>
          <type name="NetTimePacket" c:type="GstNetTimePacket*"/>
        </return-value>
        <parameters>
          <parameter name="socket" transfer-ownership="none">
            <doc xml:space="preserve">socket to receive the time packet on</doc>
            <type name="Gio.Socket" c:type="GSocket*"/>
          </parameter>
          <parameter name="src_address"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">address of variable to return sender address</doc>
            <type name="Gio.SocketAddress" c:type="GSocketAddress**"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <class name="NetTimeProvider"
           c:symbol-prefix="net_time_provider"
           c:type="GstNetTimeProvider"
           parent="Gst.Object"
           glib:type-name="GstNetTimeProvider"
           glib:get-type="gst_net_time_provider_get_type"
           glib:type-struct="NetTimeProviderClass">
      <doc xml:space="preserve">This object exposes the time of a #GstClock on the network.

A #GstNetTimeProvider is created with gst_net_time_provider_new() which
takes a #GstClock, an address and a port number as arguments.

After creating the object, a client clock such as #GstNetClientClock can
query the exposed clock over the network for its values.

The #GstNetTimeProvider typically wraps the clock used by a #GstPipeline.

Last reviewed on 2005-11-23 (0.9.5)</doc>
      <constructor name="new" c:identifier="gst_net_time_provider_new">
        <doc xml:space="preserve">Allows network clients to get the current time of @clock.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the new #GstNetTimeProvider, or NULL on error</doc>
          <type name="NetTimeProvider" c:type="GstNetTimeProvider*"/>
        </return-value>
        <parameters>
          <parameter name="clock" transfer-ownership="none">
            <doc xml:space="preserve">a #GstClock to export over the network</doc>
            <type name="Gst.Clock" c:type="GstClock*"/>
          </parameter>
          <parameter name="address" transfer-ownership="none" allow-none="1">
            <doc xml:space="preserve">an address to bind on as a dotted quad (xxx.xxx.xxx.xxx), IPv6 address, or NULL to bind to all addresses</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="port" transfer-ownership="none">
            <doc xml:space="preserve">a port to bind on, or 0 to let the kernel choose</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </constructor>
      <property name="active" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="address" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="clock" writable="1" transfer-ownership="none">
        <type name="Gst.Clock"/>
      </property>
      <property name="port" writable="1" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <field name="parent">
        <type name="Gst.Object" c:type="GstObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="NetTimeProviderPrivate"
              c:type="GstNetTimeProviderPrivate*"/>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </class>
    <record name="NetTimeProviderClass"
            c:type="GstNetTimeProviderClass"
            glib:is-gtype-struct-for="NetTimeProvider">
      <field name="parent_class">
        <type name="Gst.ObjectClass" c:type="GstObjectClass"/>
      </field>
      <field name="_gst_reserved">
        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="NetTimeProviderPrivate"
            c:type="GstNetTimeProviderPrivate"
            disguised="1">
    </record>
    <function name="buffer_add_net_address_meta"
              c:identifier="gst_buffer_add_net_address_meta"
              introspectable="0">
      <return-value>
        <type name="NetAddressMeta" c:type="GstNetAddressMeta*"/>
      </return-value>
      <parameters>
        <parameter name="buffer" transfer-ownership="none">
          <type name="Gst.Buffer" c:type="GstBuffer*"/>
        </parameter>
        <parameter name="addr" transfer-ownership="none">
          <type name="Gio.SocketAddress" c:type="GSocketAddress*"/>
        </parameter>
      </parameters>
    </function>
    <function name="net_address_meta_api_get_type"
              c:identifier="gst_net_address_meta_api_get_type">
      <return-value transfer-ownership="none">
        <type name="GType" c:type="GType"/>
      </return-value>
    </function>
    <function name="net_address_meta_get_info"
              c:identifier="gst_net_address_meta_get_info"
              moved-to="NetAddressMeta.get_info">
      <return-value transfer-ownership="none">
        <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/>
      </return-value>
    </function>
    <function name="net_time_packet_receive"
              c:identifier="gst_net_time_packet_receive"
              moved-to="NetTimePacket.receive"
              throws="1">
      <doc xml:space="preserve">Receives a #GstNetTimePacket over a socket. Handles interrupted system
calls, but otherwise returns NULL on error.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">a new #GstNetTimePacket, or NULL on error. Free with gst_net_time_packet_free() when done.</doc>
        <type name="NetTimePacket" c:type="GstNetTimePacket*"/>
      </return-value>
      <parameters>
        <parameter name="socket" transfer-ownership="none">
          <doc xml:space="preserve">socket to receive the time packet on</doc>
          <type name="Gio.Socket" c:type="GSocket*"/>
        </parameter>
        <parameter name="src_address"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve">address of variable to return sender address</doc>
          <type name="Gio.SocketAddress" c:type="GSocketAddress**"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
