<?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="Gst" version="0.10"/>
  <package name="gstreamer-check-0.10"/>
  <c:include name="gst/check/gstbufferstraw.h"/>
  <c:include name="gst/check/gstcheck.h"/>
  <c:include name="gst/check/gstconsistencychecker.h"/>
  <c:include name="gst/check/internal-check.h"/>
  <namespace name="GstCheck"
             version="0.10"
             shared-library="libgstreamer-0.10.so.3.0,libgstcheck-0.10.so.2.0"
             c:identifier-prefixes="Gst"
             c:symbol-prefixes="gst">
    <record name="CheckABIStruct" c:type="GstCheckABIStruct">
      <field name="name" writable="1">
        <type name="utf8" c:type="const char*"/>
      </field>
      <field name="size" writable="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="abi_size" writable="1">
        <type name="gint" c:type="int"/>
      </field>
    </record>
    <record name="StreamConsistency"
            c:type="GstStreamConsistency"
            disguised="1"
            version="0.10.24">
      <doc xml:space="preserve">Opaque consistency checker handle.</doc>
    </record>
    <function name="buffer_straw_get_buffer"
              c:identifier="gst_buffer_straw_get_buffer"
              introspectable="0">
      <doc xml:space="preserve">Get one buffer from @pad. Implemented via buffer probes. This function will
block until the pipeline passes a buffer over @pad, so for robust behavior
in unit tests, you need to use check's timeout to fail out in the case that a
buffer never arrives.

You must have previously called gst_buffer_straw_start_pipeline() on
@pipeline and @pad.</doc>
      <return-value>
        <doc xml:space="preserve">the captured #GstBuffer.</doc>
        <type name="Gst.Buffer" c:type="GstBuffer*"/>
      </return-value>
      <parameters>
        <parameter name="bin" transfer-ownership="none">
          <doc xml:space="preserve">the pipeline previously started via gst_buffer_straw_start_pipeline()</doc>
          <type name="Gst.Element" c:type="GstElement*"/>
        </parameter>
        <parameter name="pad" transfer-ownership="none">
          <doc xml:space="preserve">the pad previously passed to gst_buffer_straw_start_pipeline()</doc>
          <type name="Gst.Pad" c:type="GstPad*"/>
        </parameter>
      </parameters>
    </function>
    <function name="buffer_straw_start_pipeline"
              c:identifier="gst_buffer_straw_start_pipeline">
      <doc xml:space="preserve">Sets up a pipeline for buffer sucking. This will allow you to call
gst_buffer_straw_get_buffer() to access buffers as they pass over @pad.

This function is normally used in unit tests that want to verify that a
particular element is outputting correct buffers. For example, you would make
a pipeline via gst_parse_launch(), pull out the pad you want to monitor, then
call gst_buffer_straw_get_buffer() to get the buffers that pass through @pad.
The pipeline will block until you have sucked off the buffers.

This function will set the state of @bin to PLAYING; to clean up, be sure to
call gst_buffer_straw_stop_pipeline().

Note that you may not start two buffer straws at the same time. This function
is intended for unit tests, not general API use. In fact it calls fail_if
from libcheck, so you cannot use it outside unit tests.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="bin" transfer-ownership="none">
          <doc xml:space="preserve">the pipeline to run</doc>
          <type name="Gst.Element" c:type="GstElement*"/>
        </parameter>
        <parameter name="pad" transfer-ownership="none">
          <doc xml:space="preserve">a pad on an element in @bin</doc>
          <type name="Gst.Pad" c:type="GstPad*"/>
        </parameter>
      </parameters>
    </function>
    <function name="buffer_straw_stop_pipeline"
              c:identifier="gst_buffer_straw_stop_pipeline">
      <doc xml:space="preserve">Set @bin to #GST_STATE_NULL and release resource allocated in
gst_buffer_straw_start_pipeline().

You must have previously called gst_buffer_straw_start_pipeline() on
@pipeline and @pad.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="bin" transfer-ownership="none">
          <doc xml:space="preserve">the pipeline previously started via gst_buffer_straw_start_pipeline()</doc>
          <type name="Gst.Element" c:type="GstElement*"/>
        </parameter>
        <parameter name="pad" transfer-ownership="none">
          <doc xml:space="preserve">the pad previously passed to gst_buffer_straw_start_pipeline()</doc>
          <type name="Gst.Pad" c:type="GstPad*"/>
        </parameter>
      </parameters>
    </function>
    <function name="check_abi_list" c:identifier="gst_check_abi_list">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="list" transfer-ownership="none">
          <type name="CheckABIStruct" c:type="GstCheckABIStruct"/>
        </parameter>
        <parameter name="have_abi_sizes" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="check_caps_equal"
              c:identifier="gst_check_caps_equal"
              version="0.10.18">
      <doc xml:space="preserve">Compare two caps with gst_caps_is_equal and fail unless they are
equal.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="caps1" transfer-ownership="none">
          <doc xml:space="preserve">first caps to compare</doc>
          <type name="Gst.Caps" c:type="GstCaps*"/>
        </parameter>
        <parameter name="caps2" transfer-ownership="none">
          <doc xml:space="preserve">second caps to compare</doc>
          <type name="Gst.Caps" c:type="GstCaps*"/>
        </parameter>
      </parameters>
    </function>
    <function name="check_chain_func" c:identifier="gst_check_chain_func">
      <return-value transfer-ownership="none">
        <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
      </return-value>
      <parameters>
        <parameter name="pad" transfer-ownership="none">
          <type name="Gst.Pad" c:type="GstPad*"/>
        </parameter>
        <parameter name="buffer" transfer-ownership="none">
          <type name="Gst.Buffer" c:type="GstBuffer*"/>
        </parameter>
      </parameters>
    </function>
    <function name="check_drop_buffers"
              c:identifier="gst_check_drop_buffers"
              version="0.10.18">
      <doc xml:space="preserve">Unref and remove all buffers that are in the global @buffers GList,
emptying the list.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="check_element_push_buffer"
              c:identifier="gst_check_element_push_buffer"
              version="0.10.18">
      <doc xml:space="preserve">Create an @element with the factory with the name and push the
@buffer_in to this element. The element should create one buffer
and this will be compared with @buffer_out. We only check the caps
and the data of the buffers. This function unrefs the buffers.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="element_name" transfer-ownership="none">
          <doc xml:space="preserve">name of the element that needs to be created</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="buffer_in" transfer-ownership="none">
          <doc xml:space="preserve">push this buffer to the element</doc>
          <type name="Gst.Buffer" c:type="GstBuffer*"/>
        </parameter>
        <parameter name="buffer_out" transfer-ownership="none">
          <doc xml:space="preserve">compare the result with this buffer</doc>
          <type name="Gst.Buffer" c:type="GstBuffer*"/>
        </parameter>
      </parameters>
    </function>
    <function name="check_element_push_buffer_list"
              c:identifier="gst_check_element_push_buffer_list"
              version="0.10.18"
              introspectable="0">
      <doc xml:space="preserve">Create an @element with the factory with the name and push the buffers in
@buffer_in to this element. The element should create the buffers equal to
the buffers in @buffer_out. We only check the caps, size and the data of the
buffers. This function unrefs the buffers in the two lists.
The last_flow_return parameter indicates the expected flow return value from
pushing the final buffer in the list.
This can be used to set up a test which pushes some buffers and then an
invalid buffer, when the final buffer is expected to fail, for example.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="element_name" transfer-ownership="none">
          <doc xml:space="preserve">name of the element that needs to be created</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="buffer_in" transfer-ownership="none">
          <doc xml:space="preserve">a list of buffers that needs to be puched to the element</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </parameter>
        <parameter name="buffer_out" transfer-ownership="none">
          <doc xml:space="preserve">a list of buffers that we expect from the element</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </parameter>
        <parameter name="last_flow_return" transfer-ownership="none">
          <doc xml:space="preserve">the last buffer push needs to give this GstFlowReturn</doc>
          <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
        </parameter>
      </parameters>
    </function>
    <function name="check_init" c:identifier="gst_check_init">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="argc" transfer-ownership="none">
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="argv" transfer-ownership="none">
          <type name="utf8" c:type="char**"/>
        </parameter>
      </parameters>
    </function>
    <function name="check_message_error"
              c:identifier="gst_check_message_error">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="message" transfer-ownership="none">
          <type name="Gst.Message" c:type="GstMessage*"/>
        </parameter>
        <parameter name="type" transfer-ownership="none">
          <type name="Gst.MessageType" c:type="GstMessageType"/>
        </parameter>
        <parameter name="domain" transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </parameter>
        <parameter name="code" transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="check_run_suite"
              c:identifier="gst_check_run_suite"
              introspectable="0">
      <return-value transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="suite" transfer-ownership="none">
          <type c:type="Suite*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="fname" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="check_setup_element"
              c:identifier="gst_check_setup_element"
              introspectable="0">
      <return-value>
        <type name="Gst.Element" c:type="GstElement*"/>
      </return-value>
      <parameters>
        <parameter name="factory" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="check_setup_sink_pad"
              c:identifier="gst_check_setup_sink_pad"
              introspectable="0">
      <return-value>
        <type name="Gst.Pad" c:type="GstPad*"/>
      </return-value>
      <parameters>
        <parameter name="element" transfer-ownership="none">
          <type name="Gst.Element" c:type="GstElement*"/>
        </parameter>
        <parameter name="tmpl" transfer-ownership="none">
          <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/>
        </parameter>
        <parameter name="caps" transfer-ownership="none">
          <type name="Gst.Caps" c:type="GstCaps*"/>
        </parameter>
      </parameters>
    </function>
    <function name="check_setup_sink_pad_by_name"
              c:identifier="gst_check_setup_sink_pad_by_name"
              introspectable="0">
      <return-value>
        <type name="Gst.Pad" c:type="GstPad*"/>
      </return-value>
      <parameters>
        <parameter name="element" transfer-ownership="none">
          <type name="Gst.Element" c:type="GstElement*"/>
        </parameter>
        <parameter name="tmpl" transfer-ownership="none">
          <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="check_setup_src_pad"
              c:identifier="gst_check_setup_src_pad"
              introspectable="0">
      <return-value>
        <type name="Gst.Pad" c:type="GstPad*"/>
      </return-value>
      <parameters>
        <parameter name="element" transfer-ownership="none">
          <type name="Gst.Element" c:type="GstElement*"/>
        </parameter>
        <parameter name="tmpl" transfer-ownership="none">
          <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/>
        </parameter>
        <parameter name="caps" transfer-ownership="none">
          <type name="Gst.Caps" c:type="GstCaps*"/>
        </parameter>
      </parameters>
    </function>
    <function name="check_setup_src_pad_by_name"
              c:identifier="gst_check_setup_src_pad_by_name"
              introspectable="0">
      <return-value>
        <type name="Gst.Pad" c:type="GstPad*"/>
      </return-value>
      <parameters>
        <parameter name="element" transfer-ownership="none">
          <type name="Gst.Element" c:type="GstElement*"/>
        </parameter>
        <parameter name="tmpl" transfer-ownership="none">
          <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="check_teardown_element"
              c:identifier="gst_check_teardown_element">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="element" transfer-ownership="none">
          <type name="Gst.Element" c:type="GstElement*"/>
        </parameter>
      </parameters>
    </function>
    <function name="check_teardown_pad_by_name"
              c:identifier="gst_check_teardown_pad_by_name">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="element" transfer-ownership="none">
          <type name="Gst.Element" c:type="GstElement*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="check_teardown_sink_pad"
              c:identifier="gst_check_teardown_sink_pad">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="element" transfer-ownership="none">
          <type name="Gst.Element" c:type="GstElement*"/>
        </parameter>
      </parameters>
    </function>
    <function name="check_teardown_src_pad"
              c:identifier="gst_check_teardown_src_pad">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="element" transfer-ownership="none">
          <type name="Gst.Element" c:type="GstElement*"/>
        </parameter>
      </parameters>
    </function>
    <function name="consistency_checker_free"
              c:identifier="gst_consistency_checker_free"
              version="0.10.24">
      <doc xml:space="preserve">Frees the allocated data and probe associated with @consist.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="consist" transfer-ownership="none">
          <doc xml:space="preserve">The #GstStreamConsistency to free.</doc>
          <type name="StreamConsistency" c:type="GstStreamConsistency*"/>
        </parameter>
      </parameters>
    </function>
    <function name="consistency_checker_new"
              c:identifier="gst_consistency_checker_new"
              version="0.10.24"
              introspectable="0">
      <doc xml:space="preserve">Sets up a data probe on the given pad which will raise assertions if the
data flow is inconsistent.

Currently only works for source pads.</doc>
      <return-value>
        <doc xml:space="preserve">A #GstStreamConsistency structure used to track data flow.</doc>
        <type name="StreamConsistency" c:type="GstStreamConsistency*"/>
      </return-value>
      <parameters>
        <parameter name="pad" transfer-ownership="none">
          <doc xml:space="preserve">The #GstPad on which the dataflow will be checked.</doc>
          <type name="Gst.Pad" c:type="GstPad*"/>
        </parameter>
      </parameters>
    </function>
    <function name="consistency_checker_reset"
              c:identifier="gst_consistency_checker_reset"
              version="0.10.24">
      <doc xml:space="preserve">Reset the stream checker's internal variables.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="consist" transfer-ownership="none">
          <doc xml:space="preserve">The #GstStreamConsistency to reset.</doc>
          <type name="StreamConsistency" c:type="GstStreamConsistency*"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
