<?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="GObject" version="2.0"/>
  <include name="Gst" version="1.0"/>
  <include name="GstPbutils" version="1.0"/>
  <namespace name="GstTranscoder"
             version="1.0"
             shared-library="libgsttranscoder-1.0.so.0"
             c:identifier-prefixes="Gst"
             c:symbol-prefixes="gst_">
    <class name="Transcoder"
           c:symbol-prefix="transcoder"
           c:type="GstTranscoder"
           parent="Gst.Object"
           glib:type-name="GstTranscoder"
           glib:get-type="gst_transcoder_get_type"
           glib:type-struct="TranscoderClass">
      <constructor name="new" c:identifier="gst_transcoder_new">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a new #GstTranscoder instance</doc>
          <type name="Transcoder" c:type="GstTranscoder*"/>
        </return-value>
        <parameters>
          <parameter name="source_uri" transfer-ownership="none">
            <doc xml:space="preserve">The URI of the media stream to transcode</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="dest_uri" transfer-ownership="none">
            <doc xml:space="preserve">The URI of the destination of the transcoded stream</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="encoding_profile" transfer-ownership="none">
            <doc xml:space="preserve">The serialized #GstEncodingProfile defining the output
format. Have a look at the #GstEncodingProfile documentation to find more
about the serialization format.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_full" c:identifier="gst_transcoder_new_full">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a new #GstTranscoder instance</doc>
          <type name="Transcoder" c:type="GstTranscoder*"/>
        </return-value>
        <parameters>
          <parameter name="source_uri" transfer-ownership="none">
            <doc xml:space="preserve">The URI of the media stream to transcode</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="dest_uri" transfer-ownership="none">
            <doc xml:space="preserve">The URI of the destination of the transcoded stream</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="profile" transfer-ownership="none">
            <doc xml:space="preserve">The #GstEncodingProfile defining the output format
have a look at the #GstEncodingProfile documentation to find more
about the serialization format.</doc>
            <type name="GstPbutils.EncodingProfile"
                  c:type="GstEncodingProfile*"/>
          </parameter>
          <parameter name="signal_dispatcher" transfer-ownership="none">
            <doc xml:space="preserve">The #GstTranscoderSignalDispatcher to be used
to dispatch the various signals.</doc>
            <type name="TranscoderSignalDispatcher"
                  c:type="GstTranscoderSignalDispatcher*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_avoid_reencoding"
              c:identifier="gst_transcoder_get_avoid_reencoding">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the transcoder tries to avoid reencoding streams where
reencoding is not strictly needed, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The #GstTranscoder to check whether reencoding is avoided or not.</doc>
            <type name="Transcoder" c:type="GstTranscoder*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_dest_uri" c:identifier="gst_transcoder_get_dest_uri">
        <doc xml:space="preserve">Gets the URI of the destination of the transcoded stream.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a string containing the URI of the
destination of the transcoded stream. g_free() after usage.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">#GstTranscoder instance</doc>
            <type name="Transcoder" c:type="GstTranscoder*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_duration" c:identifier="gst_transcoder_get_duration">
        <doc xml:space="preserve">Retrieves the duration of the media stream that self represents.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the duration of the transcoding media stream, in
nanoseconds.</doc>
          <type name="Gst.ClockTime" c:type="GstClockTime"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">#GstTranscoder instance</doc>
            <type name="Transcoder" c:type="GstTranscoder*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pipeline" c:identifier="gst_transcoder_get_pipeline">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The internal uritranscodebin instance</doc>
          <type name="Gst.Element" c:type="GstElement*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">#GstTranscoder instance</doc>
            <type name="Transcoder" c:type="GstTranscoder*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_position" c:identifier="gst_transcoder_get_position">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the absolute position time, in nanoseconds, of the
transcoding stream.</doc>
          <type name="Gst.ClockTime" c:type="GstClockTime"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">#GstTranscoder instance</doc>
            <type name="Transcoder" c:type="GstTranscoder*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_position_update_interval"
              c:identifier="gst_transcoder_get_position_update_interval">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">current position update interval in milliseconds</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">#GstTranscoder instance</doc>
            <type name="Transcoder" c:type="GstTranscoder*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_source_uri"
              c:identifier="gst_transcoder_get_source_uri">
        <doc xml:space="preserve">Gets the URI of the currently-transcoding stream.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a string containing the URI of the
source stream. g_free() after usage.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">#GstTranscoder instance</doc>
            <type name="Transcoder" c:type="GstTranscoder*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="run" c:identifier="gst_transcoder_run" throws="1">
        <doc xml:space="preserve">Run the transcoder task synchonously. You can connect
to the 'position' signal to get information about the
progress of the transcoding.</doc>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The GstTranscoder to run</doc>
            <type name="Transcoder" c:type="GstTranscoder*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="run_async" c:identifier="gst_transcoder_run_async">
        <doc xml:space="preserve">Run the transcoder task asynchonously. You should connect
to the 'done' signal to be notified about when the
transcoding is done, and to the 'error' signal to be
notified about any error.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The GstTranscoder to run</doc>
            <type name="Transcoder" c:type="GstTranscoder*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_avoid_reencoding"
              c:identifier="gst_transcoder_set_avoid_reencoding">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The #GstTranscoder to set whether reencoding should be avoided or not.</doc>
            <type name="Transcoder" c:type="GstTranscoder*"/>
          </instance-parameter>
          <parameter name="avoid_reencoding" transfer-ownership="none">
            <doc xml:space="preserve">%TRUE if the transcoder should try to avoid reencoding
streams where * reencoding is not strictly needed, %FALSE otherwise.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_cpu_usage" c:identifier="gst_transcoder_set_cpu_usage">
        <doc xml:space="preserve">Sets @cpu_usage as target percentage CPU usage of the process running the
transcoding task. It will modulate the transcoding speed to reach that target
usage.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The GstTranscoder to limit CPU usage on.</doc>
            <type name="Transcoder" c:type="GstTranscoder*"/>
          </instance-parameter>
          <parameter name="cpu_usage" transfer-ownership="none">
            <doc xml:space="preserve">The percentage of the CPU the process running the transcoder
should try to use. It takes into account the number of cores avalaible.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_position_update_interval"
              c:identifier="gst_transcoder_set_position_update_interval">
        <doc xml:space="preserve">Set interval in milliseconds between two position-updated signals.
Pass 0 to stop updating the position.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">#GstTranscoder instance</doc>
            <type name="Transcoder" c:type="GstTranscoder*"/>
          </instance-parameter>
          <parameter name="interval" transfer-ownership="none">
            <doc xml:space="preserve">interval in ms</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <property name="avoid-reencoding" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="dest-uri"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="duration" transfer-ownership="none">
        <type name="guint64" c:type="guint64"/>
      </property>
      <property name="pipeline" transfer-ownership="none">
        <type name="Gst.Element"/>
      </property>
      <property name="position" transfer-ownership="none">
        <type name="guint64" c:type="guint64"/>
      </property>
      <property name="position-update-interval"
                writable="1"
                transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="profile"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="GstPbutils.EncodingProfile"/>
      </property>
      <property name="signal-dispatcher"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="TranscoderSignalDispatcher"/>
      </property>
      <property name="src-uri"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <glib:signal name="done" when="last" no-recurse="1" no-hooks="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="duration-changed"
                   when="last"
                   no-recurse="1"
                   no-hooks="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint64" c:type="guint64"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="error" when="last" no-recurse="1" no-hooks="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="GLib.Error"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="Gst.Structure"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="position-updated"
                   when="last"
                   no-recurse="1"
                   no-hooks="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint64" c:type="guint64"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="warning" when="last" no-recurse="1" no-hooks="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="GLib.Error"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="Gst.Structure"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="TranscoderClass"
            c:type="GstTranscoderClass"
            disguised="1"
            glib:is-gtype-struct-for="Transcoder">
    </record>
    <enumeration name="TranscoderError"
                 glib:type-name="GstTranscoderError"
                 glib:get-type="gst_transcoder_error_get_type"
                 c:type="GstTranscoderError"
                 glib:error-domain="gst-transcoder-error-quark">
      <member name="failed"
              value="0"
              c:identifier="GST_TRANSCODER_ERROR_FAILED"
              glib:nick="failed">
        <doc xml:space="preserve">generic error.</doc>
      </member>
      <function name="get_name" c:identifier="gst_transcoder_error_get_name">
        <doc xml:space="preserve">Gets a string representing the given error.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a string with the given error.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="error" transfer-ownership="none">
            <doc xml:space="preserve">a #GstTranscoderError</doc>
            <type name="TranscoderError" c:type="GstTranscoderError"/>
          </parameter>
        </parameters>
      </function>
      <function name="quark" c:identifier="gst_transcoder_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <class name="TranscoderGMainContextSignalDispatcher"
           c:symbol-prefix="transcoder_g_main_context_signal_dispatcher"
           c:type="GstTranscoderGMainContextSignalDispatcher"
           parent="GObject.Object"
           glib:type-name="GstTranscoderGMainContextSignalDispatcher"
           glib:get-type="gst_transcoder_g_main_context_signal_dispatcher_get_type"
           glib:type-struct="TranscoderGMainContextSignalDispatcherClass">
      <implements name="TranscoderSignalDispatcher"/>
      <function name="new"
                c:identifier="gst_transcoder_g_main_context_signal_dispatcher_new">
        <return-value transfer-ownership="full">
          <type name="TranscoderSignalDispatcher"
                c:type="GstTranscoderSignalDispatcher*"/>
        </return-value>
        <parameters>
          <parameter name="application_context"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">GMainContext to use or %NULL</doc>
            <type name="GLib.MainContext" c:type="GMainContext*"/>
          </parameter>
        </parameters>
      </function>
      <property name="application-context"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="GLib.MainContext"/>
      </property>
    </class>
    <record name="TranscoderGMainContextSignalDispatcherClass"
            c:type="GstTranscoderGMainContextSignalDispatcherClass"
            disguised="1"
            glib:is-gtype-struct-for="TranscoderGMainContextSignalDispatcher">
    </record>
    <record name="TranscoderPrivate"
            c:type="GstTranscoderPrivate"
            disguised="1">
    </record>
    <interface name="TranscoderSignalDispatcher"
               c:symbol-prefix="transcoder_signal_dispatcher"
               c:type="GstTranscoderSignalDispatcher"
               glib:type-name="GstTranscoderSignalDispatcher"
               glib:get-type="gst_transcoder_signal_dispatcher_get_type"
               glib:type-struct="TranscoderSignalDispatcherInterface">
      <virtual-method name="dispatch">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="TranscoderSignalDispatcher"
                  c:type="GstTranscoderSignalDispatcher*"/>
          </instance-parameter>
          <parameter name="transcoder" transfer-ownership="none">
            <type name="Transcoder" c:type="GstTranscoder*"/>
          </parameter>
          <parameter name="emitter"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer*"/>
          </parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="destroy" transfer-ownership="none" scope="async">
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </virtual-method>
    </interface>
    <record name="TranscoderSignalDispatcherInterface"
            c:type="GstTranscoderSignalDispatcherInterface"
            glib:is-gtype-struct-for="TranscoderSignalDispatcher">
      <field name="parent_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="dispatch">
        <callback name="dispatch">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="TranscoderSignalDispatcher"
                    c:type="GstTranscoderSignalDispatcher*"/>
            </parameter>
            <parameter name="transcoder" transfer-ownership="none">
              <type name="Transcoder" c:type="GstTranscoder*"/>
            </parameter>
            <parameter name="emitter"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <type name="gpointer" c:type="gpointer*"/>
            </parameter>
            <parameter name="data"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
            <parameter name="destroy" transfer-ownership="none" scope="async">
              <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <function name="transcoder_error_get_name"
              c:identifier="gst_transcoder_error_get_name"
              moved-to="TranscoderError.get_name">
      <doc xml:space="preserve">Gets a string representing the given error.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a string with the given error.</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="error" transfer-ownership="none">
          <doc xml:space="preserve">a #GstTranscoderError</doc>
          <type name="TranscoderError" c:type="GstTranscoderError"/>
        </parameter>
      </parameters>
    </function>
    <function name="transcoder_error_quark"
              c:identifier="gst_transcoder_error_quark"
              moved-to="TranscoderError.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
  </namespace>
</repository>
