<?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.0"
            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="GLib" version="2.0"/>
  <include name="GModule" version="2.0"/>
  <include name="GObject" version="2.0"/>
  <include name="Gst" version="0.10"/>
  <include name="libxml2" version="2.0"/>
  <package name="gstreamer-0.10"/>
  <namespace name="GstNet"
             version="0.10"
             shared-library="libgstnet-0.10.so.0"
             c:prefix="Gst">
    <class name="NetClientClock"
           c:type="GstNetClientClock"
           doc="Opaque #GstNetClientClock structure."
           parent="Gst.SystemClock"
           glib:type-name="GstNetClientClock"
           glib:get-type="gst_net_client_clock_get_type"
           glib:type-struct="NetClientClockClass">
      <constructor name="new"
                   c:identifier="gst_net_client_clock_new"
                   doc="Create a new #GstNetClientClock that will report the time
provided by the #GstNetTimeProvider on @remote_address and
clock.">
        <return-value transfer-ownership="full">
          <type name="NetClientClock" c:type="GstClock*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="full">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="remote_address" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="remote_port" transfer-ownership="none">
            <type name="int" c:type="gint"/>
          </parameter>
          <parameter name="base_time" transfer-ownership="none">
            <type name="Gst.ClockTime" c:type="GstClockTime"/>
          </parameter>
        </parameters>
      </constructor>
      <property name="address" writable="1">
        <type name="utf8" c:type="gchararray"/>
      </property>
      <property name="port" writable="1">
        <type name="int" c:type="gint"/>
      </property>
      <field name="clock">
        <type name="Gst.SystemClock" c:type="GstSystemClock"/>
      </field>
      <field name="address">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="port">
        <type name="int" c:type="gint"/>
      </field>
      <field name="sock">
        <type name="int" c:type="int"/>
      </field>
      <field name="control_sock">
        <array zero-terminated="0" c:type="int" fixed-size="2">
          <type name="int"/>
        </array>
      </field>
      <field name="current_timeout">
        <type name="Gst.ClockTime" c:type="GstClockTime"/>
      </field>
      <field name="servaddr">
        <type name="any" c:type="any*"/>
      </field>
      <field name="thread">
        <type name="GLib.Thread" c:type="GThread*"/>
      </field>
      <field name="priv">
        <type name="NetClientClockPrivate" c:type="GstNetClientClockPrivate*"/>
      </field>
      <field name="_gst_reserved">
        <array zero-terminated="0" c:type="gpointer" fixed-size="3">
          <type name="any"/>
        </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">
        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
          <type name="any"/>
        </array>
      </field>
    </record>
    <record name="NetClientClockPrivate" c:type="GstNetClientClockPrivate">
    </record>
    <record name="NetTimePacket"
            c:type="GstNetTimePacket"
            doc="Content of a #GstNetTimePacket.">
      <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="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 (g_free to free).">
        <return-value transfer-ownership="full">
          <type name="NetTimePacket" c:type="GstNetTimePacket*"/>
        </return-value>
        <parameters>
          <parameter name="buffer" transfer-ownership="none">
            <array c:type="guint8*">
              <type name="uint8"/>
            </array>
          </parameter>
        </parameters>
      </constructor>
      <method name="serialize"
              c:identifier="gst_net_time_packet_serialize"
              doc="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).">
        <return-value transfer-ownership="full">
          <array c:type="guint8*">
            <type name="uint8"/>
          </array>
        </return-value>
      </method>
      <method name="send"
              c:identifier="gst_net_time_packet_send"
              doc="Sends a #GstNetTimePacket over a socket. Essentially a thin wrapper around
sendto(2) and gst_net_time_packet_serialize().
MT safe.">
        <return-value transfer-ownership="none">
          <type name="int" c:type="gint"/>
        </return-value>
        <parameters>
          <parameter name="fd" transfer-ownership="none">
            <type name="int" c:type="gint"/>
          </parameter>
          <parameter name="addr" transfer-ownership="none">
            <type name="any" c:type="any*"/>
          </parameter>
          <parameter name="len" transfer-ownership="none">
            <type name="int32" c:type="socklen_t"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <class name="NetTimeProvider"
           c:type="GstNetTimeProvider"
           doc="Opaque #GstNetTimeProvider structure."
           parent="Gst.Object"
           glib:type-name="GstNetTimeProvider"
           glib:get-type="gst_net_time_provider_get_type"
           glib:type-struct="NetTimeProviderClass">
      <constructor name="new"
                   c:identifier="gst_net_time_provider_new"
                   doc="Allows network clients to get the current time of @clock.">
        <return-value transfer-ownership="full">
          <type name="NetTimeProvider" c:type="GstNetTimeProvider*"/>
        </return-value>
        <parameters>
          <parameter name="clock" transfer-ownership="none">
            <type name="Gst.Clock" c:type="GstClock*"/>
          </parameter>
          <parameter name="address"
                     transfer-ownership="none"
                     doc="or NULL to bind to all addresses">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="port" transfer-ownership="none">
            <type name="int" c:type="gint"/>
          </parameter>
        </parameters>
      </constructor>
      <property name="active" writable="1">
        <type name="boolean" c:type="gboolean"/>
      </property>
      <property name="address" writable="1">
        <type name="utf8" c:type="gchararray"/>
      </property>
      <property name="clock" writable="1">
        <type name="Gst.Clock" c:type="GstClock"/>
      </property>
      <property name="port" writable="1">
        <type name="int" c:type="gint"/>
      </property>
      <field name="parent">
        <type name="Gst.Object" c:type="GstObject"/>
      </field>
      <field name="address">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="port">
        <type name="int" c:type="int"/>
      </field>
      <field name="sock">
        <type name="int" c:type="int"/>
      </field>
      <field name="control_sock">
        <array zero-terminated="0" c:type="int" fixed-size="2">
          <type name="int"/>
        </array>
      </field>
      <field name="thread">
        <type name="GLib.Thread" c:type="GThread*"/>
      </field>
      <field name="clock">
        <type name="Gst.Clock" c:type="GstClock*"/>
      </field>
      <union name="active" c:type="active">
        <field name="_gst_reserved1" writable="1">
          <type name="any" c:type="gpointer"/>
        </field>
        <field name="active" writable="1">
          <type name="int" c:type="gint"/>
        </field>
      </union>
      <field name="priv">
        <type name="NetTimeProviderPrivate"
              c:type="GstNetTimeProviderPrivate*"/>
      </field>
      <field name="_gst_reserved">
        <array zero-terminated="0" c:type="gpointer" fixed-size="2">
          <type name="any"/>
        </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>
    </record>
    <record name="NetTimeProviderPrivate" c:type="GstNetTimeProviderPrivate">
    </record>
    <constant name="TIME_PACKET_SIZE" value="16">
      <type name="int"/>
    </constant>
    <function name="time_packet_receive"
              c:identifier="gst_net_time_packet_receive"
              doc="Receives a #GstNetTimePacket over a socket. Handles interrupted system calls,
but otherwise returns NULL on error. See recvfrom(2) for more information on
how to interpret @sockaddr.
MT safe. Caller owns return value (g_free to free).">
      <return-value transfer-ownership="full">
        <type name="NetTimePacket" c:type="GstNetTimePacket*"/>
      </return-value>
      <parameters>
        <parameter name="fd" transfer-ownership="none">
          <type name="int" c:type="gint"/>
        </parameter>
        <parameter name="addr" transfer-ownership="none">
          <type name="any" c:type="any*"/>
        </parameter>
        <parameter name="len"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <type name="int32" c:type="socklen_t*"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
