<?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="GLib" version="2.0"/>
  <include name="GModule" version="2.0"/>
  <include name="GObject" version="2.0"/>
  <include name="GstPbutils" version="1.0"/>
  <package name="gstvalidate-1.0"/>
  <namespace name="GstValidate"
             version="1.0"
             shared-library="libgstvalidate-1.0.so.0"
             c:identifier-prefixes="GstValidate"
             c:symbol-prefixes="gst_validate">
    <alias name="IssueId" c:type="GstValidateIssueId">
      <type name="guintptr" c:type="guintptr"/>
    </alias>
    <record name="Action"
            c:type="GstValidateAction"
            glib:type-name="GstValidateAction"
            glib:get-type="gst_validate_action_get_type"
            c:symbol-prefix="action">
      <doc xml:space="preserve">The GstValidateAction defined to be executed as part of a scenario

Only access it from the default main context.</doc>
      <field name="mini_object" writable="1">
        <type name="Gst.MiniObject" c:type="GstMiniObject"/>
      </field>
      <field name="type" writable="1">
        <doc xml:space="preserve">The type of the #GstValidateAction, which is the name of the
       GstValidateActionType registered with
       #gst_validate_register_action_type</doc>
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="name" writable="1">
        <doc xml:space="preserve">The name of the action, set from the user in the scenario</doc>
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="structure" writable="1">
        <doc xml:space="preserve">the #GstStructure defining the action</doc>
        <type name="Gst.Structure" c:type="GstStructure*"/>
      </field>
      <field name="action_number" readable="0" private="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="repeat" readable="0" private="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="playback_time" readable="0" private="1">
        <type name="Gst.ClockTime" c:type="GstClockTime"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="ActionPrivate" c:type="GstValidateActionPrivate*"/>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" c:type="gpointer" fixed-size="19">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <method name="get_scenario"
              c:identifier="gst_validate_action_get_scenario">
        <doc xml:space="preserve">Retrieve the scenario from which @action is executed.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The scenario from which the action is being executed.</doc>
          <type name="Scenario" c:type="GstValidateScenario*"/>
        </return-value>
        <parameters>
          <instance-parameter name="action" transfer-ownership="none">
            <doc xml:space="preserve">The action for which to retrieve the scenario</doc>
            <type name="Action" c:type="GstValidateAction*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_done" c:identifier="gst_validate_action_set_done">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="action" transfer-ownership="none">
            <type name="Action" c:type="GstValidateAction*"/>
          </instance-parameter>
        </parameters>
      </method>
      <function name="get_clocktime"
                c:identifier="gst_validate_action_get_clocktime">
        <doc xml:space="preserve">Get a time value for the @name parameter of an action. This
method should be called to retrieve and compute a timed value of a given
action. It will first try to retrieve the value as a double,
then get it as a string and execute any formula taking into account
the 'position' and 'duration' variables. And it will always convert that
value to a GstClockTime.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the time value could be retrieved/computed or %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="scenario" transfer-ownership="none">
            <doc xml:space="preserve">The #GstValidateScenario from which to get a time
           for a parameter of an action</doc>
            <type name="Scenario" c:type="GstValidateScenario*"/>
          </parameter>
          <parameter name="action" transfer-ownership="none">
            <doc xml:space="preserve">The action from which to retrieve the time for @name
         parameter.</doc>
            <type name="Action" c:type="GstValidateAction*"/>
          </parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">The name of the parameter for which to retrieve a time</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="retval"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">The return value for the wanted time</doc>
            <type name="Gst.ClockTime" c:type="GstClockTime*"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <record name="ActionParameter" c:type="GstValidateActionParameter">
      <field name="name" writable="1">
        <doc xml:space="preserve">The name of the parameter</doc>
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="description" writable="1">
        <doc xml:space="preserve">The description of the parameter</doc>
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="mandatory" writable="1">
        <doc xml:space="preserve">Whether the parameter is mandatory for
            a specific action type</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="types" writable="1">
        <doc xml:space="preserve">The types the parameter can take described as a
string. It can be precisely describing how the typing works
        using '\n' between the various acceptable types.</doc>
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="possible_variables" writable="1">
        <doc xml:space="preserve">The name of the variables that can be
                     used to compute the value of the parameter.
                     For example for the start value of a seek
                     action, we will accept to take 'duration'
                     which will be replace by the total duration
                     of the stream on which the action is executed.</doc>
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="def" writable="1">
        <doc xml:space="preserve">The default value of a parameter as a string, should be %NULL
      for mandatory streams.</doc>
        <type name="utf8" c:type="const gchar*"/>
      </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="ActionPrivate"
            c:type="GstValidateActionPrivate"
            disguised="1">
    </record>
    <enumeration name="ActionReturn" c:type="GstValidateActionReturn">
      <member name="error"
              value="0"
              c:identifier="GST_VALIDATE_EXECUTE_ACTION_ERROR">
      </member>
      <member name="ok"
              value="1"
              c:identifier="GST_VALIDATE_EXECUTE_ACTION_OK">
      </member>
      <member name="async"
              value="2"
              c:identifier="GST_VALIDATE_EXECUTE_ACTION_ASYNC">
      </member>
      <member name="interlaced"
              value="3"
              c:identifier="GST_VALIDATE_EXECUTE_ACTION_INTERLACED">
      </member>
      <member name="error_reported"
              value="4"
              c:identifier="GST_VALIDATE_EXECUTE_ACTION_ERROR_REPORTED">
      </member>
    </enumeration>
    <record name="ActionType"
            c:type="GstValidateActionType"
            glib:type-name="GstValidateActionType"
            glib:get-type="gst_validate_action_type_get_type"
            c:symbol-prefix="action_type">
      <field name="mini_object" writable="1">
        <type name="Gst.MiniObject" c:type="GstMiniObject"/>
      </field>
      <field name="name" writable="1">
        <doc xml:space="preserve">The name of the new action type to add</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="implementer_namespace" writable="1">
        <doc xml:space="preserve">The namespace of the implementer of the action type</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="prepare" writable="1">
        <type name="PrepareAction" c:type="GstValidatePrepareAction"/>
      </field>
      <field name="execute" writable="1">
        <doc xml:space="preserve">The function to be called to execute the action</doc>
        <type name="ExecuteAction" c:type="GstValidateExecuteAction"/>
      </field>
      <field name="parameters" writable="1">
        <doc xml:space="preserve">The #GstValidateActionParameter usable as parameter of the type</doc>
        <array c:type="GstValidateActionParameter*">
          <type name="ActionParameter"/>
        </array>
      </field>
      <field name="description" writable="1">
        <doc xml:space="preserve">A description of the new type</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="flags" writable="1">
        <doc xml:space="preserve">The flags of the action type</doc>
        <type name="ActionTypeFlags" c:type="GstValidateActionTypeFlags"/>
      </field>
      <field name="rank" writable="1">
        <type name="Gst.Rank" c:type="GstRank"/>
      </field>
      <field name="overriden_type" writable="1">
        <type name="ActionType" c:type="GstValidateActionType*"/>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" c:type="gpointer" fixed-size="19">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <bitfield name="ActionTypeFlags" c:type="GstValidateActionTypeFlags">
      <member name="none"
              value="0"
              c:identifier="GST_VALIDATE_ACTION_TYPE_NONE">
        <doc xml:space="preserve">No special flag</doc>
      </member>
      <member name="config"
              value="2"
              c:identifier="GST_VALIDATE_ACTION_TYPE_CONFIG">
        <doc xml:space="preserve">The action is a config</doc>
      </member>
      <member name="async"
              value="4"
              c:identifier="GST_VALIDATE_ACTION_TYPE_ASYNC">
        <doc xml:space="preserve">The action can be executed ASYNC</doc>
      </member>
      <member name="interlaced"
              value="8"
              c:identifier="GST_VALIDATE_ACTION_TYPE_INTERLACED">
        <doc xml:space="preserve">The action will be executed async
                                      but without blocking further actions
                                      to be executed</doc>
      </member>
      <member name="can_execute_on_addition"
              value="16"
              c:identifier="GST_VALIDATE_ACTION_TYPE_CAN_EXECUTE_ON_ADDITION">
        <doc xml:space="preserve">The action will be executed on 'element-added'
                                                for a particular element type if no playback-time
                                                is specified</doc>
      </member>
      <member name="needs_clock"
              value="32"
              c:identifier="GST_VALIDATE_ACTION_TYPE_NEEDS_CLOCK">
        <doc xml:space="preserve">The pipeline will need to be synchronized with the clock
                                       for that action type to be used.</doc>
      </member>
      <member name="no_execution_not_fatal"
              value="64"
              c:identifier="GST_VALIDATE_ACTION_TYPE_NO_EXECUTION_NOT_FATAL">
        <doc xml:space="preserve">Do not consider the non execution of the action
                                                  as a fatal error.</doc>
      </member>
      <member name="can_be_optional"
              value="128"
              c:identifier="GST_VALIDATE_ACTION_TYPE_CAN_BE_OPTIONAL">
        <doc xml:space="preserve">The action can use the 'optional' keyword. Such action
                                           instances will have the #GST_VALIDATE_ACTION_TYPE_NO_EXECUTION_NOT_FATAL
                                           flag set and won't be considered as fatal if they fail.</doc>
      </member>
      <member name="doesnt_need_pipeline"
              value="256"
              c:identifier="GST_VALIDATE_ACTION_TYPE_DOESNT_NEED_PIPELINE">
      </member>
      <member name="handled_in_config"
              value="512"
              c:identifier="GST_VALIDATE_ACTION_TYPE_HANDLED_IN_CONFIG">
        <doc xml:space="preserve">The action can be used in config files even if it is not strictly a config
                                             action (ie. it needs a scenario to run).</doc>
      </member>
    </bitfield>
    <class name="BinMonitor"
           c:symbol-prefix="bin_monitor"
           c:type="GstValidateBinMonitor"
           parent="ElementMonitor"
           glib:type-name="GstValidateBinMonitor"
           glib:get-type="gst_validate_bin_monitor_get_type"
           glib:type-struct="BinMonitorClass">
      <doc xml:space="preserve">GStreamer Validate BinMonitor class.

Class that wraps a #GstBin for Validate checks</doc>
      <implements name="Reporter"/>
      <constructor name="new" c:identifier="gst_validate_bin_monitor_new">
        <return-value transfer-ownership="none">
          <type name="BinMonitor" c:type="GstValidateBinMonitor*"/>
        </return-value>
        <parameters>
          <parameter name="bin" transfer-ownership="none">
            <doc xml:space="preserve">a #GstBin to run Validate on</doc>
            <type name="Gst.Bin" c:type="GstBin*"/>
          </parameter>
          <parameter name="runner" transfer-ownership="none">
            <type name="Runner" c:type="GstValidateRunner*"/>
          </parameter>
          <parameter name="parent" transfer-ownership="none">
            <type name="Monitor" c:type="GstValidateMonitor*"/>
          </parameter>
        </parameters>
      </constructor>
      <property name="handles-states" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent">
        <type name="ElementMonitor" c:type="GstValidateElementMonitor"/>
      </field>
      <field name="element_monitors">
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="scenario">
        <type name="Scenario" c:type="GstValidateScenario*"/>
      </field>
      <field name="element_added_id" readable="0" private="1">
        <type name="gulong" c:type="gulong"/>
      </field>
      <field name="element_removed_id" readable="0" private="1">
        <type name="gulong" c:type="gulong"/>
      </field>
      <field name="stateless" readable="0" private="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
    </class>
    <record name="BinMonitorClass"
            c:type="GstValidateBinMonitorClass"
            glib:is-gtype-struct-for="BinMonitor">
      <doc xml:space="preserve">GStreamer Validate BinMonitor object class.</doc>
      <field name="parent_class">
        <doc xml:space="preserve">parent</doc>
        <type name="ElementMonitorClass"
              c:type="GstValidateElementMonitorClass"/>
      </field>
    </record>
    <bitfield name="DebugFlags" c:type="GstValidateDebugFlags">
      <member name="fatal_default"
              value="0"
              c:identifier="GST_VALIDATE_FATAL_DEFAULT">
      </member>
      <member name="fatal_issues"
              value="1"
              c:identifier="GST_VALIDATE_FATAL_ISSUES">
      </member>
      <member name="fatal_warnings"
              value="2"
              c:identifier="GST_VALIDATE_FATAL_WARNINGS">
      </member>
      <member name="fatal_criticals"
              value="4"
              c:identifier="GST_VALIDATE_FATAL_CRITICALS">
      </member>
      <member name="print_issues"
              value="8"
              c:identifier="GST_VALIDATE_PRINT_ISSUES">
      </member>
      <member name="print_warnings"
              value="16"
              c:identifier="GST_VALIDATE_PRINT_WARNINGS">
      </member>
      <member name="print_criticals"
              value="32"
              c:identifier="GST_VALIDATE_PRINT_CRITICALS">
      </member>
    </bitfield>
    <class name="ElementMonitor"
           c:symbol-prefix="element_monitor"
           c:type="GstValidateElementMonitor"
           parent="Monitor"
           glib:type-name="GstValidateElementMonitor"
           glib:get-type="gst_validate_element_monitor_get_type"
           glib:type-struct="ElementMonitorClass">
      <doc xml:space="preserve">GStreamer Validate ElementMonitor class.

Class that wraps a #GstElement for Validate checks</doc>
      <implements name="Reporter"/>
      <constructor name="new" c:identifier="gst_validate_element_monitor_new">
        <return-value transfer-ownership="none">
          <type name="ElementMonitor" c:type="GstValidateElementMonitor*"/>
        </return-value>
        <parameters>
          <parameter name="element" transfer-ownership="none">
            <doc xml:space="preserve">a #GstElement to run Validate on</doc>
            <type name="Gst.Element" c:type="GstElement*"/>
          </parameter>
          <parameter name="runner" transfer-ownership="none">
            <type name="Runner" c:type="GstValidateRunner*"/>
          </parameter>
          <parameter name="parent" transfer-ownership="none">
            <type name="Monitor" c:type="GstValidateMonitor*"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="parent">
        <type name="Monitor" c:type="GstValidateMonitor"/>
      </field>
      <field name="pad_added_id" readable="0" private="1">
        <type name="gulong" c:type="gulong"/>
      </field>
      <field name="pad_monitors" readable="0" private="1">
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="is_decoder" readable="0" private="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="is_encoder" readable="0" private="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="is_demuxer" readable="0" private="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="is_converter" readable="0" private="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
    </class>
    <record name="ElementMonitorClass"
            c:type="GstValidateElementMonitorClass"
            glib:is-gtype-struct-for="ElementMonitor">
      <doc xml:space="preserve">GStreamer Validate ElementMonitor object class.</doc>
      <field name="parent_class">
        <doc xml:space="preserve">parent</doc>
        <type name="MonitorClass" c:type="GstValidateMonitorClass"/>
      </field>
    </record>
    <callback name="ExecuteAction" c:type="GstValidateExecuteAction">
      <doc xml:space="preserve">A function that executes a #GstValidateAction</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a #GstValidateExecuteActionReturn</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="scenario" transfer-ownership="none">
          <doc xml:space="preserve">The #GstValidateScenario from which the @action is executed</doc>
          <type name="Scenario" c:type="GstValidateScenario*"/>
        </parameter>
        <parameter name="action" transfer-ownership="none">
          <doc xml:space="preserve">The #GstValidateAction being executed</doc>
          <type name="Action" c:type="GstValidateAction*"/>
        </parameter>
      </parameters>
    </callback>
    <enumeration name="InterceptionReturn"
                 c:type="GstValidateInterceptionReturn">
      <member name="drop" value="0" c:identifier="GST_VALIDATE_REPORTER_DROP">
        <doc xml:space="preserve">The report will be completely ignored.</doc>
      </member>
      <member name="keep" value="1" c:identifier="GST_VALIDATE_REPORTER_KEEP">
        <doc xml:space="preserve">The report will be kept by the reporter,
                             but not reported to the runner.</doc>
      </member>
      <member name="report"
              value="2"
              c:identifier="GST_VALIDATE_REPORTER_REPORT">
        <doc xml:space="preserve">The report will be kept by the reporter
                               and reported to the runner.</doc>
      </member>
    </enumeration>
    <record name="Issue"
            c:type="GstValidateIssue"
            glib:type-name="GstValidateIssue"
            glib:get-type="gst_validate_issue_get_type"
            c:symbol-prefix="issue">
      <field name="issue_id" writable="1">
        <type name="IssueId" c:type="GstValidateIssueId"/>
      </field>
      <field name="summary" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="description" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="area" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="name" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="default_level" writable="1">
        <type name="ReportLevel" c:type="GstValidateReportLevel"/>
      </field>
      <field name="refcount" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="_gst_reserved" writable="1">
        <array zero-terminated="0" c:type="gpointer" fixed-size="4">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <constructor name="new" c:identifier="gst_validate_issue_new">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The newly created #GstValidateIssue</doc>
          <type name="Issue" c:type="GstValidateIssue*"/>
        </return-value>
        <parameters>
          <parameter name="issue_id" transfer-ownership="none">
            <doc xml:space="preserve">The ID of the issue, should be a GQuark</doc>
            <type name="IssueId" c:type="GstValidateIssueId"/>
          </parameter>
          <parameter name="summary" transfer-ownership="none">
            <doc xml:space="preserve">A summary of the issue</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="description" transfer-ownership="none">
            <doc xml:space="preserve">A more complete description of the issue</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="default_level" transfer-ownership="none">
            <doc xml:space="preserve">The level at which the issue will be reported by default</doc>
            <type name="ReportLevel" c:type="GstValidateReportLevel"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_id" c:identifier="gst_validate_issue_get_id">
        <return-value transfer-ownership="none">
          <type name="IssueId" c:type="GstValidateIssueId"/>
        </return-value>
        <parameters>
          <instance-parameter name="issue" transfer-ownership="none">
            <type name="Issue" c:type="GstValidateIssue*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="register" c:identifier="gst_validate_issue_register">
        <doc xml:space="preserve">Registers @issue in the issue type system</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="issue" transfer-ownership="none">
            <doc xml:space="preserve">The #GstValidateIssue to register</doc>
            <type name="Issue" c:type="GstValidateIssue*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_default_level"
              c:identifier="gst_validate_issue_set_default_level">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="issue" transfer-ownership="none">
            <type name="Issue" c:type="GstValidateIssue*"/>
          </instance-parameter>
          <parameter name="default_level" transfer-ownership="none">
            <type name="ReportLevel" c:type="GstValidateReportLevel"/>
          </parameter>
        </parameters>
      </method>
      <function name="from_id" c:identifier="gst_validate_issue_from_id">
        <return-value transfer-ownership="full">
          <type name="Issue" c:type="GstValidateIssue*"/>
        </return-value>
        <parameters>
          <parameter name="issue_id" transfer-ownership="none">
            <type name="IssueId" c:type="GstValidateIssueId"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <class name="MediaDescriptor"
           c:symbol-prefix="media_descriptor"
           c:type="GstValidateMediaDescriptor"
           parent="Gst.Object"
           abstract="1"
           glib:type-name="GstValidateMediaDescriptor"
           glib:get-type="gst_validate_media_descriptor_get_type"
           glib:type-struct="MediaDescriptorClass">
      <implements name="Reporter"/>
      <method name="_compare"
              c:identifier="gst_validate_media_descriptors_compare"
              moved-to="media_descriptors_compare">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="ref" transfer-ownership="none">
            <type name="MediaDescriptor" c:type="GstValidateMediaDescriptor*"/>
          </instance-parameter>
          <parameter name="compared" transfer-ownership="none">
            <type name="MediaDescriptor" c:type="GstValidateMediaDescriptor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="detects_frames"
              c:identifier="gst_validate_media_descriptor_detects_frames">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="MediaDescriptor" c:type="GstValidateMediaDescriptor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_buffers"
              c:identifier="gst_validate_media_descriptor_get_buffers"
              introspectable="0">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="MediaDescriptor" c:type="GstValidateMediaDescriptor*"/>
          </instance-parameter>
          <parameter name="pad" transfer-ownership="none">
            <type name="Gst.Pad" c:type="GstPad*"/>
          </parameter>
          <parameter name="compare_func" transfer-ownership="none">
            <type name="GLib.CompareFunc" c:type="GCompareFunc"/>
          </parameter>
          <parameter name="bufs" transfer-ownership="none">
            <type name="GLib.List" c:type="GList**">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_duration"
              c:identifier="gst_validate_media_descriptor_get_duration">
        <return-value transfer-ownership="none">
          <type name="Gst.ClockTime" c:type="GstClockTime"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="MediaDescriptor" c:type="GstValidateMediaDescriptor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pads"
              c:identifier="gst_validate_media_descriptor_get_pads"
              introspectable="0">
        <return-value>
          <type name="GLib.List" c:type="GList*">
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="MediaDescriptor" c:type="GstValidateMediaDescriptor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_seekable"
              c:identifier="gst_validate_media_descriptor_get_seekable">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="MediaDescriptor" c:type="GstValidateMediaDescriptor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_frame_info"
              c:identifier="gst_validate_media_descriptor_has_frame_info">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="MediaDescriptor" c:type="GstValidateMediaDescriptor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="validate-runner"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Runner"/>
      </property>
      <field name="parent">
        <type name="Gst.Object" c:type="GstObject"/>
      </field>
      <field name="filenode">
        <type name="MediaFileNode" c:type="GstValidateMediaFileNode*"/>
      </field>
      <field name="lock">
        <type name="GLib.Mutex" c:type="GMutex"/>
      </field>
      <field name="priv">
        <type name="MediaDescriptorPrivate"
              c:type="GstValidateMediaDescriptorPrivate*"/>
      </field>
    </class>
    <record name="MediaDescriptorClass"
            c:type="GstValidateMediaDescriptorClass"
            glib:is-gtype-struct-for="MediaDescriptor">
      <field name="parent">
        <type name="Gst.ObjectClass" c:type="GstObjectClass"/>
      </field>
    </record>
    <class name="MediaDescriptorParser"
           c:symbol-prefix="media_descriptor_parser"
           c:type="GstValidateMediaDescriptorParser"
           parent="MediaDescriptor"
           glib:type-name="GstValidateMediaDescriptorParser"
           glib:get-type="gst_validate_media_descriptor_parser_get_type"
           glib:type-struct="MediaDescriptorParserClass">
      <implements name="Reporter"/>
      <constructor name="new"
                   c:identifier="gst_validate_media_descriptor_parser_new"
                   throws="1">
        <return-value transfer-ownership="none">
          <type name="MediaDescriptorParser"
                c:type="GstValidateMediaDescriptorParser*"/>
        </return-value>
        <parameters>
          <parameter name="runner" transfer-ownership="none">
            <type name="Runner" c:type="GstValidateRunner*"/>
          </parameter>
          <parameter name="xmlpath" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_xml"
                   c:identifier="gst_validate_media_descriptor_parser_new_from_xml"
                   throws="1">
        <return-value transfer-ownership="none">
          <type name="MediaDescriptorParser"
                c:type="GstValidateMediaDescriptorParser*"/>
        </return-value>
        <parameters>
          <parameter name="runner" transfer-ownership="none">
            <type name="Runner" c:type="GstValidateRunner*"/>
          </parameter>
          <parameter name="xml" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add_stream"
              c:identifier="gst_validate_media_descriptor_parser_add_stream">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <type name="MediaDescriptorParser"
                  c:type="GstValidateMediaDescriptorParser*"/>
          </instance-parameter>
          <parameter name="pad" transfer-ownership="none">
            <type name="Gst.Pad" c:type="GstPad*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_taglist"
              c:identifier="gst_validate_media_descriptor_parser_add_taglist">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <type name="MediaDescriptorParser"
                  c:type="GstValidateMediaDescriptorParser*"/>
          </instance-parameter>
          <parameter name="taglist" transfer-ownership="none">
            <type name="Gst.TagList" c:type="GstTagList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="all_stream_found"
              c:identifier="gst_validate_media_descriptor_parser_all_stream_found">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <type name="MediaDescriptorParser"
                  c:type="GstValidateMediaDescriptorParser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="all_tags_found"
              c:identifier="gst_validate_media_descriptor_parser_all_tags_found">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <type name="MediaDescriptorParser"
                  c:type="GstValidateMediaDescriptorParser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_xml_path"
              c:identifier="gst_validate_media_descriptor_parser_get_xml_path">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="parser" transfer-ownership="none">
            <type name="MediaDescriptorParser"
                  c:type="GstValidateMediaDescriptorParser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="MediaDescriptor" c:type="GstValidateMediaDescriptor"/>
      </field>
      <field name="priv">
        <type name="MediaDescriptorParserPrivate"
              c:type="GstValidateMediaDescriptorParserPrivate*"/>
      </field>
    </class>
    <record name="MediaDescriptorParserClass"
            c:type="GstValidateMediaDescriptorParserClass"
            glib:is-gtype-struct-for="MediaDescriptorParser">
      <field name="parent">
        <type name="MediaDescriptorClass"
              c:type="GstValidateMediaDescriptorClass"/>
      </field>
    </record>
    <record name="MediaDescriptorParserPrivate"
            c:type="GstValidateMediaDescriptorParserPrivate"
            disguised="1">
    </record>
    <record name="MediaDescriptorPrivate"
            c:type="GstValidateMediaDescriptorPrivate"
            disguised="1">
    </record>
    <class name="MediaDescriptorWriter"
           c:symbol-prefix="media_descriptor_writer"
           c:type="GstValidateMediaDescriptorWriter"
           parent="MediaDescriptor"
           glib:type-name="GstValidateMediaDescriptorWriter"
           glib:get-type="gst_validate_media_descriptor_writer_get_type"
           glib:type-struct="MediaDescriptorWriterClass">
      <implements name="Reporter"/>
      <constructor name="new"
                   c:identifier="gst_validate_media_descriptor_writer_new">
        <return-value transfer-ownership="none">
          <type name="MediaDescriptorWriter"
                c:type="GstValidateMediaDescriptorWriter*"/>
        </return-value>
        <parameters>
          <parameter name="runner" transfer-ownership="none">
            <type name="Runner" c:type="GstValidateRunner*"/>
          </parameter>
          <parameter name="location" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="duration" transfer-ownership="none">
            <type name="Gst.ClockTime" c:type="GstClockTime"/>
          </parameter>
          <parameter name="seekable" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_discover"
                   c:identifier="gst_validate_media_descriptor_writer_new_discover"
                   throws="1">
        <return-value transfer-ownership="none">
          <type name="MediaDescriptorWriter"
                c:type="GstValidateMediaDescriptorWriter*"/>
        </return-value>
        <parameters>
          <parameter name="runner" transfer-ownership="none">
            <type name="Runner" c:type="GstValidateRunner*"/>
          </parameter>
          <parameter name="uri" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="full" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="handle_g_logs" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add_frame"
              c:identifier="gst_validate_media_descriptor_writer_add_frame">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="writer" transfer-ownership="none">
            <type name="MediaDescriptorWriter"
                  c:type="GstValidateMediaDescriptorWriter*"/>
          </instance-parameter>
          <parameter name="pad" transfer-ownership="none">
            <type name="Gst.Pad" c:type="GstPad*"/>
          </parameter>
          <parameter name="buf" transfer-ownership="none">
            <type name="Gst.Buffer" c:type="GstBuffer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_pad"
              c:identifier="gst_validate_media_descriptor_writer_add_pad">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="writer" transfer-ownership="none">
            <type name="MediaDescriptorWriter"
                  c:type="GstValidateMediaDescriptorWriter*"/>
          </instance-parameter>
          <parameter name="pad" transfer-ownership="none">
            <type name="Gst.Pad" c:type="GstPad*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_taglist"
              c:identifier="gst_validate_media_descriptor_writer_add_taglist">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="writer" transfer-ownership="none">
            <type name="MediaDescriptorWriter"
                  c:type="GstValidateMediaDescriptorWriter*"/>
          </instance-parameter>
          <parameter name="taglist" transfer-ownership="none">
            <type name="Gst.TagList" c:type="const GstTagList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_tags"
              c:identifier="gst_validate_media_descriptor_writer_add_tags">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="writer" transfer-ownership="none">
            <type name="MediaDescriptorWriter"
                  c:type="GstValidateMediaDescriptorWriter*"/>
          </instance-parameter>
          <parameter name="stream_id" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="taglist" transfer-ownership="none">
            <type name="Gst.TagList" c:type="const GstTagList*"/>
          </parameter>
        </parameters>
      </method>
      <method name="detects_frames"
              c:identifier="gst_validate_media_descriptor_writer_detects_frames">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="writer" transfer-ownership="none">
            <type name="MediaDescriptorWriter"
                  c:type="GstValidateMediaDescriptorWriter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_duration"
              c:identifier="gst_validate_media_descriptor_writer_get_duration">
        <return-value transfer-ownership="none">
          <type name="Gst.ClockTime" c:type="GstClockTime"/>
        </return-value>
        <parameters>
          <instance-parameter name="writer" transfer-ownership="none">
            <type name="MediaDescriptorWriter"
                  c:type="GstValidateMediaDescriptorWriter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_seekable"
              c:identifier="gst_validate_media_descriptor_writer_get_seekable">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="writer" transfer-ownership="none">
            <type name="MediaDescriptorWriter"
                  c:type="GstValidateMediaDescriptorWriter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_xml_path"
              c:identifier="gst_validate_media_descriptor_writer_get_xml_path">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="writer" transfer-ownership="none">
            <type name="MediaDescriptorWriter"
                  c:type="GstValidateMediaDescriptorWriter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="serialize"
              c:identifier="gst_validate_media_descriptor_writer_serialize">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="writer" transfer-ownership="none">
            <type name="MediaDescriptorWriter"
                  c:type="GstValidateMediaDescriptorWriter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="write"
              c:identifier="gst_validate_media_descriptor_writer_write">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="writer" transfer-ownership="none">
            <type name="MediaDescriptorWriter"
                  c:type="GstValidateMediaDescriptorWriter*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="MediaDescriptor" c:type="GstValidateMediaDescriptor"/>
      </field>
      <field name="priv">
        <type name="MediaDescriptorWriterPrivate"
              c:type="GstValidateMediaDescriptorWriterPrivate*"/>
      </field>
    </class>
    <record name="MediaDescriptorWriterClass"
            c:type="GstValidateMediaDescriptorWriterClass"
            glib:is-gtype-struct-for="MediaDescriptorWriter">
      <field name="parent">
        <type name="MediaDescriptorClass"
              c:type="GstValidateMediaDescriptorClass"/>
      </field>
    </record>
    <record name="MediaDescriptorWriterPrivate"
            c:type="GstValidateMediaDescriptorWriterPrivate"
            disguised="1">
    </record>
    <record name="MediaFileNode" c:type="GstValidateMediaFileNode">
      <field name="streams" writable="1">
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="tags" writable="1">
        <type name="MediaTagsNode" c:type="GstValidateMediaTagsNode*"/>
      </field>
      <field name="id" writable="1">
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="uri" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="duration" writable="1">
        <type name="Gst.ClockTime" c:type="GstClockTime"/>
      </field>
      <field name="frame_detection" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="seekable" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="caps" writable="1">
        <type name="Gst.Caps" c:type="GstCaps*"/>
      </field>
      <field name="str_open" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="str_close" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
    </record>
    <record name="MediaFrameNode" c:type="GstValidateMediaFrameNode">
      <field name="id" writable="1">
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="offset" writable="1">
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="offset_end" writable="1">
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="duration" writable="1">
        <type name="Gst.ClockTime" c:type="GstClockTime"/>
      </field>
      <field name="pts" writable="1">
        <type name="Gst.ClockTime" c:type="GstClockTime"/>
      </field>
      <field name="dts" writable="1">
        <type name="Gst.ClockTime" c:type="GstClockTime"/>
      </field>
      <field name="running_time" writable="1">
        <type name="Gst.ClockTime" c:type="GstClockTime"/>
      </field>
      <field name="is_keyframe" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="buf" writable="1">
        <type name="Gst.Buffer" c:type="GstBuffer*"/>
      </field>
      <field name="checksum" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="str_open" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="str_close" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
    </record>
    <record name="MediaInfo" c:type="GstValidateMediaInfo">
      <doc xml:space="preserve">GStreamer Validate MediaInfo struct.

Stores extracted information about a media</doc>
      <field name="duration" writable="1">
        <type name="Gst.ClockTime" c:type="GstClockTime"/>
      </field>
      <field name="is_image" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="file_size" writable="1">
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="seekable" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="playback_error" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="reverse_playback_error" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="track_switch_error" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="uri" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="discover_only" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="stream_info" writable="1">
        <type name="StreamInfo" c:type="GstValidateStreamInfo*"/>
      </field>
      <method name="clear" c:identifier="gst_validate_media_info_clear">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="mi" transfer-ownership="none">
            <type name="MediaInfo" c:type="GstValidateMediaInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="compare" c:identifier="gst_validate_media_info_compare">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="expected" transfer-ownership="none">
            <type name="MediaInfo" c:type="GstValidateMediaInfo*"/>
          </instance-parameter>
          <parameter name="extracted" transfer-ownership="none">
            <type name="MediaInfo" c:type="GstValidateMediaInfo*"/>
          </parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="gst_validate_media_info_free">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="mi" transfer-ownership="none">
            <type name="MediaInfo" c:type="GstValidateMediaInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="init" c:identifier="gst_validate_media_info_init">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="mi" transfer-ownership="none">
            <type name="MediaInfo" c:type="GstValidateMediaInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="inspect_uri"
              c:identifier="gst_validate_media_info_inspect_uri"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="mi" transfer-ownership="none">
            <type name="MediaInfo" c:type="GstValidateMediaInfo*"/>
          </instance-parameter>
          <parameter name="uri" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="discover_only" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="save"
              c:identifier="gst_validate_media_info_save"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="mi" transfer-ownership="none">
            <type name="MediaInfo" c:type="GstValidateMediaInfo*"/>
          </instance-parameter>
          <parameter name="path" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="to_string"
              c:identifier="gst_validate_media_info_to_string">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="mi" transfer-ownership="none">
            <type name="MediaInfo" c:type="GstValidateMediaInfo*"/>
          </instance-parameter>
          <parameter name="length" transfer-ownership="none">
            <type name="gsize" c:type="gsize*"/>
          </parameter>
        </parameters>
      </method>
      <function name="load"
                c:identifier="gst_validate_media_info_load"
                introspectable="0"
                throws="1">
        <return-value>
          <type name="MediaInfo" c:type="GstValidateMediaInfo*"/>
        </return-value>
        <parameters>
          <parameter name="path" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <record name="MediaStreamNode" c:type="GstValidateMediaStreamNode">
      <field name="frames" writable="1">
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="tags" writable="1">
        <type name="MediaTagsNode" c:type="GstValidateMediaTagsNode*"/>
      </field>
      <field name="caps" writable="1">
        <type name="Gst.Caps" c:type="GstCaps*"/>
      </field>
      <field name="segment" writable="1">
        <type name="Gst.Segment" c:type="GstSegment"/>
      </field>
      <field name="id" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="padname" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="pad" writable="1">
        <type name="Gst.Pad" c:type="GstPad*"/>
      </field>
      <field name="cframe" writable="1">
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="str_open" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="str_close" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
    </record>
    <record name="MediaTagNode" c:type="GstValidateMediaTagNode">
      <field name="taglist" writable="1">
        <type name="Gst.TagList" c:type="GstTagList*"/>
      </field>
      <field name="found" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="str_open" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="str_close" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
    </record>
    <record name="MediaTagsNode" c:type="GstValidateMediaTagsNode">
      <field name="tags" writable="1">
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="str_open" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="str_close" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
    </record>
    <class name="Monitor"
           c:symbol-prefix="monitor"
           c:type="GstValidateMonitor"
           parent="Gst.Object"
           abstract="1"
           glib:type-name="GstValidateMonitor"
           glib:get-type="gst_validate_monitor_get_type"
           glib:type-struct="MonitorClass">
      <doc xml:space="preserve">GStreamer Validate Monitor class.

Class that wraps a #GObject for Validate checks</doc>
      <implements name="Reporter"/>
      <function name="factory_create"
                c:identifier="gst_validate_monitor_factory_create">
        <doc xml:space="preserve">Create a new monitor for @target and starts monitoring it.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The newly created #GstValidateMonitor</doc>
          <type name="Monitor" c:type="GstValidateMonitor*"/>
        </return-value>
        <parameters>
          <parameter name="target" transfer-ownership="none">
            <doc xml:space="preserve">The #GstObject to create a #GstValidateMonitor for</doc>
            <type name="Gst.Object" c:type="GstObject*"/>
          </parameter>
          <parameter name="runner" transfer-ownership="none">
            <doc xml:space="preserve">The #GstValidateRunner to use for the new monitor</doc>
            <type name="Runner" c:type="GstValidateRunner*"/>
          </parameter>
          <parameter name="parent"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">The parent of the new monitor</doc>
            <type name="Monitor" c:type="GstValidateMonitor*"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="get_element" invoker="get_element">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The GstElement associated with @monitor</doc>
          <type name="Gst.Element" c:type="GstElement*"/>
        </return-value>
        <parameters>
          <instance-parameter name="monitor" transfer-ownership="none">
            <doc xml:space="preserve">The monitor</doc>
            <type name="Monitor" c:type="GstValidateMonitor*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_media_descriptor"
                      invoker="set_media_descriptor">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="monitor" transfer-ownership="none">
            <type name="Monitor" c:type="GstValidateMonitor*"/>
          </instance-parameter>
          <parameter name="media_descriptor" transfer-ownership="none">
            <type name="MediaDescriptor" c:type="GstValidateMediaDescriptor*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="setup">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="monitor" transfer-ownership="none">
            <type name="Monitor" c:type="GstValidateMonitor*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="attach_override"
              c:identifier="gst_validate_monitor_attach_override">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="monitor" transfer-ownership="none">
            <type name="Monitor" c:type="GstValidateMonitor*"/>
          </instance-parameter>
          <parameter name="override" transfer-ownership="none">
            <type name="Override" c:type="GstValidateOverride*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_element"
              c:identifier="gst_validate_monitor_get_element">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The GstElement associated with @monitor</doc>
          <type name="Gst.Element" c:type="GstElement*"/>
        </return-value>
        <parameters>
          <instance-parameter name="monitor" transfer-ownership="none">
            <doc xml:space="preserve">The monitor</doc>
            <type name="Monitor" c:type="GstValidateMonitor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_element_name"
              c:identifier="gst_validate_monitor_get_element_name">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="monitor" transfer-ownership="none">
            <type name="Monitor" c:type="GstValidateMonitor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pipeline"
              c:identifier="gst_validate_monitor_get_pipeline">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The pipeline in which @monitor
target is in.</doc>
          <type name="Gst.Pipeline" c:type="GstPipeline*"/>
        </return-value>
        <parameters>
          <instance-parameter name="monitor" transfer-ownership="none">
            <doc xml:space="preserve">The monitor to get the pipeline from</doc>
            <type name="Monitor" c:type="GstValidateMonitor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_target" c:identifier="gst_validate_monitor_get_target">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The target object</doc>
          <type name="Gst.Object" c:type="GstObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="monitor" transfer-ownership="none">
            <doc xml:space="preserve">The monitor to get the target from</doc>
            <type name="Monitor" c:type="GstValidateMonitor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_media_descriptor"
              c:identifier="gst_validate_monitor_set_media_descriptor">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="monitor" transfer-ownership="none">
            <type name="Monitor" c:type="GstValidateMonitor*"/>
          </instance-parameter>
          <parameter name="media_descriptor" transfer-ownership="none">
            <type name="MediaDescriptor" c:type="GstValidateMediaDescriptor*"/>
          </parameter>
        </parameters>
      </method>
      <property name="object"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="GObject.Object"/>
      </property>
      <property name="pipeline"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="Gst.Pipeline"/>
      </property>
      <property name="validate-parent"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Monitor"/>
      </property>
      <property name="validate-runner"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Runner"/>
      </property>
      <property name="verbosity"
                introspectable="0"
                writable="1"
                transfer-ownership="none">
        <type/>
      </property>
      <field name="object">
        <type name="Gst.Object" c:type="GstObject"/>
      </field>
      <field name="target">
        <type name="GObject.WeakRef" c:type="GWeakRef"/>
      </field>
      <field name="pipeline">
        <type name="GObject.WeakRef" c:type="GWeakRef"/>
      </field>
      <field name="mutex">
        <type name="GLib.Mutex" c:type="GMutex"/>
      </field>
      <field name="target_name">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="parent">
        <type name="Monitor" c:type="GstValidateMonitor*"/>
      </field>
      <field name="overrides_mutex">
        <type name="GLib.Mutex" c:type="GMutex"/>
      </field>
      <field name="overrides">
        <type name="GLib.Queue" c:type="GQueue"/>
      </field>
      <field name="media_descriptor">
        <type name="MediaDescriptor" c:type="GstValidateMediaDescriptor*"/>
      </field>
      <field name="level">
        <type name="ReportingDetails" c:type="GstValidateReportingDetails"/>
      </field>
      <field name="reports" readable="0" private="1">
        <type name="GLib.HashTable" c:type="GHashTable*">
          <type name="gpointer" c:type="gpointer"/>
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="verbosity" readable="0" private="1">
        <type name="VerbosityFlags" c:type="GstValidateVerbosityFlags"/>
      </field>
    </class>
    <record name="MonitorClass"
            c:type="GstValidateMonitorClass"
            glib:is-gtype-struct-for="Monitor">
      <doc xml:space="preserve">GStreamer Validate Monitor object class.</doc>
      <field name="parent_class">
        <doc xml:space="preserve">parent</doc>
        <type name="Gst.ObjectClass" c:type="GstObjectClass"/>
      </field>
      <field name="setup">
        <callback name="setup">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="monitor" transfer-ownership="none">
              <type name="Monitor" c:type="GstValidateMonitor*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_element">
        <callback name="get_element">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">The GstElement associated with @monitor</doc>
            <type name="Gst.Element" c:type="GstElement*"/>
          </return-value>
          <parameters>
            <parameter name="monitor" transfer-ownership="none">
              <doc xml:space="preserve">The monitor</doc>
              <type name="Monitor" c:type="GstValidateMonitor*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_media_descriptor">
        <callback name="set_media_descriptor">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="monitor" transfer-ownership="none">
              <type name="Monitor" c:type="GstValidateMonitor*"/>
            </parameter>
            <parameter name="media_descriptor" transfer-ownership="none">
              <type name="MediaDescriptor"
                    c:type="GstValidateMediaDescriptor*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="Override"
           c:symbol-prefix="override"
           c:type="GstValidateOverride"
           parent="Gst.Object"
           glib:type-name="GstValidateOverride"
           glib:get-type="gst_validate_override_get_type"
           glib:type-struct="OverrideClass">
      <implements name="Reporter"/>
      <constructor name="new" c:identifier="gst_validate_override_new">
        <return-value transfer-ownership="none">
          <type name="Override" c:type="GstValidateOverride*"/>
        </return-value>
      </constructor>
      <function name="register_by_klass"
                c:identifier="gst_validate_override_register_by_klass">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="klass" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="override" transfer-ownership="none">
            <type name="Override" c:type="GstValidateOverride*"/>
          </parameter>
        </parameters>
      </function>
      <function name="register_by_name"
                c:identifier="gst_validate_override_register_by_name">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="override" transfer-ownership="none">
            <type name="Override" c:type="GstValidateOverride*"/>
          </parameter>
        </parameters>
      </function>
      <function name="register_by_type"
                c:identifier="gst_validate_override_register_by_type">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="gtype" transfer-ownership="none">
            <type name="GType" c:type="GType"/>
          </parameter>
          <parameter name="override" transfer-ownership="none">
            <type name="Override" c:type="GstValidateOverride*"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="can_attach"
                      invoker="can_attach"
                      introspectable="0">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="override" transfer-ownership="none">
            <type name="Override" c:type="GstValidateOverride*"/>
          </instance-parameter>
          <parameter name="monitor" transfer-ownership="none">
            <type name="Monitor" c:type="GstValidateMonitor*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="buffer_handler"
              c:identifier="gst_validate_override_buffer_handler"
              introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="override" transfer-ownership="none">
            <type name="Override" c:type="GstValidateOverride*"/>
          </instance-parameter>
          <parameter name="monitor" transfer-ownership="none">
            <type name="Monitor" c:type="GstValidateMonitor*"/>
          </parameter>
          <parameter name="buffer" transfer-ownership="none">
            <type name="Gst.Buffer" c:type="GstBuffer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="buffer_probe_handler"
              c:identifier="gst_validate_override_buffer_probe_handler"
              introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="override" transfer-ownership="none">
            <type name="Override" c:type="GstValidateOverride*"/>
          </instance-parameter>
          <parameter name="monitor" transfer-ownership="none">
            <type name="Monitor" c:type="GstValidateMonitor*"/>
          </parameter>
          <parameter name="buffer" transfer-ownership="none">
            <type name="Gst.Buffer" c:type="GstBuffer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="can_attach"
              c:identifier="gst_validate_override_can_attach"
              introspectable="0">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="override" transfer-ownership="none">
            <type name="Override" c:type="GstValidateOverride*"/>
          </instance-parameter>
          <parameter name="monitor" transfer-ownership="none">
            <type name="Monitor" c:type="GstValidateMonitor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="change_severity"
              c:identifier="gst_validate_override_change_severity">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="override" transfer-ownership="none">
            <type name="Override" c:type="GstValidateOverride*"/>
          </instance-parameter>
          <parameter name="issue_id" transfer-ownership="none">
            <type name="IssueId" c:type="GstValidateIssueId"/>
          </parameter>
          <parameter name="new_level" transfer-ownership="none">
            <type name="ReportLevel" c:type="GstValidateReportLevel"/>
          </parameter>
        </parameters>
      </method>
      <method name="element_added_handler"
              c:identifier="gst_validate_override_element_added_handler"
              introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="override" transfer-ownership="none">
            <type name="Override" c:type="GstValidateOverride*"/>
          </instance-parameter>
          <parameter name="monitor" transfer-ownership="none">
            <type name="Monitor" c:type="GstValidateMonitor*"/>
          </parameter>
          <parameter name="child" transfer-ownership="none">
            <type name="Gst.Element" c:type="GstElement*"/>
          </parameter>
        </parameters>
      </method>
      <method name="event_handler"
              c:identifier="gst_validate_override_event_handler"
              introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="override" transfer-ownership="none">
            <type name="Override" c:type="GstValidateOverride*"/>
          </instance-parameter>
          <parameter name="monitor" transfer-ownership="none">
            <type name="Monitor" c:type="GstValidateMonitor*"/>
          </parameter>
          <parameter name="event" transfer-ownership="none">
            <type name="Gst.Event" c:type="GstEvent*"/>
          </parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="gst_validate_override_free">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="override" transfer-ownership="none">
            <type name="Override" c:type="GstValidateOverride*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_severity"
              c:identifier="gst_validate_override_get_severity">
        <return-value transfer-ownership="none">
          <type name="ReportLevel" c:type="GstValidateReportLevel"/>
        </return-value>
        <parameters>
          <instance-parameter name="override" transfer-ownership="none">
            <type name="Override" c:type="GstValidateOverride*"/>
          </instance-parameter>
          <parameter name="issue_id" transfer-ownership="none">
            <type name="IssueId" c:type="GstValidateIssueId"/>
          </parameter>
          <parameter name="default_level" transfer-ownership="none">
            <type name="ReportLevel" c:type="GstValidateReportLevel"/>
          </parameter>
        </parameters>
      </method>
      <method name="getcaps_handler"
              c:identifier="gst_validate_override_getcaps_handler"
              introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="override" transfer-ownership="none">
            <type name="Override" c:type="GstValidateOverride*"/>
          </instance-parameter>
          <parameter name="monitor" transfer-ownership="none">
            <type name="Monitor" c:type="GstValidateMonitor*"/>
          </parameter>
          <parameter name="caps" transfer-ownership="none">
            <type name="Gst.Caps" c:type="GstCaps*"/>
          </parameter>
        </parameters>
      </method>
      <method name="query_handler"
              c:identifier="gst_validate_override_query_handler"
              introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="override" transfer-ownership="none">
            <type name="Override" c:type="GstValidateOverride*"/>
          </instance-parameter>
          <parameter name="monitor" transfer-ownership="none">
            <type name="Monitor" c:type="GstValidateMonitor*"/>
          </parameter>
          <parameter name="query" transfer-ownership="none">
            <type name="Gst.Query" c:type="GstQuery*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_buffer_handler"
              c:identifier="gst_validate_override_set_buffer_handler"
              introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="override" transfer-ownership="none">
            <type name="Override" c:type="GstValidateOverride*"/>
          </instance-parameter>
          <parameter name="handler" transfer-ownership="none">
            <type name="OverrideBufferHandler"
                  c:type="GstValidateOverrideBufferHandler"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_buffer_probe_handler"
              c:identifier="gst_validate_override_set_buffer_probe_handler"
              introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="override" transfer-ownership="none">
            <type name="Override" c:type="GstValidateOverride*"/>
          </instance-parameter>
          <parameter name="handler" transfer-ownership="none">
            <type name="OverrideBufferHandler"
                  c:type="GstValidateOverrideBufferHandler"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_element_added_handler"
              c:identifier="gst_validate_override_set_element_added_handler"
              introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="override" transfer-ownership="none">
            <type name="Override" c:type="GstValidateOverride*"/>
          </instance-parameter>
          <parameter name="func" transfer-ownership="none">
            <type name="OverrideElementAddedHandler"
                  c:type="GstValidateOverrideElementAddedHandler"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_event_handler"
              c:identifier="gst_validate_override_set_event_handler"
              introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="override" transfer-ownership="none">
            <type name="Override" c:type="GstValidateOverride*"/>
          </instance-parameter>
          <parameter name="handler" transfer-ownership="none">
            <type name="OverrideEventHandler"
                  c:type="GstValidateOverrideEventHandler"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_getcaps_handler"
              c:identifier="gst_validate_override_set_getcaps_handler"
              introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="override" transfer-ownership="none">
            <type name="Override" c:type="GstValidateOverride*"/>
          </instance-parameter>
          <parameter name="handler" transfer-ownership="none">
            <type name="OverrideGetCapsHandler"
                  c:type="GstValidateOverrideGetCapsHandler"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_query_handler"
              c:identifier="gst_validate_override_set_query_handler"
              introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="override" transfer-ownership="none">
            <type name="Override" c:type="GstValidateOverride*"/>
          </instance-parameter>
          <parameter name="handler" transfer-ownership="none">
            <type name="OverrideQueryHandler"
                  c:type="GstValidateOverrideQueryHandler"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_setcaps_handler"
              c:identifier="gst_validate_override_set_setcaps_handler"
              introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="override" transfer-ownership="none">
            <type name="Override" c:type="GstValidateOverride*"/>
          </instance-parameter>
          <parameter name="handler" transfer-ownership="none">
            <type name="OverrideSetCapsHandler"
                  c:type="GstValidateOverrideSetCapsHandler"/>
          </parameter>
        </parameters>
      </method>
      <method name="setcaps_handler"
              c:identifier="gst_validate_override_setcaps_handler"
              introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="override" transfer-ownership="none">
            <type name="Override" c:type="GstValidateOverride*"/>
          </instance-parameter>
          <parameter name="monitor" transfer-ownership="none">
            <type name="Monitor" c:type="GstValidateMonitor*"/>
          </parameter>
          <parameter name="caps" transfer-ownership="none">
            <type name="Gst.Caps" c:type="GstCaps*"/>
          </parameter>
        </parameters>
      </method>
      <property name="validate-runner"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Runner"/>
      </property>
      <field name="parent">
        <type name="Gst.Object" c:type="GstObject"/>
      </field>
      <field name="buffer_handler">
        <type name="OverrideBufferHandler"
              c:type="GstValidateOverrideBufferHandler"/>
      </field>
      <field name="event_handler">
        <type name="OverrideEventHandler"
              c:type="GstValidateOverrideEventHandler"/>
      </field>
      <field name="query_handler">
        <type name="OverrideQueryHandler"
              c:type="GstValidateOverrideQueryHandler"/>
      </field>
      <field name="buffer_probe_handler">
        <type name="OverrideBufferHandler"
              c:type="GstValidateOverrideBufferHandler"/>
      </field>
      <field name="getcaps_handler">
        <type name="OverrideGetCapsHandler"
              c:type="GstValidateOverrideGetCapsHandler"/>
      </field>
      <field name="setcaps_handler">
        <type name="OverrideSetCapsHandler"
              c:type="GstValidateOverrideSetCapsHandler"/>
      </field>
      <field name="element_added_handler">
        <type name="OverrideElementAddedHandler"
              c:type="GstValidateOverrideElementAddedHandler"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="OverridePriv" c:type="GstValidateOverridePriv*"/>
      </field>
    </class>
    <callback name="OverrideBufferHandler"
              c:type="GstValidateOverrideBufferHandler">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="override" transfer-ownership="none">
          <type name="Override" c:type="GstValidateOverride*"/>
        </parameter>
        <parameter name="pad_monitor" transfer-ownership="none">
          <type name="Monitor" c:type="GstValidateMonitor*"/>
        </parameter>
        <parameter name="buffer" transfer-ownership="none">
          <type name="Gst.Buffer" c:type="GstBuffer*"/>
        </parameter>
      </parameters>
    </callback>
    <record name="OverrideClass"
            c:type="GstValidateOverrideClass"
            glib:is-gtype-struct-for="Override">
      <field name="parent_class" readable="0" private="1">
        <type name="Gst.ObjectClass" c:type="GstObjectClass"/>
      </field>
      <field name="can_attach">
        <callback name="can_attach">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="override" transfer-ownership="none">
              <type name="Override" c:type="GstValidateOverride*"/>
            </parameter>
            <parameter name="monitor" transfer-ownership="none">
              <type name="Monitor" c:type="GstValidateMonitor*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <callback name="OverrideElementAddedHandler"
              c:type="GstValidateOverrideElementAddedHandler">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="override" transfer-ownership="none">
          <type name="Override" c:type="GstValidateOverride*"/>
        </parameter>
        <parameter name="bin_monitor" transfer-ownership="none">
          <type name="Monitor" c:type="GstValidateMonitor*"/>
        </parameter>
        <parameter name="new_child" transfer-ownership="none">
          <type name="Gst.Element" c:type="GstElement*"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="OverrideEventHandler"
              c:type="GstValidateOverrideEventHandler">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="override" transfer-ownership="none">
          <type name="Override" c:type="GstValidateOverride*"/>
        </parameter>
        <parameter name="pad_monitor" transfer-ownership="none">
          <type name="Monitor" c:type="GstValidateMonitor*"/>
        </parameter>
        <parameter name="event" transfer-ownership="none">
          <type name="Gst.Event" c:type="GstEvent*"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="OverrideGetCapsHandler"
              c:type="GstValidateOverrideGetCapsHandler">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="override" transfer-ownership="none">
          <type name="Override" c:type="GstValidateOverride*"/>
        </parameter>
        <parameter name="pad_monitor" transfer-ownership="none">
          <type name="Monitor" c:type="GstValidateMonitor*"/>
        </parameter>
        <parameter name="caps" transfer-ownership="none">
          <type name="Gst.Caps" c:type="GstCaps*"/>
        </parameter>
      </parameters>
    </callback>
    <record name="OverridePriv" c:type="GstValidateOverridePriv" disguised="1">
    </record>
    <callback name="OverrideQueryHandler"
              c:type="GstValidateOverrideQueryHandler">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="override" transfer-ownership="none">
          <type name="Override" c:type="GstValidateOverride*"/>
        </parameter>
        <parameter name="pad_monitor" transfer-ownership="none">
          <type name="Monitor" c:type="GstValidateMonitor*"/>
        </parameter>
        <parameter name="query" transfer-ownership="none">
          <type name="Gst.Query" c:type="GstQuery*"/>
        </parameter>
      </parameters>
    </callback>
    <record name="OverrideRegistry" c:type="GstValidateOverrideRegistry">
      <field name="mutex" writable="1">
        <type name="GLib.Mutex" c:type="GMutex"/>
      </field>
      <field name="name_overrides" writable="1">
        <type name="GLib.Queue" c:type="GQueue"/>
      </field>
      <field name="gtype_overrides" writable="1">
        <type name="GLib.Queue" c:type="GQueue"/>
      </field>
      <field name="klass_overrides" writable="1">
        <type name="GLib.Queue" c:type="GQueue"/>
      </field>
      <method name="get_override_for_names"
              c:identifier="gst_validate_override_registry_get_override_for_names"
              introspectable="0">
        <return-value>
          <type name="GLib.List" c:type="GList*">
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="reg" transfer-ownership="none">
            <type name="OverrideRegistry"
                  c:type="GstValidateOverrideRegistry*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <function name="attach_overrides"
                c:identifier="gst_validate_override_registry_attach_overrides">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="monitor" transfer-ownership="none">
            <type name="Monitor" c:type="GstValidateMonitor*"/>
          </parameter>
        </parameters>
      </function>
      <function name="get"
                c:identifier="gst_validate_override_registry_get"
                introspectable="0">
        <return-value>
          <type name="OverrideRegistry" c:type="GstValidateOverrideRegistry*"/>
        </return-value>
      </function>
      <function name="preload"
                c:identifier="gst_validate_override_registry_preload">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
      </function>
    </record>
    <callback name="OverrideSetCapsHandler"
              c:type="GstValidateOverrideSetCapsHandler">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="override" transfer-ownership="none">
          <type name="Override" c:type="GstValidateOverride*"/>
        </parameter>
        <parameter name="pad_monitor" transfer-ownership="none">
          <type name="Monitor" c:type="GstValidateMonitor*"/>
        </parameter>
        <parameter name="caps" transfer-ownership="none">
          <type name="Gst.Caps" c:type="GstCaps*"/>
        </parameter>
      </parameters>
    </callback>
    <class name="PadMonitor"
           c:symbol-prefix="pad_monitor"
           c:type="GstValidatePadMonitor"
           parent="Monitor"
           glib:type-name="GstValidatePadMonitor"
           glib:get-type="gst_validate_pad_monitor_get_type"
           glib:type-struct="PadMonitorClass">
      <doc xml:space="preserve">GStreamer Validate PadMonitor class.

Class that wraps a #GstPad for Validate checks</doc>
      <implements name="Reporter"/>
      <constructor name="new" c:identifier="gst_validate_pad_monitor_new">
        <return-value transfer-ownership="none">
          <type name="PadMonitor" c:type="GstValidatePadMonitor*"/>
        </return-value>
        <parameters>
          <parameter name="pad" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPad to run Validate on</doc>
            <type name="Gst.Pad" c:type="GstPad*"/>
          </parameter>
          <parameter name="runner" transfer-ownership="none">
            <type name="Runner" c:type="GstValidateRunner*"/>
          </parameter>
          <parameter name="element_monitor" transfer-ownership="none">
            <type name="ElementMonitor" c:type="GstValidateElementMonitor*"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="parent">
        <type name="Monitor" c:type="GstValidateMonitor"/>
      </field>
      <field name="element_monitor">
        <type name="ElementMonitor" c:type="GstValidateElementMonitor*"/>
      </field>
      <field name="setup">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="chain_func">
        <type name="Gst.PadChainFunction" c:type="GstPadChainFunction"/>
      </field>
      <field name="event_func">
        <type name="Gst.PadEventFunction" c:type="GstPadEventFunction"/>
      </field>
      <field name="event_full_func">
        <type name="Gst.PadEventFullFunction"
              c:type="GstPadEventFullFunction"/>
      </field>
      <field name="getrange_func">
        <type name="Gst.PadGetRangeFunction" c:type="GstPadGetRangeFunction"/>
      </field>
      <field name="query_func">
        <type name="Gst.PadQueryFunction" c:type="GstPadQueryFunction"/>
      </field>
      <field name="activatemode_func">
        <type name="Gst.PadActivateModeFunction"
              c:type="GstPadActivateModeFunction"/>
      </field>
      <field name="pad_probe_id">
        <type name="gulong" c:type="gulong"/>
      </field>
      <field name="last_caps" readable="0" private="1">
        <type name="Gst.Caps" c:type="GstCaps*"/>
      </field>
      <field name="caps_is_audio" readable="0" private="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="caps_is_video" readable="0" private="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="caps_is_raw" readable="0" private="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="first_buffer" readable="0" private="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="has_segment" readable="0" private="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="is_eos" readable="0" private="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="pending_flush_stop" readable="0" private="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="pending_flush_stop_seqnum" readable="0" private="1">
        <type name="guint32" c:type="guint32"/>
      </field>
      <field name="pending_flush_start_seqnum" readable="0" private="1">
        <type name="guint32" c:type="guint32"/>
      </field>
      <field name="pending_newsegment_seqnum" readable="0" private="1">
        <type name="guint32" c:type="guint32"/>
      </field>
      <field name="pending_eos_seqnum" readable="0" private="1">
        <type name="guint32" c:type="guint32"/>
      </field>
      <field name="pending_buffer_discont" readable="0" private="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="pending_seek_accurate_time" readable="0" private="1">
        <type name="Gst.ClockTime" c:type="GstClockTime"/>
      </field>
      <field name="expected_segment" readable="0" private="1">
        <type name="Gst.Event" c:type="GstEvent*"/>
      </field>
      <field name="serialized_events" readable="0" private="1">
        <array name="GLib.PtrArray" c:type="GPtrArray*">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <field name="expired_events" readable="0" private="1">
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="pending_setcaps_fields" readable="0" private="1">
        <type name="Gst.Structure" c:type="GstStructure*"/>
      </field>
      <field name="last_refused_caps" readable="0" private="1">
        <type name="Gst.Caps" c:type="GstCaps*"/>
      </field>
      <field name="last_query_filter" readable="0" private="1">
        <type name="Gst.Caps" c:type="GstCaps*"/>
      </field>
      <field name="last_query_res" readable="0" private="1">
        <type name="Gst.Caps" c:type="GstCaps*"/>
      </field>
      <field name="segment" readable="0" private="1">
        <type name="Gst.Segment" c:type="GstSegment"/>
      </field>
      <field name="current_timestamp" readable="0" private="1">
        <type name="Gst.ClockTime" c:type="GstClockTime"/>
      </field>
      <field name="current_duration" readable="0" private="1">
        <type name="Gst.ClockTime" c:type="GstClockTime"/>
      </field>
      <field name="last_flow_return" readable="0" private="1">
        <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
      </field>
      <field name="timestamp_range_start" readable="0" private="1">
        <type name="Gst.ClockTime" c:type="GstClockTime"/>
      </field>
      <field name="timestamp_range_end" readable="0" private="1">
        <type name="Gst.ClockTime" c:type="GstClockTime"/>
      </field>
      <field name="all_bufs" readable="0" private="1">
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="current_buf" readable="0" private="1">
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="check_buffers" readable="0" private="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
    </class>
    <record name="PadMonitorClass"
            c:type="GstValidatePadMonitorClass"
            glib:is-gtype-struct-for="PadMonitor">
      <doc xml:space="preserve">GStreamer Validate PadMonitor object class.</doc>
      <field name="parent_class">
        <doc xml:space="preserve">parent</doc>
        <type name="MonitorClass" c:type="GstValidateMonitorClass"/>
      </field>
    </record>
    <callback name="ParseVariableFunc" c:type="GstValidateParseVariableFunc">
      <return-value transfer-ownership="none">
        <type name="gint" c:type="int"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="value" transfer-ownership="none">
          <type name="gdouble" c:type="double*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <class name="PipelineMonitor"
           c:symbol-prefix="pipeline_monitor"
           c:type="GstValidatePipelineMonitor"
           parent="BinMonitor"
           glib:type-name="GstValidatePipelineMonitor"
           glib:get-type="gst_validate_pipeline_monitor_get_type"
           glib:type-struct="PipelineMonitorClass">
      <doc xml:space="preserve">GStreamer Validate PipelineMonitor class.

Class that wraps a #GstPipeline for Validate checks</doc>
      <implements name="Reporter"/>
      <constructor name="new" c:identifier="gst_validate_pipeline_monitor_new">
        <return-value transfer-ownership="none">
          <type name="PipelineMonitor" c:type="GstValidatePipelineMonitor*"/>
        </return-value>
        <parameters>
          <parameter name="pipeline" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPipeline to run Validate on</doc>
            <type name="Gst.Pipeline" c:type="GstPipeline*"/>
          </parameter>
          <parameter name="runner" transfer-ownership="none">
            <type name="Runner" c:type="GstValidateRunner*"/>
          </parameter>
          <parameter name="parent" transfer-ownership="none">
            <type name="Monitor" c:type="GstValidateMonitor*"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="parent">
        <type name="BinMonitor" c:type="GstValidateBinMonitor"/>
      </field>
      <field name="element_added_id" readable="0" private="1">
        <type name="gulong" c:type="gulong"/>
      </field>
      <field name="print_pos_srcid" readable="0" private="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="buffering" readable="0" private="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="got_error" readable="0" private="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="is_playbin" readable="0" private="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="is_playbin3" readable="0" private="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="stream_collection" readable="0" private="1">
        <type name="Gst.StreamCollection" c:type="GstStreamCollection*"/>
      </field>
      <field name="streams_selected" readable="0" private="1">
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="deep_notify_id" readable="0" private="1">
        <type name="gulong" c:type="gulong"/>
      </field>
    </class>
    <record name="PipelineMonitorClass"
            c:type="GstValidatePipelineMonitorClass"
            glib:is-gtype-struct-for="PipelineMonitor">
      <doc xml:space="preserve">GStreamer Validate PipelineMonitor object class.</doc>
      <field name="parent_class">
        <doc xml:space="preserve">parent</doc>
        <type name="BinMonitorClass" c:type="GstValidateBinMonitorClass"/>
      </field>
    </record>
    <callback name="PrepareAction" c:type="GstValidatePrepareAction">
      <doc xml:space="preserve">A function that prepares @action so it can be executed right after.
Most of the time this function is used to parse and set fields with
equations in the action structure.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%TRUE if the action could be prepared and is ready to be run
         , %FALSE otherwise</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="action" transfer-ownership="none">
          <doc xml:space="preserve">The #GstValidateAction to prepare before execution</doc>
          <type name="Action" c:type="GstValidateAction*"/>
        </parameter>
      </parameters>
    </callback>
    <record name="Report"
            c:type="GstValidateReport"
            glib:type-name="GstValidateReport"
            glib:get-type="gst_validate_report_get_type"
            c:symbol-prefix="report">
      <field name="mini_object" writable="1">
        <type name="Gst.MiniObject" c:type="GstMiniObject"/>
      </field>
      <field name="issue" writable="1">
        <type name="Issue" c:type="GstValidateIssue*"/>
      </field>
      <field name="level" writable="1">
        <type name="ReportLevel" c:type="GstValidateReportLevel"/>
      </field>
      <field name="reporter" writable="1">
        <type name="Reporter" c:type="GstValidateReporter*"/>
      </field>
      <field name="timestamp" writable="1">
        <type name="Gst.ClockTime" c:type="GstClockTime"/>
      </field>
      <field name="message" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="shadow_reports_lock" writable="1">
        <type name="GLib.Mutex" c:type="GMutex"/>
      </field>
      <field name="master_report" writable="1">
        <type name="Report" c:type="GstValidateReport*"/>
      </field>
      <field name="shadow_reports" writable="1">
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="repeated_reports" writable="1">
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="reporting_level" writable="1">
        <type name="ReportingDetails" c:type="GstValidateReportingDetails"/>
      </field>
      <field name="reporter_name" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="trace" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="dotfile_name" writable="1">
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="_gst_reserved" writable="1">
        <array zero-terminated="0" c:type="gpointer" fixed-size="2">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <constructor name="new" c:identifier="gst_validate_report_new">
        <return-value transfer-ownership="full">
          <type name="Report" c:type="GstValidateReport*"/>
        </return-value>
        <parameters>
          <parameter name="issue" transfer-ownership="none">
            <type name="Issue" c:type="GstValidateIssue*"/>
          </parameter>
          <parameter name="reporter" transfer-ownership="none">
            <type name="Reporter" c:type="GstValidateReporter*"/>
          </parameter>
          <parameter name="message" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add_message"
              c:identifier="gst_validate_report_add_message">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="report" transfer-ownership="none">
            <type name="Report" c:type="GstValidateReport*"/>
          </instance-parameter>
          <parameter name="message" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_repeated_report"
              c:identifier="gst_validate_report_add_repeated_report">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="report" transfer-ownership="none">
            <type name="Report" c:type="GstValidateReport*"/>
          </instance-parameter>
          <parameter name="repeated_report" transfer-ownership="none">
            <type name="Report" c:type="GstValidateReport*"/>
          </parameter>
        </parameters>
      </method>
      <method name="check_abort"
              c:identifier="gst_validate_report_check_abort">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="report" transfer-ownership="none">
            <type name="Report" c:type="GstValidateReport*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_issue_id"
              c:identifier="gst_validate_report_get_issue_id">
        <return-value transfer-ownership="none">
          <type name="IssueId" c:type="GstValidateIssueId"/>
        </return-value>
        <parameters>
          <instance-parameter name="report" transfer-ownership="none">
            <type name="Report" c:type="GstValidateReport*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="print_description"
              c:identifier="gst_validate_report_print_description">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="report" transfer-ownership="none">
            <type name="Report" c:type="GstValidateReport*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="print_details"
              c:identifier="gst_validate_report_print_details">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="report" transfer-ownership="none">
            <type name="Report" c:type="GstValidateReport*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="print_detected_on"
              c:identifier="gst_validate_report_print_detected_on">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="report" transfer-ownership="none">
            <type name="Report" c:type="GstValidateReport*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="print_level"
              c:identifier="gst_validate_report_print_level">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="report" transfer-ownership="none">
            <type name="Report" c:type="GstValidateReport*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="printf" c:identifier="gst_validate_report_printf">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="report" transfer-ownership="none">
            <type name="Report" c:type="GstValidateReport*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="gst_validate_report_ref">
        <return-value transfer-ownership="full">
          <type name="Report" c:type="GstValidateReport*"/>
        </return-value>
        <parameters>
          <instance-parameter name="report" transfer-ownership="none">
            <type name="Report" c:type="GstValidateReport*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_master_report"
              c:identifier="gst_validate_report_set_master_report">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="report" transfer-ownership="none">
            <type name="Report" c:type="GstValidateReport*"/>
          </instance-parameter>
          <parameter name="master_report" transfer-ownership="none">
            <type name="Report" c:type="GstValidateReport*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_reporting_level"
              c:identifier="gst_validate_report_set_reporting_level">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="report" transfer-ownership="none">
            <type name="Report" c:type="GstValidateReport*"/>
          </instance-parameter>
          <parameter name="level" transfer-ownership="none">
            <type name="ReportingDetails"
                  c:type="GstValidateReportingDetails"/>
          </parameter>
        </parameters>
      </method>
      <method name="should_print"
              c:identifier="gst_validate_report_should_print">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="report" transfer-ownership="none">
            <type name="Report" c:type="GstValidateReport*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="gst_validate_report_unref">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="report" transfer-ownership="none">
            <type name="Report" c:type="GstValidateReport*"/>
          </instance-parameter>
        </parameters>
      </method>
      <function name="init" c:identifier="gst_validate_report_init">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </function>
      <function name="level_from_name"
                c:identifier="gst_validate_report_level_from_name">
        <return-value transfer-ownership="none">
          <type name="ReportLevel" c:type="GstValidateReportLevel"/>
        </return-value>
        <parameters>
          <parameter name="level_name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="level_get_name"
                c:identifier="gst_validate_report_level_get_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="level" transfer-ownership="none">
            <type name="ReportLevel" c:type="GstValidateReportLevel"/>
          </parameter>
        </parameters>
      </function>
      <function name="valist"
                c:identifier="gst_validate_report_valist"
                introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="reporter" transfer-ownership="none">
            <type name="Reporter" c:type="GstValidateReporter*"/>
          </parameter>
          <parameter name="issue_id" transfer-ownership="none">
            <type name="IssueId" c:type="GstValidateIssueId"/>
          </parameter>
          <parameter name="format" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="var_args" transfer-ownership="none">
            <type name="va_list" c:type="va_list"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <enumeration name="ReportLevel" c:type="GstValidateReportLevel">
      <member name="critical"
              value="0"
              c:identifier="GST_VALIDATE_REPORT_LEVEL_CRITICAL">
      </member>
      <member name="warning"
              value="1"
              c:identifier="GST_VALIDATE_REPORT_LEVEL_WARNING">
      </member>
      <member name="issue"
              value="2"
              c:identifier="GST_VALIDATE_REPORT_LEVEL_ISSUE">
      </member>
      <member name="ignore"
              value="3"
              c:identifier="GST_VALIDATE_REPORT_LEVEL_IGNORE">
      </member>
      <member name="unknown"
              value="4"
              c:identifier="GST_VALIDATE_REPORT_LEVEL_UNKNOWN">
      </member>
      <member name="num_entries"
              value="5"
              c:identifier="GST_VALIDATE_REPORT_LEVEL_NUM_ENTRIES">
      </member>
    </enumeration>
    <interface name="Reporter"
               c:symbol-prefix="reporter"
               c:type="GstValidateReporter"
               glib:type-name="GstValidateReporter"
               glib:get-type="gst_validate_reporter_get_type"
               glib:type-struct="ReporterInterface">
      <virtual-method name="get_pipeline" invoker="get_pipeline">
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">The #GstPipeline</doc>
          <type name="Gst.Pipeline" c:type="GstPipeline*"/>
        </return-value>
        <parameters>
          <instance-parameter name="reporter" transfer-ownership="none">
            <doc xml:space="preserve">The reporter to get the pipeline from</doc>
            <type name="Reporter" c:type="GstValidateReporter*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_reporting_level" invoker="get_reporting_level">
        <return-value transfer-ownership="none">
          <type name="ReportingDetails" c:type="GstValidateReportingDetails"/>
        </return-value>
        <parameters>
          <instance-parameter name="reporter" transfer-ownership="none">
            <type name="Reporter" c:type="GstValidateReporter*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="intercept_report">
        <return-value transfer-ownership="none">
          <type name="InterceptionReturn"
                c:type="GstValidateInterceptionReturn"/>
        </return-value>
        <parameters>
          <instance-parameter name="reporter" transfer-ownership="none">
            <type name="Reporter" c:type="GstValidateReporter*"/>
          </instance-parameter>
          <parameter name="report" transfer-ownership="none">
            <type name="Report" c:type="GstValidateReport*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_name" c:identifier="gst_validate_reporter_get_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="reporter" transfer-ownership="none">
            <type name="Reporter" c:type="GstValidateReporter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pipeline"
              c:identifier="gst_validate_reporter_get_pipeline">
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">The #GstPipeline</doc>
          <type name="Gst.Pipeline" c:type="GstPipeline*"/>
        </return-value>
        <parameters>
          <instance-parameter name="reporter" transfer-ownership="none">
            <doc xml:space="preserve">The reporter to get the pipeline from</doc>
            <type name="Reporter" c:type="GstValidateReporter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_report"
              c:identifier="gst_validate_reporter_get_report">
        <return-value transfer-ownership="full">
          <type name="Report" c:type="GstValidateReport*"/>
        </return-value>
        <parameters>
          <instance-parameter name="reporter" transfer-ownership="none">
            <type name="Reporter" c:type="GstValidateReporter*"/>
          </instance-parameter>
          <parameter name="issue_id" transfer-ownership="none">
            <type name="IssueId" c:type="GstValidateIssueId"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_reporting_level"
              c:identifier="gst_validate_reporter_get_reporting_level">
        <return-value transfer-ownership="none">
          <type name="ReportingDetails" c:type="GstValidateReportingDetails"/>
        </return-value>
        <parameters>
          <instance-parameter name="reporter" transfer-ownership="none">
            <type name="Reporter" c:type="GstValidateReporter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_reports"
              c:identifier="gst_validate_reporter_get_reports">
        <doc xml:space="preserve">Get the list of reports present in the reporter.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the list of
#GstValidateReport present in the reporter.
The caller should unref each report once it is done with them.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Report"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="reporter" transfer-ownership="none">
            <doc xml:space="preserve">a #GstValidateReporter</doc>
            <type name="Reporter" c:type="GstValidateReporter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_reports_count"
              c:identifier="gst_validate_reporter_get_reports_count">
        <doc xml:space="preserve">Get the number of reports present in the reporter.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of reports currently present in @reporter.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="reporter" transfer-ownership="none">
            <doc xml:space="preserve">a #GstValidateReporter</doc>
            <type name="Reporter" c:type="GstValidateReporter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_runner"
              c:identifier="gst_validate_reporter_get_runner">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The runner</doc>
          <type name="Runner" c:type="GstValidateRunner*"/>
        </return-value>
        <parameters>
          <instance-parameter name="reporter" transfer-ownership="none">
            <doc xml:space="preserve">The reporter to get the runner from</doc>
            <type name="Reporter" c:type="GstValidateReporter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="init" c:identifier="gst_validate_reporter_init">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="reporter" transfer-ownership="none">
            <type name="Reporter" c:type="GstValidateReporter*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="purge_reports"
              c:identifier="gst_validate_reporter_purge_reports">
        <doc xml:space="preserve">Remove all the #GstValidateReport from @reporter. This should be called
before unreffing the reporter to break cyclic references.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="reporter" transfer-ownership="none">
            <doc xml:space="preserve">a #GstValidateReporter</doc>
            <type name="Reporter" c:type="GstValidateReporter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="report_simple"
              c:identifier="gst_validate_reporter_report_simple">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="reporter" transfer-ownership="none">
            <type name="Reporter" c:type="GstValidateReporter*"/>
          </instance-parameter>
          <parameter name="issue_id" transfer-ownership="none">
            <type name="IssueId" c:type="GstValidateIssueId"/>
          </parameter>
          <parameter name="message" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_handle_g_logs"
              c:identifier="gst_validate_reporter_set_handle_g_logs">
        <doc xml:space="preserve">Set @reporter has the 'source' of any g_log happening during the
execution. Usually the monitor of the first #GstPipeline is used
to handle g_logs.

Basically this function is used in order to start tracking any
issue reported with g_log in the process into GstValidate report
in the GstValidate reporting system.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="reporter" transfer-ownership="none">
            <doc xml:space="preserve">The #GstValidateReporter to set has the handler for g_log</doc>
            <type name="Reporter" c:type="GstValidateReporter*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_name" c:identifier="gst_validate_reporter_set_name">
        <doc xml:space="preserve">Sets @ name on @reporter</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="reporter" transfer-ownership="none">
            <doc xml:space="preserve">The reporter to set the name on</doc>
            <type name="Reporter" c:type="GstValidateReporter*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="full">
            <doc xml:space="preserve">The name of the reporter</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_runner"
              c:identifier="gst_validate_reporter_set_runner">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="reporter" transfer-ownership="none">
            <type name="Reporter" c:type="GstValidateReporter*"/>
          </instance-parameter>
          <parameter name="runner" transfer-ownership="none">
            <type name="Runner" c:type="GstValidateRunner*"/>
          </parameter>
        </parameters>
      </method>
      <property name="validate-runner"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Runner"/>
      </property>
    </interface>
    <record name="ReporterInterface"
            c:type="GstValidateReporterInterface"
            glib:is-gtype-struct-for="Reporter">
      <field name="parent">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="intercept_report">
        <callback name="intercept_report">
          <return-value transfer-ownership="none">
            <type name="InterceptionReturn"
                  c:type="GstValidateInterceptionReturn"/>
          </return-value>
          <parameters>
            <parameter name="reporter" transfer-ownership="none">
              <type name="Reporter" c:type="GstValidateReporter*"/>
            </parameter>
            <parameter name="report" transfer-ownership="none">
              <type name="Report" c:type="GstValidateReport*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_reporting_level">
        <callback name="get_reporting_level">
          <return-value transfer-ownership="none">
            <type name="ReportingDetails"
                  c:type="GstValidateReportingDetails"/>
          </return-value>
          <parameters>
            <parameter name="reporter" transfer-ownership="none">
              <type name="Reporter" c:type="GstValidateReporter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_pipeline">
        <callback name="get_pipeline">
          <return-value transfer-ownership="full" nullable="1">
            <doc xml:space="preserve">The #GstPipeline</doc>
            <type name="Gst.Pipeline" c:type="GstPipeline*"/>
          </return-value>
          <parameters>
            <parameter name="reporter" transfer-ownership="none">
              <doc xml:space="preserve">The reporter to get the pipeline from</doc>
              <type name="Reporter" c:type="GstValidateReporter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="ReportingDetails" c:type="GstValidateReportingDetails">
      <doc xml:space="preserve">Setting the reporting level allows to control the way issues are reported
when calling #gst_validate_runner_printf.

The reporting level can be set through the "GST_VALIDATE_REPORTING_DETAILS"
environment variable, as  a comma-separated list of (optional) object categories / names
and levels. No object category / name sets the global level.

Examples: GST_VALIDATE_REPORTING_DETAILS=synthetic,h264parse:all
          GST_VALIDATE_REPORTING_DETAILS=none,h264parse::sink_0:synthetic</doc>
      <member name="unknown"
              value="0"
              c:identifier="GST_VALIDATE_SHOW_UNKNOWN">
        <doc xml:space="preserve">No reporting level known,
reporting will default to the global reporting level.</doc>
      </member>
      <member name="none" value="1" c:identifier="GST_VALIDATE_SHOW_NONE">
        <doc xml:space="preserve">No debugging level specified or desired. Used to deactivate
 debugging output.</doc>
      </member>
      <member name="synthetic"
              value="2"
              c:identifier="GST_VALIDATE_SHOW_SYNTHETIC">
        <doc xml:space="preserve">Summary of the issues found, with no
 details.</doc>
      </member>
      <member name="subchain"
              value="3"
              c:identifier="GST_VALIDATE_SHOW_SUBCHAIN">
        <doc xml:space="preserve">If set as the default level, similar
 issues can be reported multiple times for different subchains.
 If set as the level for a particular object (my_object:subchain), validate
 will report the issues where the object is the first to report an issue for
 a subchain.</doc>
      </member>
      <member name="monitor"
              value="4"
              c:identifier="GST_VALIDATE_SHOW_MONITOR">
        <doc xml:space="preserve">If set as the default level, all the
distinct issues for all the monitors will be reported.
If set as the level for a particular object, all the distinct issues for this object
will be reported.
Note that if the same issue happens twice on the same object, up until this
level that issue is only reported once.</doc>
      </member>
      <member name="all" value="5" c:identifier="GST_VALIDATE_SHOW_ALL">
        <doc xml:space="preserve">All the issues will be reported, even those
that repeat themselves inside the same object. This can be *very* verbose if
set globally.</doc>
      </member>
      <member name="smart" value="6" c:identifier="GST_VALIDATE_SHOW_SMART">
        <doc xml:space="preserve">Sythetic for not fatal issues and detailed for
others</doc>
      </member>
      <member name="count" value="7" c:identifier="GST_VALIDATE_SHOW_COUNT">
      </member>
    </enumeration>
    <class name="Runner"
           c:symbol-prefix="runner"
           c:type="GstValidateRunner"
           parent="Gst.Tracer"
           glib:type-name="GstValidateRunner"
           glib:get-type="gst_validate_runner_get_type"
           glib:type-struct="RunnerClass">
      <doc xml:space="preserve">GStreamer Validate Runner class.

Class that manages a Validate test run for some pipeline</doc>
      <constructor name="new" c:identifier="gst_validate_runner_new">
        <doc xml:space="preserve">Create a new #GstValidateRunner</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A newly created #GstValidateRunner</doc>
          <type name="Runner" c:type="GstValidateRunner*"/>
        </return-value>
      </constructor>
      <method name="add_report" c:identifier="gst_validate_runner_add_report">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="runner" transfer-ownership="none">
            <type name="Runner" c:type="GstValidateRunner*"/>
          </instance-parameter>
          <parameter name="report" transfer-ownership="none">
            <type name="Report" c:type="GstValidateReport*"/>
          </parameter>
        </parameters>
      </method>
      <method name="exit" c:identifier="gst_validate_runner_exit">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="runner" transfer-ownership="none">
            <type name="Runner" c:type="GstValidateRunner*"/>
          </instance-parameter>
          <parameter name="print_result" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_default_reporting_level"
              c:identifier="gst_validate_runner_get_default_reporting_level">
        <return-value transfer-ownership="none">
          <type name="ReportingDetails" c:type="GstValidateReportingDetails"/>
        </return-value>
        <parameters>
          <instance-parameter name="runner" transfer-ownership="none">
            <type name="Runner" c:type="GstValidateRunner*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_reporting_level_for_name"
              c:identifier="gst_validate_runner_get_reporting_level_for_name">
        <return-value transfer-ownership="none">
          <type name="ReportingDetails" c:type="GstValidateReportingDetails"/>
        </return-value>
        <parameters>
          <instance-parameter name="runner" transfer-ownership="none">
            <type name="Runner" c:type="GstValidateRunner*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_reports"
              c:identifier="gst_validate_runner_get_reports">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">all the reports</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Report"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="runner" transfer-ownership="none">
            <doc xml:space="preserve">The #GstValidateRunner</doc>
            <type name="Runner" c:type="GstValidateRunner*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_reports_count"
              c:identifier="gst_validate_runner_get_reports_count">
        <doc xml:space="preserve">Get the number of reports present in the runner:</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The number of reports present in the runner.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="runner" transfer-ownership="none">
            <doc xml:space="preserve">The $GstValidateRunner to get the number of reports from</doc>
            <type name="Runner" c:type="GstValidateRunner*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="printf" c:identifier="gst_validate_runner_printf">
        <doc xml:space="preserve">Prints all the reports on the terminal or on wherever is set
in the #GST_VALIDATE_FILE env variable.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">0 if no critical error has been found and 18 if a critical
error has been detected. That return value is usually to be used as
exit code of the application.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="runner" transfer-ownership="none">
            <doc xml:space="preserve">The #GstValidateRunner to print all the reports for</doc>
            <type name="Runner" c:type="GstValidateRunner*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="params"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="object">
        <type name="Gst.Tracer" c:type="GstTracer"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="RunnerPrivate" c:type="GstValidateRunnerPrivate*"/>
      </field>
      <glib:signal name="report-added" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Report"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="stopping" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="RunnerClass"
            c:type="GstValidateRunnerClass"
            glib:is-gtype-struct-for="Runner">
      <doc xml:space="preserve">GStreamer Validate Runner object class.</doc>
      <field name="parent_class">
        <doc xml:space="preserve">parent</doc>
        <type name="Gst.TracerClass" c:type="GstTracerClass"/>
      </field>
    </record>
    <record name="RunnerPrivate"
            c:type="GstValidateRunnerPrivate"
            disguised="1">
    </record>
    <class name="Scenario"
           c:symbol-prefix="scenario"
           c:type="GstValidateScenario"
           parent="Gst.Object"
           glib:type-name="GstValidateScenario"
           glib:get-type="gst_validate_scenario_get_type"
           glib:type-struct="ScenarioClass">
      <implements name="Reporter"/>
      <function name="deinit" c:identifier="gst_validate_scenario_deinit">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </function>
      <function name="factory_create"
                c:identifier="gst_validate_scenario_factory_create">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A #GstValidateScenario or NULL</doc>
          <type name="Scenario" c:type="GstValidateScenario*"/>
        </return-value>
        <parameters>
          <parameter name="runner" transfer-ownership="none">
            <doc xml:space="preserve">The #GstValidateRunner to use to report issues</doc>
            <type name="Runner" c:type="GstValidateRunner*"/>
          </parameter>
          <parameter name="pipeline" transfer-ownership="none">
            <doc xml:space="preserve">The pipeline to run the scenario on</doc>
            <type name="Gst.Element" c:type="GstElement*"/>
          </parameter>
          <parameter name="scenario_name" transfer-ownership="none">
            <doc xml:space="preserve">The name (or path) of the scenario to run</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <method name="execute_seek"
              c:identifier="gst_validate_scenario_execute_seek">
        <doc xml:space="preserve">Executes a seek event on the scenario's pipeline. You should always use
this method when you want to execute a seek inside a new action type
so that the scenario state is updated taking into account that seek.

For more information you should have a look at #gst_event_new_seek</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the seek could be executed, %FALSE otherwise</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="scenario" transfer-ownership="none">
            <doc xml:space="preserve">The #GstValidateScenario for which to execute a seek action</doc>
            <type name="Scenario" c:type="GstValidateScenario*"/>
          </instance-parameter>
          <parameter name="action" transfer-ownership="none">
            <doc xml:space="preserve">The seek action to execute</doc>
            <type name="Action" c:type="GstValidateAction*"/>
          </parameter>
          <parameter name="rate" transfer-ownership="none">
            <doc xml:space="preserve">The playback rate of the seek</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="format" transfer-ownership="none">
            <doc xml:space="preserve">The #GstFormat of the seek</doc>
            <type name="Gst.Format" c:type="GstFormat"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">The #GstSeekFlags of the seek</doc>
            <type name="Gst.SeekFlags" c:type="GstSeekFlags"/>
          </parameter>
          <parameter name="start_type" transfer-ownership="none">
            <doc xml:space="preserve">The #GstSeekType of the start value of the seek</doc>
            <type name="Gst.SeekType" c:type="GstSeekType"/>
          </parameter>
          <parameter name="start" transfer-ownership="none">
            <doc xml:space="preserve">The start time of the seek</doc>
            <type name="Gst.ClockTime" c:type="GstClockTime"/>
          </parameter>
          <parameter name="stop_type" transfer-ownership="none">
            <doc xml:space="preserve">The #GstSeekType of the stop value of the seek</doc>
            <type name="Gst.SeekType" c:type="GstSeekType"/>
          </parameter>
          <parameter name="stop" transfer-ownership="none">
            <doc xml:space="preserve">The stop time of the seek</doc>
            <type name="Gst.ClockTime" c:type="GstClockTime"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_actions"
              c:identifier="gst_validate_scenario_get_actions">
        <doc xml:space="preserve">Get remaining actions from @scenario.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A list of #GstValidateAction.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Action"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="scenario" transfer-ownership="none">
            <doc xml:space="preserve">The scenario to retrieve remaining actions for</doc>
            <type name="Scenario" c:type="GstValidateScenario*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pipeline"
              c:identifier="gst_validate_scenario_get_pipeline">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The #GstPipeline the scenario is running
against</doc>
          <type name="Gst.Element" c:type="GstElement*"/>
        </return-value>
        <parameters>
          <instance-parameter name="scenario" transfer-ownership="none">
            <doc xml:space="preserve">The scenario to retrieve a pipeline from</doc>
            <type name="Scenario" c:type="GstValidateScenario*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_target_state"
              c:identifier="gst_validate_scenario_get_target_state">
        <doc xml:space="preserve">Get current target state from @scenario.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">Current target state.</doc>
          <type name="Gst.State" c:type="GstState"/>
        </return-value>
        <parameters>
          <instance-parameter name="scenario" transfer-ownership="none">
            <doc xml:space="preserve">The scenario to retrieve the current target state for</doc>
            <type name="Scenario" c:type="GstValidateScenario*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="execute-on-idle" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="handles-states" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="validate-runner"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Runner"/>
      </property>
      <field name="parent">
        <type name="Gst.Object" c:type="GstObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="ScenarioPrivate" c:type="GstValidateScenarioPrivate*"/>
      </field>
      <field name="_gst_reserved" readable="0" private="1">
        <array zero-terminated="0" c:type="gpointer" fixed-size="5">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <glib:signal name="done" when="last">
        <doc xml:space="preserve">Emitted once all actions have been executed</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="ScenarioClass"
            c:type="GstValidateScenarioClass"
            glib:is-gtype-struct-for="Scenario">
      <field name="parent_class">
        <type name="Gst.ObjectClass" c:type="GstObjectClass"/>
      </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="ScenarioPrivate"
            c:type="GstValidateScenarioPrivate"
            disguised="1">
    </record>
    <record name="StreamInfo" c:type="GstValidateStreamInfo" disguised="1">
    </record>
    <bitfield name="VerbosityFlags" c:type="GstValidateVerbosityFlags">
      <doc xml:space="preserve">Defines the level of verbosity of -validate (ie, printing on stdout).</doc>
      <member name="none" value="0" c:identifier="GST_VALIDATE_VERBOSITY_NONE">
      </member>
      <member name="position"
              value="2"
              c:identifier="GST_VALIDATE_VERBOSITY_POSITION">
      </member>
      <member name="messages"
              value="4"
              c:identifier="GST_VALIDATE_VERBOSITY_MESSAGES">
      </member>
      <member name="props_changes"
              value="8"
              c:identifier="GST_VALIDATE_VERBOSITY_PROPS_CHANGES">
      </member>
      <member name="new_elements"
              value="16"
              c:identifier="GST_VALIDATE_VERBOSITY_NEW_ELEMENTS">
      </member>
      <member name="all" value="30" c:identifier="GST_VALIDATE_VERBOSITY_ALL">
      </member>
    </bitfield>
    <function name="action_get_clocktime"
              c:identifier="gst_validate_action_get_clocktime"
              moved-to="Action.get_clocktime">
      <doc xml:space="preserve">Get a time value for the @name parameter of an action. This
method should be called to retrieve and compute a timed value of a given
action. It will first try to retrieve the value as a double,
then get it as a string and execute any formula taking into account
the 'position' and 'duration' variables. And it will always convert that
value to a GstClockTime.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%TRUE if the time value could be retrieved/computed or %FALSE otherwise</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="scenario" transfer-ownership="none">
          <doc xml:space="preserve">The #GstValidateScenario from which to get a time
           for a parameter of an action</doc>
          <type name="Scenario" c:type="GstValidateScenario*"/>
        </parameter>
        <parameter name="action" transfer-ownership="none">
          <doc xml:space="preserve">The action from which to retrieve the time for @name
         parameter.</doc>
          <type name="Action" c:type="GstValidateAction*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve">The name of the parameter for which to retrieve a time</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="retval"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve">The return value for the wanted time</doc>
          <type name="Gst.ClockTime" c:type="GstClockTime*"/>
        </parameter>
      </parameters>
    </function>
    <function name="deinit" c:identifier="gst_validate_deinit">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="element_has_klass"
              c:identifier="gst_validate_element_has_klass">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="element" transfer-ownership="none">
          <type name="Gst.Element" c:type="GstElement*"/>
        </parameter>
        <parameter name="klass" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="execute_action" c:identifier="gst_validate_execute_action">
      <return-value transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="action_type" transfer-ownership="none">
          <type name="ActionType" c:type="GstValidateActionType*"/>
        </parameter>
        <parameter name="action" transfer-ownership="none">
          <type name="Action" c:type="GstValidateAction*"/>
        </parameter>
      </parameters>
    </function>
    <function name="filenode_free" c:identifier="gst_validate_filenode_free">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="filenode" transfer-ownership="none">
          <type name="MediaFileNode" c:type="GstValidateMediaFileNode*"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_action_type"
              c:identifier="gst_validate_get_action_type">
      <return-value transfer-ownership="full">
        <type name="ActionType" c:type="GstValidateActionType*"/>
      </return-value>
      <parameters>
        <parameter name="type_name" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="init" c:identifier="gst_validate_init">
      <doc xml:space="preserve">Initializes GstValidate. Call this before any usage of GstValidate.
You should take care of initializing GStreamer before calling this
function.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="is_initialized" c:identifier="gst_validate_is_initialized">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="issue_from_id"
              c:identifier="gst_validate_issue_from_id"
              moved-to="Issue.from_id">
      <return-value transfer-ownership="full">
        <type name="Issue" c:type="GstValidateIssue*"/>
      </return-value>
      <parameters>
        <parameter name="issue_id" transfer-ownership="none">
          <type name="IssueId" c:type="GstValidateIssueId"/>
        </parameter>
      </parameters>
    </function>
    <function name="list_scenarios" c:identifier="gst_validate_list_scenarios">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="scenarios" transfer-ownership="none">
          <type name="utf8" c:type="gchar**"/>
        </parameter>
        <parameter name="num_scenarios" transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="output_file" transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="media_descriptors_compare"
              c:identifier="gst_validate_media_descriptors_compare">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="ref" transfer-ownership="none">
          <type name="MediaDescriptor" c:type="GstValidateMediaDescriptor*"/>
        </parameter>
        <parameter name="compared" transfer-ownership="none">
          <type name="MediaDescriptor" c:type="GstValidateMediaDescriptor*"/>
        </parameter>
      </parameters>
    </function>
    <function name="media_info_load"
              c:identifier="gst_validate_media_info_load"
              moved-to="MediaInfo.load"
              introspectable="0"
              throws="1">
      <return-value>
        <type name="MediaInfo" c:type="GstValidateMediaInfo*"/>
      </return-value>
      <parameters>
        <parameter name="path" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="object_set_property"
              c:identifier="gst_validate_object_set_property">
      <return-value transfer-ownership="none">
        <type name="ActionReturn" c:type="GstValidateActionReturn"/>
      </return-value>
      <parameters>
        <parameter name="reporter" transfer-ownership="none">
          <type name="Reporter" c:type="GstValidateReporter*"/>
        </parameter>
        <parameter name="object" transfer-ownership="none">
          <type name="GObject.Object" c:type="GObject*"/>
        </parameter>
        <parameter name="property" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="value" transfer-ownership="none">
          <type name="GObject.Value" c:type="const GValue*"/>
        </parameter>
        <parameter name="optional" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="override_registry_attach_overrides"
              c:identifier="gst_validate_override_registry_attach_overrides"
              moved-to="OverrideRegistry.attach_overrides">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="monitor" transfer-ownership="none">
          <type name="Monitor" c:type="GstValidateMonitor*"/>
        </parameter>
      </parameters>
    </function>
    <function name="override_registry_get"
              c:identifier="gst_validate_override_registry_get"
              moved-to="OverrideRegistry.get"
              introspectable="0">
      <return-value>
        <type name="OverrideRegistry" c:type="GstValidateOverrideRegistry*"/>
      </return-value>
    </function>
    <function name="override_registry_preload"
              c:identifier="gst_validate_override_registry_preload"
              moved-to="OverrideRegistry.preload">
      <return-value transfer-ownership="none">
        <type name="gint" c:type="int"/>
      </return-value>
    </function>
    <function name="plugin_get_config"
              c:identifier="gst_validate_plugin_get_config">
      <doc xml:space="preserve">@plugin, a #GstPlugin, or #NULL
Return the configuration specific to @plugin, or the "core" one if @plugin
is #NULL</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a list of #GstStructure</doc>
        <type name="GLib.List" c:type="GList*">
          <type name="Gst.Structure"/>
        </type>
      </return-value>
      <parameters>
        <parameter name="plugin" transfer-ownership="none">
          <type name="Gst.Plugin" c:type="GstPlugin*"/>
        </parameter>
      </parameters>
    </function>
    <function name="print_action" c:identifier="gst_validate_print_action">
      <doc xml:space="preserve">Print @message to the GstValidate logging system</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="action"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The source object to log</doc>
          <type name="Action" c:type="GstValidateAction*"/>
        </parameter>
        <parameter name="message" transfer-ownership="none">
          <doc xml:space="preserve">The message to print out in the GstValidate logging system</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="print_action_types"
              c:identifier="gst_validate_print_action_types">
      <doc xml:space="preserve">Prints the action types details wanted in @wanted_types</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">True if all types could be printed</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="wanted_types" transfer-ownership="none">
          <doc xml:space="preserve">(optional):  List of types to be printed</doc>
          <array length="1" zero-terminated="0" c:type="gchar**">
            <type name="utf8" c:type="gchar*"/>
          </array>
        </parameter>
        <parameter name="num_wanted_types" transfer-ownership="none">
          <doc xml:space="preserve">Length of @wanted_types</doc>
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="printf"
              c:identifier="gst_validate_printf"
              introspectable="0">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="source"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="format" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function name="printf_valist"
              c:identifier="gst_validate_printf_valist"
              introspectable="0">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="source"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="format" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="args" transfer-ownership="none">
          <type name="va_list" c:type="va_list"/>
        </parameter>
      </parameters>
    </function>
    <function name="register_action_type"
              c:identifier="gst_validate_register_action_type">
      <doc xml:space="preserve">Register a new action type to the action type system. If the action type already
exists, it will be overridden by the new definition</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">The newly created action type or the already registered action type
if it had a higher rank</doc>
        <type name="ActionType" c:type="GstValidateActionType*"/>
      </return-value>
      <parameters>
        <parameter name="type_name" transfer-ownership="none">
          <doc xml:space="preserve">The name of the new action type to add</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="implementer_namespace" transfer-ownership="none">
          <doc xml:space="preserve">The namespace of the implementer of the action type.
                        That should always be the name of the GstPlugin as
                        retrieved with #gst_plugin_get_name when the action type
                        is registered inside a plugin.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="function" transfer-ownership="none" scope="notified">
          <doc xml:space="preserve">The function to be called to execute the action</doc>
          <type name="ExecuteAction" c:type="GstValidateExecuteAction"/>
        </parameter>
        <parameter name="parameters"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The #GstValidateActionParameter usable as parameter of the type</doc>
          <array c:type="GstValidateActionParameter*">
            <type name="ActionParameter"/>
          </array>
        </parameter>
        <parameter name="description" transfer-ownership="none">
          <doc xml:space="preserve">A description of the new type</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="flags" transfer-ownership="none">
          <doc xml:space="preserve">The #GstValidateActionTypeFlags to set on the new action type</doc>
          <type name="ActionTypeFlags" c:type="GstValidateActionTypeFlags"/>
        </parameter>
      </parameters>
    </function>
    <function name="register_action_type_dynamic"
              c:identifier="gst_validate_register_action_type_dynamic">
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">The newly created action type or the already registered action type
if it had a higher rank</doc>
        <type name="ActionType" c:type="GstValidateActionType*"/>
      </return-value>
      <parameters>
        <parameter name="plugin"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The #GstPlugin that register the action type,
                       or NULL for a static element.</doc>
          <type name="Gst.Plugin" c:type="GstPlugin*"/>
        </parameter>
        <parameter name="type_name" transfer-ownership="none">
          <doc xml:space="preserve">The name of the new action type to add</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="rank" transfer-ownership="none">
          <doc xml:space="preserve">The ranking of that implementation of the action type called
       @type_name. If an action type has been registered with the same
       name with a higher rank, the new implementation will not be used,
       and the already registered action type is returned.
       If the already registered implementation has a lower rank, the
       new implementation will be used and returned.</doc>
          <type name="Gst.Rank" c:type="GstRank"/>
        </parameter>
        <parameter name="function" transfer-ownership="none" scope="notified">
          <doc xml:space="preserve">The function to be called to execute the action</doc>
          <type name="ExecuteAction" c:type="GstValidateExecuteAction"/>
        </parameter>
        <parameter name="parameters"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">The #GstValidateActionParameter usable as parameter of the type</doc>
          <array c:type="GstValidateActionParameter*">
            <type name="ActionParameter"/>
          </array>
        </parameter>
        <parameter name="description" transfer-ownership="none">
          <doc xml:space="preserve">A description of the new type</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="flags" transfer-ownership="none">
          <doc xml:space="preserve">The #GstValidateActionTypeFlags to be set on the new action type</doc>
          <type name="ActionTypeFlags" c:type="GstValidateActionTypeFlags"/>
        </parameter>
      </parameters>
    </function>
    <function name="report"
              c:identifier="gst_validate_report"
              introspectable="0">
      <doc xml:space="preserve">Reports a new issue in the GstValidate reporting system with @m
as the source of that issue.

You can also use #GST_VALIDATE_REPORT instead.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="reporter" transfer-ownership="none">
          <doc xml:space="preserve">The source of the new report</doc>
          <type name="Reporter" c:type="GstValidateReporter*"/>
        </parameter>
        <parameter name="issue_id" transfer-ownership="none">
          <doc xml:space="preserve">The #GstValidateIssueId of the issue</doc>
          <type name="IssueId" c:type="GstValidateIssueId"/>
        </parameter>
        <parameter name="format" transfer-ownership="none">
          <doc xml:space="preserve">The format of the message describing the issue in a printf
      format followed by the parameters.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <doc xml:space="preserve">Substitution arguments for @format</doc>
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function name="report_init"
              c:identifier="gst_validate_report_init"
              moved-to="Report.init">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="report_level_from_name"
              c:identifier="gst_validate_report_level_from_name"
              moved-to="Report.level_from_name">
      <return-value transfer-ownership="none">
        <type name="ReportLevel" c:type="GstValidateReportLevel"/>
      </return-value>
      <parameters>
        <parameter name="level_name" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="report_level_get_name"
              c:identifier="gst_validate_report_level_get_name"
              moved-to="Report.level_get_name">
      <return-value transfer-ownership="none">
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="level" transfer-ownership="none">
          <type name="ReportLevel" c:type="GstValidateReportLevel"/>
        </parameter>
      </parameters>
    </function>
    <function name="structs_parse_from_gfile"
              c:identifier="gst_validate_structs_parse_from_gfile"
              introspectable="0">
      <return-value>
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </return-value>
      <parameters>
        <parameter name="scenario_file" transfer-ownership="none">
          <type c:type="GFile*"/>
        </parameter>
      </parameters>
    </function>
    <function name="tag_node_compare"
              c:identifier="gst_validate_tag_node_compare">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="tnode" transfer-ownership="none">
          <type name="MediaTagNode" c:type="GstValidateMediaTagNode*"/>
        </parameter>
        <parameter name="tlist" transfer-ownership="none">
          <type name="Gst.TagList" c:type="const GstTagList*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_enum_from_str"
              c:identifier="gst_validate_utils_enum_from_str">
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%TRUE on success %FALSE otherwise</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="type" transfer-ownership="none">
          <doc xml:space="preserve">The #GType of the enum we are trying to retrieve the enum value from</doc>
          <type name="GType" c:type="GType"/>
        </parameter>
        <parameter name="str_enum" transfer-ownership="none">
          <doc xml:space="preserve">The string representation of the value</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="enum_value"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve">The value of the enum</doc>
          <type name="guint" c:type="guint*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_flags_from_str"
              c:identifier="gst_validate_utils_flags_from_str">
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">The flags set in @str_flags</doc>
        <type name="guint" c:type="guint"/>
      </return-value>
      <parameters>
        <parameter name="type" transfer-ownership="none">
          <doc xml:space="preserve">The #GType of the flags we are trying to retrieve the flags from</doc>
          <type name="GType" c:type="GType"/>
        </parameter>
        <parameter name="str_flags" transfer-ownership="none">
          <doc xml:space="preserve">The string representation of the value</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_get_clocktime"
              c:identifier="gst_validate_utils_get_clocktime">
      <doc xml:space="preserve">Get @name from @structure as a #GstClockTime, it handles various types
for the value, if it is a double, it considers the value to be in second
it can be a gint, gint64 a guint, a gint64.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">%TRUE in case of success, %FALSE otherwise.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="structure" transfer-ownership="none">
          <doc xml:space="preserve">A #GstStructure to retrieve @name as a GstClockTime.</doc>
          <type name="Gst.Structure" c:type="GstStructure*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve">The name of the field containing a #GstClockTime</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="retval"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve">The clocktime contained in @structure</doc>
          <type name="Gst.ClockTime" c:type="GstClockTime*"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_parse_expression"
              c:identifier="gst_validate_utils_parse_expression"
              introspectable="0">
      <return-value transfer-ownership="none">
        <type name="gdouble" c:type="gdouble"/>
      </return-value>
      <parameters>
        <parameter name="expr" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="variable_func" transfer-ownership="none" closure="2">
          <type name="ParseVariableFunc"
                c:type="GstValidateParseVariableFunc"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="error" transfer-ownership="none">
          <type name="utf8" c:type="gchar**"/>
        </parameter>
      </parameters>
    </function>
    <function name="utils_structs_parse_from_filename"
              c:identifier="gst_validate_utils_structs_parse_from_filename"
              introspectable="0">
      <return-value>
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </return-value>
      <parameters>
        <parameter name="scenario_file" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
