<?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="Clutter" version="1.0"/>
  <include name="Cogl" version="1.0"/>
  <include name="GObject" version="2.0"/>
  <include name="GdkPixbuf" version="2.0"/>
  <include name="Gst" version="1.0"/>
  <include name="GstAudio" version="1.0"/>
  <include name="GstBase" version="1.0"/>
  <include name="GstPbutils" version="1.0"/>
  <include name="GstVideo" version="1.0"/>
  <package name="clutter-gst-3.0"/>
  <c:include name="clutter-gst/clutter-gst.h"/>
  <namespace name="ClutterGst"
             version="3.0"
             shared-library="libclutter-gst-3.0.so.0.0"
             c:identifier-prefixes="ClutterGst"
             c:symbol-prefixes="clutter_gst">
    <function-macro name="ASPECTRATIO"
                    c:identifier="CLUTTER_GST_ASPECTRATIO"
                    introspectable="0">
      <source-position filename="clutter-gst-aspectratio.h" line="45"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="ASPECTRATIO_CLASS"
                    c:identifier="CLUTTER_GST_ASPECTRATIO_CLASS"
                    introspectable="0">
      <source-position filename="clutter-gst-aspectratio.h" line="49"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="ASPECTRATIO_GET_CLASS"
                    c:identifier="CLUTTER_GST_ASPECTRATIO_GET_CLASS"
                    introspectable="0">
      <source-position filename="clutter-gst-aspectratio.h" line="61"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="Aspectratio"
           c:symbol-prefix="aspectratio"
           c:type="ClutterGstAspectratio"
           parent="Content"
           glib:type-name="ClutterGstAspectratio"
           glib:get-type="clutter_gst_aspectratio_get_type"
           glib:type-struct="AspectratioClass">
      <doc xml:space="preserve"
           filename="clutter-gst-aspectratio.h"
           line="69">Implementation of #ClutterGstContent that displays video streams
with respects to their aspect ratio.

The #ClutterGstAspectratio structure contains only private data and
should not be accessed directly.</doc>
      <source-position filename="clutter-gst-aspectratio.h" line="97"/>
      <implements name="Clutter.Content"/>
      <function name="new" c:identifier="clutter_gst_aspectratio_new">
        <source-position filename="clutter-gst-aspectratio.h" line="101"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="clutter-gst-aspectratio.c"
               line="446">a new #ClutterGstAspectratio instance</doc>
          <type name="Clutter.Content" c:type="ClutterContent*"/>
        </return-value>
      </function>
      <property name="fill-allocation"
                version="3.0"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="clutter-gst-aspectratio.c"
             line="421">Whether the content should fill its allocation with video rather
than adding borders.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="paint-borders"
                version="3.0"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="clutter-gst-aspectratio.c"
             line="407">Whether or not paint borders on the sides of the video</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent" readable="0" private="1">
        <type name="Content" c:type="ClutterGstContent"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="AspectratioPrivate"
              c:type="ClutterGstAspectratioPrivate*"/>
      </field>
    </class>
    <record name="AspectratioClass"
            c:type="ClutterGstAspectratioClass"
            glib:is-gtype-struct-for="Aspectratio">
      <doc xml:space="preserve"
           filename="clutter-gst-aspectratio.h"
           line="86">Base class for #ClutterGstAspectratio.</doc>
      <source-position filename="clutter-gst-aspectratio.h" line="97"/>
      <field name="parent_class" readable="0" private="1">
        <type name="ContentClass" c:type="ClutterGstContentClass"/>
      </field>
      <field name="_padding_dummy" readable="0" private="1">
        <array zero-terminated="0" fixed-size="8">
          <type name="gpointer" c:type="void*"/>
        </array>
      </field>
    </record>
    <record name="AspectratioPrivate"
            c:type="ClutterGstAspectratioPrivate"
            disguised="1">
      <source-position filename="clutter-gst-aspectratio.h" line="67"/>
    </record>
    <record name="Box"
            c:type="ClutterGstBox"
            version="3.0"
            glib:type-name="ClutterGstBox"
            glib:get-type="clutter_gst_box_get_type"
            c:symbol-prefix="box">
      <doc xml:space="preserve"
           filename="clutter-gst-types.h"
           line="78">Bounding box of an area in a video texture or actor's allocation.
Coordinates are usually expressed in the [0, 1] interval.</doc>
      <source-position filename="clutter-gst-types.h" line="97"/>
      <field name="x1" writable="1">
        <doc xml:space="preserve"
             filename="clutter-gst-types.h"
             line="80">X coordinate of the top left corner</doc>
        <type name="gfloat" c:type="gfloat"/>
      </field>
      <field name="y1" writable="1">
        <doc xml:space="preserve"
             filename="clutter-gst-types.h"
             line="81">Y coordinate of the top left corner</doc>
        <type name="gfloat" c:type="gfloat"/>
      </field>
      <field name="x2" writable="1">
        <doc xml:space="preserve"
             filename="clutter-gst-types.h"
             line="82">X coordinate of the bottom right corner</doc>
        <type name="gfloat" c:type="gfloat"/>
      </field>
      <field name="y2" writable="1">
        <doc xml:space="preserve"
             filename="clutter-gst-types.h"
             line="83">Y coordinate of the bottom right corner</doc>
        <type name="gfloat" c:type="gfloat"/>
      </field>
      <method name="get_height"
              c:identifier="clutter_gst_box_get_height"
              version="3.0">
        <doc xml:space="preserve"
             filename="clutter-gst-types.c"
             line="208">Retrieves the height of the @box</doc>
        <source-position filename="clutter-gst-types.h" line="165"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-types.c"
               line="214">the height of the box</doc>
          <type name="gfloat" c:type="gfloat"/>
        </return-value>
        <parameters>
          <instance-parameter name="box" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-types.c"
                 line="210">a #ClutterGstBox</doc>
            <type name="Box" c:type="const ClutterGstBox*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_width"
              c:identifier="clutter_gst_box_get_width"
              version="3.0">
        <doc xml:space="preserve"
             filename="clutter-gst-types.c"
             line="190">Retrieves the width of the @box</doc>
        <source-position filename="clutter-gst-types.h" line="164"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-types.c"
               line="196">the width of the box</doc>
          <type name="gfloat" c:type="gfloat"/>
        </return-value>
        <parameters>
          <instance-parameter name="box" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-types.c"
                 line="192">a #ClutterGstBox</doc>
            <type name="Box" c:type="const ClutterGstBox*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="BufferingMode"
                 version="1.4"
                 glib:type-name="ClutterGstBufferingMode"
                 glib:get-type="clutter_gst_buffering_mode_get_type"
                 c:type="ClutterGstBufferingMode">
      <doc xml:space="preserve"
           filename="clutter-gst-types.h"
           line="63">Different buffering policies clutter-gst supports</doc>
      <member name="stream"
              value="0"
              c:identifier="CLUTTER_GST_BUFFERING_MODE_STREAM"
              glib:nick="stream"
              glib:name="CLUTTER_GST_BUFFERING_MODE_STREAM">
        <doc xml:space="preserve"
             filename="clutter-gst-types.h"
             line="65">In-memory buffering</doc>
      </member>
      <member name="download"
              value="1"
              c:identifier="CLUTTER_GST_BUFFERING_MODE_DOWNLOAD"
              glib:nick="download"
              glib:name="CLUTTER_GST_BUFFERING_MODE_DOWNLOAD">
        <doc xml:space="preserve"
             filename="clutter-gst-types.h"
             line="66">On-disk buffering</doc>
      </member>
    </enumeration>
    <function-macro name="CAMERA"
                    c:identifier="CLUTTER_GST_CAMERA"
                    introspectable="0">
      <source-position filename="clutter-gst-camera.h" line="49"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CAMERA_CLASS"
                    c:identifier="CLUTTER_GST_CAMERA_CLASS"
                    introspectable="0">
      <source-position filename="clutter-gst-camera.h" line="53"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CAMERA_DEVICE"
                    c:identifier="CLUTTER_GST_CAMERA_DEVICE"
                    introspectable="0">
      <source-position filename="clutter-gst-camera-device.h" line="42"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CAMERA_DEVICE_CLASS"
                    c:identifier="CLUTTER_GST_CAMERA_DEVICE_CLASS"
                    introspectable="0">
      <source-position filename="clutter-gst-camera-device.h" line="46"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CAMERA_DEVICE_GET_CLASS"
                    c:identifier="CLUTTER_GST_CAMERA_DEVICE_GET_CLASS"
                    introspectable="0">
      <source-position filename="clutter-gst-camera-device.h" line="58"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CAMERA_GET_CLASS"
                    c:identifier="CLUTTER_GST_CAMERA_GET_CLASS"
                    introspectable="0">
      <source-position filename="clutter-gst-camera.h" line="65"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CAMERA_MANAGER"
                    c:identifier="CLUTTER_GST_CAMERA_MANAGER"
                    introspectable="0">
      <source-position filename="clutter-gst-camera-manager.h" line="41"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CAMERA_MANAGER_CLASS"
                    c:identifier="CLUTTER_GST_CAMERA_MANAGER_CLASS"
                    introspectable="0">
      <source-position filename="clutter-gst-camera-manager.h" line="45"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CAMERA_MANAGER_GET_CLASS"
                    c:identifier="CLUTTER_GST_CAMERA_MANAGER_GET_CLASS"
                    introspectable="0">
      <source-position filename="clutter-gst-camera-manager.h" line="57"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CHECK_VERSION"
                    c:identifier="CLUTTER_GST_CHECK_VERSION"
                    introspectable="0">
      <doc xml:space="preserve"
           filename="clutter-gst-version.h"
           line="84">Evaluates to %TRUE if the version of ClutterGst is greater than
the @major, @minor and @micro values.</doc>
      <source-position filename="clutter-gst-version.h" line="91"/>
      <parameters>
        <parameter name="major">
          <doc xml:space="preserve"
               filename="clutter-gst-version.h"
               line="86">major version, like 1 in 1.2.3</doc>
        </parameter>
        <parameter name="minor">
          <doc xml:space="preserve"
               filename="clutter-gst-version.h"
               line="87">minor version, like 2 in 1.2.3</doc>
        </parameter>
        <parameter name="micro">
          <doc xml:space="preserve"
               filename="clutter-gst-version.h"
               line="88">micro version, like 3 in 1.2.3</doc>
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CONTENT"
                    c:identifier="CLUTTER_GST_CONTENT"
                    introspectable="0">
      <source-position filename="clutter-gst-content.h" line="36"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CONTENT_CLASS"
                    c:identifier="CLUTTER_GST_CONTENT_CLASS"
                    introspectable="0">
      <source-position filename="clutter-gst-content.h" line="38"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CONTENT_GET_CLASS"
                    c:identifier="CLUTTER_GST_CONTENT_GET_CLASS"
                    introspectable="0">
      <source-position filename="clutter-gst-content.h" line="40"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CROP"
                    c:identifier="CLUTTER_GST_CROP"
                    introspectable="0">
      <source-position filename="clutter-gst-crop.h" line="44"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CROP_CLASS"
                    c:identifier="CLUTTER_GST_CROP_CLASS"
                    introspectable="0">
      <source-position filename="clutter-gst-crop.h" line="48"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CROP_GET_CLASS"
                    c:identifier="CLUTTER_GST_CROP_GET_CLASS"
                    introspectable="0">
      <source-position filename="clutter-gst-crop.h" line="60"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="Camera"
           c:symbol-prefix="camera"
           c:type="ClutterGstCamera"
           parent="GObject.Object"
           glib:type-name="ClutterGstCamera"
           glib:get-type="clutter_gst_camera_get_type"
           glib:type-struct="CameraClass">
      <doc xml:space="preserve"
           filename="clutter-gst-camera.h"
           line="73">Implementation of #ClutterGstPlayer that displays camera streams
using GStreamer.

The #ClutterGstCamera structure contains only private data and
should not be accessed directly.</doc>
      <source-position filename="clutter-gst-camera.h" line="113"/>
      <implements name="Player"/>
      <constructor name="new" c:identifier="clutter_gst_camera_new">
        <doc xml:space="preserve"
             filename="clutter-gst-camera.c"
             line="843">Create a camera actor.

&lt;note&gt;This function has to be called from Clutter's main thread. While
GStreamer will spawn threads to do its work, we want all the GL calls to
happen in the same thread. Clutter-gst knows which thread it is by
assuming this constructor is called from the Clutter thread.&lt;/note&gt;</doc>
        <source-position filename="clutter-gst-camera.h" line="117"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="clutter-gst-camera.c"
               line="853">the newly created camera actor</doc>
          <type name="Camera" c:type="ClutterGstCamera*"/>
        </return-value>
      </constructor>
      <virtual-method name="photo_saved">
        <source-position filename="clutter-gst-camera.h" line="101"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Camera" c:type="ClutterGstCamera*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="photo_taken">
        <source-position filename="clutter-gst-camera.h" line="102"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Camera" c:type="ClutterGstCamera*"/>
          </instance-parameter>
          <parameter name="pixbuf" transfer-ownership="none">
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="ready_for_capture">
        <source-position filename="clutter-gst-camera.h" line="99"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Camera" c:type="ClutterGstCamera*"/>
          </instance-parameter>
          <parameter name="ready" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="video_saved">
        <source-position filename="clutter-gst-camera.h" line="104"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Camera" c:type="ClutterGstCamera*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="get_brightness"
              c:identifier="clutter_gst_camera_get_brightness">
        <source-position filename="clutter-gst-camera.h" line="155"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Camera" c:type="ClutterGstCamera*"/>
          </instance-parameter>
          <parameter name="cur_value" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_brightness_range"
              c:identifier="clutter_gst_camera_get_brightness_range">
        <source-position filename="clutter-gst-camera.h" line="151"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Camera" c:type="ClutterGstCamera*"/>
          </instance-parameter>
          <parameter name="min_value" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="max_value" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="default_value" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_camera_device"
              c:identifier="clutter_gst_camera_get_camera_device">
        <doc xml:space="preserve"
             filename="clutter-gst-camera.c"
             line="896">Retrieve the current selected camera device.</doc>
        <source-position filename="clutter-gst-camera.h" line="120"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-camera.c"
               line="902">The currently selected camera device</doc>
          <type name="CameraDevice" c:type="ClutterGstCameraDevice*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="898">a #ClutterGstCamera</doc>
            <type name="Camera" c:type="ClutterGstCamera*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_color_balance_property"
              c:identifier="clutter_gst_camera_get_color_balance_property">
        <doc xml:space="preserve"
             filename="clutter-gst-camera.c"
             line="1182">Retrieve the current value for the color balance property @property,

This method will return FALSE if @property does not exist or color balance is not
supported on @self.
See clutter_gst_camera_supports_color_balance().</doc>
        <source-position filename="clutter-gst-camera.h" line="143"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-camera.c"
               line="1194">%TRUE if successful, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="1184">a #ClutterGstCamera</doc>
            <type name="Camera" c:type="ClutterGstCamera*"/>
          </instance-parameter>
          <parameter name="property" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="1185">Property name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cur_value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="1186">Pointer to store the current value of @property</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_color_balance_property_range"
              c:identifier="clutter_gst_camera_get_color_balance_property_range">
        <doc xml:space="preserve"
             filename="clutter-gst-camera.c"
             line="1136">Retrieve the minimum, maximum and default values for the color balance property @property,

This method will return FALSE if @property does not exist or color balance is not
supported on @self.
See clutter_gst_camera_supports_color_balance().</doc>
        <source-position filename="clutter-gst-camera.h" line="137"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-camera.c"
               line="1150">%TRUE if successful, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="1138">a #ClutterGstCamera</doc>
            <type name="Camera" c:type="ClutterGstCamera*"/>
          </instance-parameter>
          <parameter name="property" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="1139">Property name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="min_value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="1140">Pointer to store the minimum value of @property, or %NULL</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="max_value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="1141">Pointer to store the maximum value of @property, or %NULL</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="default_value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="1142">Pointer to store the default value of @property, or %NULL</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_contrast"
              c:identifier="clutter_gst_camera_get_contrast">
        <source-position filename="clutter-gst-camera.h" line="163"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Camera" c:type="ClutterGstCamera*"/>
          </instance-parameter>
          <parameter name="cur_value" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_contrast_range"
              c:identifier="clutter_gst_camera_get_contrast_range">
        <source-position filename="clutter-gst-camera.h" line="159"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Camera" c:type="ClutterGstCamera*"/>
          </instance-parameter>
          <parameter name="min_value" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="max_value" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="default_value" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_filter" c:identifier="clutter_gst_camera_get_filter">
        <doc xml:space="preserve"
             filename="clutter-gst-camera.c"
             line="1363">Retrieve the current filter being used.</doc>
        <source-position filename="clutter-gst-camera.h" line="184"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-camera.c"
               line="1369">The current filter or %NULL if none is set</doc>
          <type name="Gst.Element" c:type="GstElement*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="1365">a #ClutterGstCamera</doc>
            <type name="Camera" c:type="ClutterGstCamera*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_gamma" c:identifier="clutter_gst_camera_get_gamma">
        <doc xml:space="preserve"
             filename="clutter-gst-camera.c"
             line="1057">Retrieve the current gamma value.

This method will return FALSE if gamma correction is not
supported on @self.
See clutter_gst_camera_supports_gamma_correction().</doc>
        <source-position filename="clutter-gst-camera.h" line="130"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-camera.c"
               line="1068">%TRUE if successful, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="1059">a #ClutterGstCamera</doc>
            <type name="Camera" c:type="ClutterGstCamera*"/>
          </instance-parameter>
          <parameter name="cur_value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="1060">Pointer to store the current gamma value</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_gamma_range"
              c:identifier="clutter_gst_camera_get_gamma_range">
        <doc xml:space="preserve"
             filename="clutter-gst-camera.c"
             line="1012">Retrieve the minimum, maximum and default gamma values.

This method will return FALSE if gamma correction is not
supported on @self.
See clutter_gst_camera_supports_gamma_correction().</doc>
        <source-position filename="clutter-gst-camera.h" line="126"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-camera.c"
               line="1025">%TRUE if successful, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="1014">a #ClutterGstCamera</doc>
            <type name="Camera" c:type="ClutterGstCamera*"/>
          </instance-parameter>
          <parameter name="min_value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="1015">Pointer to store the minimum gamma value, or %NULL</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="max_value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="1016">Pointer to store the maximum gamma value, or %NULL</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="default_value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="1017">Pointer to store the default gamma value, or %NULL</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_hue" c:identifier="clutter_gst_camera_get_hue">
        <source-position filename="clutter-gst-camera.h" line="179"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Camera" c:type="ClutterGstCamera*"/>
          </instance-parameter>
          <parameter name="cur_value" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_hue_range"
              c:identifier="clutter_gst_camera_get_hue_range">
        <source-position filename="clutter-gst-camera.h" line="175"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Camera" c:type="ClutterGstCamera*"/>
          </instance-parameter>
          <parameter name="min_value" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="max_value" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="default_value" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_saturation"
              c:identifier="clutter_gst_camera_get_saturation">
        <source-position filename="clutter-gst-camera.h" line="171"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Camera" c:type="ClutterGstCamera*"/>
          </instance-parameter>
          <parameter name="cur_value" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_saturation_range"
              c:identifier="clutter_gst_camera_get_saturation_range">
        <source-position filename="clutter-gst-camera.h" line="167"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Camera" c:type="ClutterGstCamera*"/>
          </instance-parameter>
          <parameter name="min_value" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="max_value" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="default_value" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_ready_for_capture"
              c:identifier="clutter_gst_camera_is_ready_for_capture">
        <doc xml:space="preserve"
             filename="clutter-gst-camera.c"
             line="1521">Check whether the @self is ready for video/photo capture.</doc>
        <source-position filename="clutter-gst-camera.h" line="189"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-camera.c"
               line="1527">%TRUE if @self is ready for capture, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="1523">a #ClutterGstCamera</doc>
            <type name="Camera" c:type="ClutterGstCamera*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_recording_video"
              c:identifier="clutter_gst_camera_is_recording_video">
        <doc xml:space="preserve"
             filename="clutter-gst-camera.c"
             line="1544">Check whether the @self is recording video.</doc>
        <source-position filename="clutter-gst-camera.h" line="193"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-camera.c"
               line="1550">%TRUE if @self is recording video, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="1546">a #ClutterGstCamera</doc>
            <type name="Camera" c:type="ClutterGstCamera*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove_filter"
              c:identifier="clutter_gst_camera_remove_filter">
        <doc xml:space="preserve"
             filename="clutter-gst-camera.c"
             line="1507">Remove the current filter, if any.</doc>
        <source-position filename="clutter-gst-camera.h" line="187"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-camera.c"
               line="1513">%TRUE on success, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="1509">a #ClutterGstCamera</doc>
            <type name="Camera" c:type="ClutterGstCamera*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_brightness"
              c:identifier="clutter_gst_camera_set_brightness">
        <source-position filename="clutter-gst-camera.h" line="157"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Camera" c:type="ClutterGstCamera*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_camera_device"
              c:identifier="clutter_gst_camera_set_camera_device">
        <doc xml:space="preserve"
             filename="clutter-gst-camera.c"
             line="912">Set the new active camera device.</doc>
        <source-position filename="clutter-gst-camera.h" line="121"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-camera.c"
               line="919">%TRUE on success, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="914">a #ClutterGstCamera</doc>
            <type name="Camera" c:type="ClutterGstCamera*"/>
          </instance-parameter>
          <parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="915">a #ClutterGstCameraDevice</doc>
            <type name="CameraDevice" c:type="ClutterGstCameraDevice*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_color_balance_property"
              c:identifier="clutter_gst_camera_set_color_balance_property">
        <doc xml:space="preserve"
             filename="clutter-gst-camera.c"
             line="1220">Set the value for the color balance property @property to @value.
Allowed values can be retrieved with
clutter_gst_camera_get_color_balance_property_range().

This method will return FALSE if @property does not exist or color balance is not
supported on @self.
See clutter_gst_camera_supports_color_balance().</doc>
        <source-position filename="clutter-gst-camera.h" line="147"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-camera.c"
               line="1234">%TRUE if successful, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="1222">a #ClutterGstCamera</doc>
            <type name="Camera" c:type="ClutterGstCamera*"/>
          </instance-parameter>
          <parameter name="property" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="1223">Property name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="1224">The value to set</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_contrast"
              c:identifier="clutter_gst_camera_set_contrast">
        <source-position filename="clutter-gst-camera.h" line="165"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Camera" c:type="ClutterGstCamera*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_filter" c:identifier="clutter_gst_camera_set_filter">
        <doc xml:space="preserve"
             filename="clutter-gst-camera.c"
             line="1423">Set the filter element to be used.
Filters can be used for effects, image processing, etc.</doc>
        <source-position filename="clutter-gst-camera.h" line="185"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-camera.c"
               line="1431">%TRUE on success, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="1425">a #ClutterGstCamera</doc>
            <type name="Camera" c:type="ClutterGstCamera*"/>
          </instance-parameter>
          <parameter name="filter" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="1426">a #GstElement for the filter</doc>
            <type name="Gst.Element" c:type="GstElement*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_gamma" c:identifier="clutter_gst_camera_set_gamma">
        <doc xml:space="preserve"
             filename="clutter-gst-camera.c"
             line="1088">Set the gamma value.
Allowed values can be retrieved with
clutter_gst_camera_get_gamma_range().

This method will return FALSE if gamma correction is not
supported on @self.
See clutter_gst_camera_supports_gamma_correction().</doc>
        <source-position filename="clutter-gst-camera.h" line="132"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-camera.c"
               line="1101">%TRUE if successful, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="1090">a #ClutterGstCamera</doc>
            <type name="Camera" c:type="ClutterGstCamera*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="1091">The value to set</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_hue" c:identifier="clutter_gst_camera_set_hue">
        <source-position filename="clutter-gst-camera.h" line="181"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Camera" c:type="ClutterGstCamera*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_photo_profile"
              c:identifier="clutter_gst_camera_set_photo_profile">
        <doc xml:space="preserve"
             filename="clutter-gst-camera.c"
             line="1669">Set the encoding profile to be used for photo captures.
The default profile saves photos as JPEG images.</doc>
        <source-position filename="clutter-gst-camera.h" line="198"/>
        <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"
                 filename="clutter-gst-camera.c"
                 line="1671">a #ClutterGstCamera</doc>
            <type name="Camera" c:type="ClutterGstCamera*"/>
          </instance-parameter>
          <parameter name="profile" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="1672">A #GstEncodingProfile to be used for photo captures.</doc>
            <type name="GstPbutils.EncodingProfile"
                  c:type="GstEncodingProfile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_saturation"
              c:identifier="clutter_gst_camera_set_saturation">
        <source-position filename="clutter-gst-camera.h" line="173"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Camera" c:type="ClutterGstCamera*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_video_profile"
              c:identifier="clutter_gst_camera_set_video_profile">
        <doc xml:space="preserve"
             filename="clutter-gst-camera.c"
             line="1564">Set the encoding profile to be used for video recording.
The default profile saves videos as Ogg/Theora videos.</doc>
        <source-position filename="clutter-gst-camera.h" line="191"/>
        <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"
                 filename="clutter-gst-camera.c"
                 line="1566">a #ClutterGstCamera</doc>
            <type name="Camera" c:type="ClutterGstCamera*"/>
          </instance-parameter>
          <parameter name="profile" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="1567">A #GstEncodingProfile to be used for video recording.</doc>
            <type name="GstPbutils.EncodingProfile"
                  c:type="GstEncodingProfile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="start_video_recording"
              c:identifier="clutter_gst_camera_start_video_recording">
        <doc xml:space="preserve"
             filename="clutter-gst-camera.c"
             line="1588">Start a video recording with the @self and save it to @filename.
This method requires that @self is playing and ready for capture.

The ::video-saved signal will be emitted when the video is saved.</doc>
        <source-position filename="clutter-gst-camera.h" line="194"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-camera.c"
               line="1599">%TRUE if the video recording was successfully started, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="1590">a #ClutterGstCamera</doc>
            <type name="Camera" c:type="ClutterGstCamera*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="1591">the name of the video file to where the
recording will be saved</doc>
            <type name="filename" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="stop_video_recording"
              c:identifier="clutter_gst_camera_stop_video_recording">
        <doc xml:space="preserve"
             filename="clutter-gst-camera.c"
             line="1630">Stop recording video on the @self.</doc>
        <source-position filename="clutter-gst-camera.h" line="196"/>
        <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"
                 filename="clutter-gst-camera.c"
                 line="1632">a #ClutterGstCamera</doc>
            <type name="Camera" c:type="ClutterGstCamera*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="supports_color_balance"
              c:identifier="clutter_gst_camera_supports_color_balance">
        <doc xml:space="preserve"
             filename="clutter-gst-camera.c"
             line="1120">Check whether the @self supports color balance.</doc>
        <source-position filename="clutter-gst-camera.h" line="135"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-camera.c"
               line="1126">%TRUE if @self supports color balance, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="1122">a #ClutterGstCamera</doc>
            <type name="Camera" c:type="ClutterGstCamera*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="supports_gamma_correction"
              c:identifier="clutter_gst_camera_supports_gamma_correction">
        <doc xml:space="preserve"
             filename="clutter-gst-camera.c"
             line="996">Check whether the @self supports gamma correction.</doc>
        <source-position filename="clutter-gst-camera.h" line="124"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-camera.c"
               line="1002">%TRUE if @self supports gamma correction, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="998">a #ClutterGstCamera</doc>
            <type name="Camera" c:type="ClutterGstCamera*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="take_photo" c:identifier="clutter_gst_camera_take_photo">
        <doc xml:space="preserve"
             filename="clutter-gst-camera.c"
             line="1693">Take a photo with the @self and save it to @filename.
This method requires that @self is playing and ready for capture.

The ::photo-saved signal will be emitted when the video is saved.</doc>
        <source-position filename="clutter-gst-camera.h" line="200"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-camera.c"
               line="1704">%TRUE if the photo was successfully captured, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="1695">a #ClutterGstCamera</doc>
            <type name="Camera" c:type="ClutterGstCamera*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="1696">the name of the file to where the
photo will be saved</doc>
            <type name="filename" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="take_photo_pixbuf"
              c:identifier="clutter_gst_camera_take_photo_pixbuf">
        <doc xml:space="preserve"
             filename="clutter-gst-camera.c"
             line="1736">Take a photo with the @self and emit it in the ::photo-taken signal as a
#GdkPixbuf.
This method requires that @self is playing and ready for capture.</doc>
        <source-position filename="clutter-gst-camera.h" line="202"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-camera.c"
               line="1744">%TRUE if the photo was successfully captured, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="1738">a #ClutterGstCamera</doc>
            <type name="Camera" c:type="ClutterGstCamera*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="device" writable="1" transfer-ownership="none">
        <type name="CameraDevice"/>
      </property>
      <field name="parent" readable="0" private="1">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="CameraPrivate" c:type="ClutterGstCameraPrivate*"/>
      </field>
      <glib:signal name="photo-saved" when="last" action="1">
        <doc xml:space="preserve"
             filename="clutter-gst-camera.c"
             line="363">The ::photo-saved signal is emitted when a photo was saved to disk.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="photo-taken" when="last" action="1">
        <doc xml:space="preserve"
             filename="clutter-gst-camera.c"
             line="377">The ::photo-taken signal is emitted when a photo was taken.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="pixbuf" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="380">the photo taken as a #GdkPixbuf</doc>
            <type name="GdkPixbuf.Pixbuf"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="ready-for-capture" when="last">
        <doc xml:space="preserve"
             filename="clutter-gst-camera.c"
             line="346">The ::ready-for-capture signal is emitted whenever the value of
clutter_gst_camera_is_ready_for_capture changes.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="ready" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera.c"
                 line="349">whether the @self is ready for a new capture</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="video-saved" when="last" action="1">
        <doc xml:space="preserve"
             filename="clutter-gst-camera.c"
             line="392">The ::video-saved signal is emitted when a video was saved to disk.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="CameraClass"
            c:type="ClutterGstCameraClass"
            glib:is-gtype-struct-for="Camera">
      <doc xml:space="preserve"
           filename="clutter-gst-camera.h"
           line="89">Base class for #ClutterGstCamera.</doc>
      <source-position filename="clutter-gst-camera.h" line="113"/>
      <field name="parent_class" readable="0" private="1">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="ready_for_capture">
        <callback name="ready_for_capture">
          <source-position filename="clutter-gst-camera.h" line="99"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Camera" c:type="ClutterGstCamera*"/>
            </parameter>
            <parameter name="ready" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="photo_saved">
        <callback name="photo_saved">
          <source-position filename="clutter-gst-camera.h" line="101"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Camera" c:type="ClutterGstCamera*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="photo_taken">
        <callback name="photo_taken">
          <source-position filename="clutter-gst-camera.h" line="102"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Camera" c:type="ClutterGstCamera*"/>
            </parameter>
            <parameter name="pixbuf" transfer-ownership="none">
              <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="video_saved">
        <callback name="video_saved">
          <source-position filename="clutter-gst-camera.h" line="104"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Camera" c:type="ClutterGstCamera*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_clutter_reserved1" introspectable="0">
        <callback name="_clutter_reserved1">
          <source-position filename="clutter-gst-camera.h" line="107"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_clutter_reserved2" introspectable="0">
        <callback name="_clutter_reserved2">
          <source-position filename="clutter-gst-camera.h" line="108"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_clutter_reserved3" introspectable="0">
        <callback name="_clutter_reserved3">
          <source-position filename="clutter-gst-camera.h" line="109"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_clutter_reserved4" introspectable="0">
        <callback name="_clutter_reserved4">
          <source-position filename="clutter-gst-camera.h" line="110"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_clutter_reserved5" introspectable="0">
        <callback name="_clutter_reserved5">
          <source-position filename="clutter-gst-camera.h" line="111"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_clutter_reserved6" introspectable="0">
        <callback name="_clutter_reserved6">
          <source-position filename="clutter-gst-camera.h" line="112"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <class name="CameraDevice"
           c:symbol-prefix="camera_device"
           c:type="ClutterGstCameraDevice"
           parent="GObject.Object"
           glib:type-name="ClutterGstCameraDevice"
           glib:get-type="clutter_gst_camera_device_get_type"
           glib:type-struct="CameraDeviceClass">
      <doc xml:space="preserve"
           filename="clutter-gst-camera-device.h"
           line="66">GObject representing a camera device using GStreamer.

The #ClutterGstCameraDevice structure contains only private data and
should not be accessed directly.</doc>
      <source-position filename="clutter-gst-camera-device.h" line="102"/>
      <virtual-method name="capture_resolution_changed">
        <source-position filename="clutter-gst-camera-device.h" line="91"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <type name="CameraDevice" c:type="ClutterGstCameraDevice*"/>
          </instance-parameter>
          <parameter name="width" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_capture_resolution"
              c:identifier="clutter_gst_camera_device_get_capture_resolution">
        <doc xml:space="preserve"
             filename="clutter-gst-camera-device.c"
             line="466">Retrieve the current capture resolution being used by @device.</doc>
        <source-position filename="clutter-gst-camera-device.h" line="110"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera-device.c"
                 line="468">a #ClutterGstCameraDevice</doc>
            <type name="CameraDevice" c:type="ClutterGstCameraDevice*"/>
          </instance-parameter>
          <parameter name="width"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera-device.c"
                 line="469">Pointer to store the current capture resolution width</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="height"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera-device.c"
                 line="470">Pointer to store the current capture resolution height</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_name"
              c:identifier="clutter_gst_camera_device_get_name"
              glib:get-property="name">
        <doc xml:space="preserve"
             filename="clutter-gst-camera-device.c"
             line="433">Retrieve the name of the @device.</doc>
        <source-position filename="clutter-gst-camera-device.h" line="107"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-camera-device.c"
               line="439">the device name.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera-device.c"
                 line="435">a #ClutterGstCameraDevice</doc>
            <type name="CameraDevice" c:type="ClutterGstCameraDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_node"
              c:identifier="clutter_gst_camera_device_get_node"
              glib:get-property="node">
        <doc xml:space="preserve"
             filename="clutter-gst-camera-device.c"
             line="417">Retrieve the node (location) of the @device.</doc>
        <source-position filename="clutter-gst-camera-device.h" line="106"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-camera-device.c"
               line="423">the device node.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera-device.c"
                 line="419">a #ClutterGstCameraDevice</doc>
            <type name="CameraDevice" c:type="ClutterGstCameraDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_supported_resolutions"
              c:identifier="clutter_gst_camera_device_get_supported_resolutions">
        <doc xml:space="preserve"
             filename="clutter-gst-camera-device.c"
             line="449">Retrieve the supported resolutions of the @device.</doc>
        <source-position filename="clutter-gst-camera-device.h" line="109"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-camera-device.c"
               line="455">an array of #ClutterGstVideoResolution with the
                               supported resolutions.</doc>
          <array name="GLib.PtrArray" c:type="const GPtrArray*">
            <type name="VideoResolution"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera-device.c"
                 line="451">a #ClutterGstCameraDevice</doc>
            <type name="CameraDevice" c:type="ClutterGstCameraDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_capture_resolution"
              c:identifier="clutter_gst_camera_device_set_capture_resolution">
        <doc xml:space="preserve"
             filename="clutter-gst-camera-device.c"
             line="491">Set the capture resolution to be used by @device.</doc>
        <source-position filename="clutter-gst-camera-device.h" line="113"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera-device.c"
                 line="493">a #ClutterGstCameraDevice</doc>
            <type name="CameraDevice" c:type="ClutterGstCameraDevice*"/>
          </instance-parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera-device.c"
                 line="494">The new capture resolution width to use</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera-device.c"
                 line="495">The new capture resolution height to use</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <property name="element-factory"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="clutter-gst-camera-device.c"
             line="345">The GstElementFactory for this device.</doc>
        <type name="Gst.ElementFactory"/>
      </property>
      <property name="name"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_name">
        <doc xml:space="preserve"
             filename="clutter-gst-camera-device.c"
             line="369">The device name.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="node"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_node">
        <doc xml:space="preserve"
             filename="clutter-gst-camera-device.c"
             line="357">The device node.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent" readable="0" private="1">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="CameraDevicePrivate"
              c:type="ClutterGstCameraDevicePrivate*"/>
      </field>
      <glib:signal name="capture-resolution-changed" when="last">
        <doc xml:space="preserve"
             filename="clutter-gst-camera-device.c"
             line="381">The ::capture-resolution-changed signal is emitted whenever the value of
clutter_gst_camera_device_get_capture_resolution changes.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera-device.c"
                 line="384">The new width</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera-device.c"
                 line="385">The new height</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="CameraDeviceClass"
            c:type="ClutterGstCameraDeviceClass"
            glib:is-gtype-struct-for="CameraDevice">
      <doc xml:space="preserve"
           filename="clutter-gst-camera-device.h"
           line="81">Base class for #ClutterGstCameraDevice.</doc>
      <source-position filename="clutter-gst-camera-device.h" line="102"/>
      <field name="parent_class" readable="0" private="1">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="capture_resolution_changed">
        <callback name="capture_resolution_changed">
          <source-position filename="clutter-gst-camera-device.h" line="91"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="device" transfer-ownership="none">
              <type name="CameraDevice" c:type="ClutterGstCameraDevice*"/>
            </parameter>
            <parameter name="width" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="height" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_clutter_reserved1" introspectable="0">
        <callback name="_clutter_reserved1">
          <source-position filename="clutter-gst-camera-device.h" line="96"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_clutter_reserved2" introspectable="0">
        <callback name="_clutter_reserved2">
          <source-position filename="clutter-gst-camera-device.h" line="97"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_clutter_reserved3" introspectable="0">
        <callback name="_clutter_reserved3">
          <source-position filename="clutter-gst-camera-device.h" line="98"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_clutter_reserved4" introspectable="0">
        <callback name="_clutter_reserved4">
          <source-position filename="clutter-gst-camera-device.h" line="99"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_clutter_reserved5" introspectable="0">
        <callback name="_clutter_reserved5">
          <source-position filename="clutter-gst-camera-device.h" line="100"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_clutter_reserved6" introspectable="0">
        <callback name="_clutter_reserved6">
          <source-position filename="clutter-gst-camera-device.h" line="101"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="CameraDevicePrivate"
            c:type="ClutterGstCameraDevicePrivate"
            disguised="1">
      <source-position filename="clutter-gst-camera-device.h" line="64"/>
    </record>
    <class name="CameraManager"
           c:symbol-prefix="camera_manager"
           c:type="ClutterGstCameraManager"
           parent="GObject.Object"
           glib:type-name="ClutterGstCameraManager"
           glib:get-type="clutter_gst_camera_manager_get_type"
           glib:type-struct="CameraManagerClass">
      <doc xml:space="preserve"
           filename="clutter-gst-camera-manager.h"
           line="65">An object to list available cameras on the system.

The #ClutterGstCameraManager structure contains only private data and
should not be accessed directly.</doc>
      <source-position filename="clutter-gst-camera-manager.h" line="90"/>
      <function name="get_default"
                c:identifier="clutter_gst_camera_manager_get_default">
        <doc xml:space="preserve"
             filename="clutter-gst-camera-manager.c"
             line="340">Get the camera manager.

&lt;note&gt;This function has to be called from Clutter's main
thread.&lt;/note&gt;</doc>
        <source-position filename="clutter-gst-camera-manager.h" line="94"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-camera-manager.c"
               line="348">the default camera manager.</doc>
          <type name="CameraManager" c:type="ClutterGstCameraManager*"/>
        </return-value>
      </function>
      <method name="get_camera_devices"
              c:identifier="clutter_gst_camera_manager_get_camera_devices">
        <doc xml:space="preserve"
             filename="clutter-gst-camera-manager.c"
             line="361">Retrieve an array of supported camera devices.</doc>
        <source-position filename="clutter-gst-camera-manager.h" line="96"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-camera-manager.c"
               line="367">An array of #ClutterGstCameraDevice representing
                               the supported camera devices</doc>
          <array name="GLib.PtrArray" c:type="const GPtrArray*">
            <type name="CameraDevice"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera-manager.c"
                 line="363">a #ClutterGstCameraManager</doc>
            <type name="CameraManager" c:type="ClutterGstCameraManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent" readable="0" private="1">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="CameraManagerPrivate"
              c:type="ClutterGstCameraManagerPrivate*"/>
      </field>
      <glib:signal name="camera-added" when="last">
        <doc xml:space="preserve"
             filename="clutter-gst-camera-manager.c"
             line="133">The ::camera-added signal is emitted whenever a new camera device
is available.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="camera_device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera-manager.c"
                 line="136">a camera device added</doc>
            <type name="CameraDevice"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="camera-removed" when="last">
        <doc xml:space="preserve"
             filename="clutter-gst-camera-manager.c"
             line="151">The ::camera-removed signal is emitted whenever a camera device
is unplugged/removed from the system.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="camera_device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-camera-manager.c"
                 line="154">a camera device</doc>
            <type name="CameraDevice"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="CameraManagerClass"
            c:type="ClutterGstCameraManagerClass"
            glib:is-gtype-struct-for="CameraManager">
      <doc xml:space="preserve"
           filename="clutter-gst-camera-manager.h"
           line="81">Base class for #ClutterGstCamera.</doc>
      <source-position filename="clutter-gst-camera-manager.h" line="90"/>
      <field name="parent_class" readable="0" private="1">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="CameraManagerPrivate"
            c:type="ClutterGstCameraManagerPrivate"
            disguised="1">
      <source-position filename="clutter-gst-camera-manager.h" line="63"/>
    </record>
    <record name="CameraPrivate"
            c:type="ClutterGstCameraPrivate"
            disguised="1">
      <source-position filename="clutter-gst-camera.h" line="71"/>
    </record>
    <class name="Content"
           c:symbol-prefix="content"
           c:type="ClutterGstContent"
           version="0.0"
           parent="GObject.Object"
           glib:type-name="ClutterGstContent"
           glib:get-type="clutter_gst_content_get_type"
           glib:type-struct="ContentClass">
      <doc xml:space="preserve"
           filename="clutter-gst-content.h"
           line="48">The #ClutterGstContent structure contains only private data
and should be accessed using the provided API</doc>
      <source-position filename="clutter-gst-content.h" line="80"/>
      <implements name="Clutter.Content"/>
      <function name="new" c:identifier="clutter_gst_content_new">
        <source-position filename="clutter-gst-content.h" line="84"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="clutter-gst-content.c"
               line="608">a new #ClutterGstContent instance</doc>
          <type name="Clutter.Content" c:type="ClutterContent*"/>
        </return-value>
      </function>
      <function name="new_with_sink"
                c:identifier="clutter_gst_content_new_with_sink"
                version="3.0">
        <source-position filename="clutter-gst-content.h" line="86"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="clutter-gst-content.c"
               line="621">a new #ClutterGstContent instance</doc>
          <type name="Clutter.Content" c:type="ClutterContent*"/>
        </return-value>
        <parameters>
          <parameter name="sink" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-content.c"
                 line="619">A #ClutterGstVideoSink</doc>
            <type name="VideoSink" c:type="ClutterGstVideoSink*"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="has_painting_content">
        <source-position filename="clutter-gst-content.h" line="77"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Content" c:type="ClutterGstContent*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="get_frame"
              c:identifier="clutter_gst_content_get_frame"
              glib:get-property="frame"
              version="3.0">
        <source-position filename="clutter-gst-content.h" line="88"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-content.c"
               line="637">The #ClutterGstFrame currently attached to @self.</doc>
          <type name="Frame" c:type="ClutterGstFrame*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-content.c"
                 line="635">A #ClutterGstContent</doc>
            <type name="Content" c:type="ClutterGstContent*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_overlays"
              c:identifier="clutter_gst_content_get_overlays"
              version="3.0">
        <source-position filename="clutter-gst-content.h" line="93"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-content.c"
               line="671">The #ClutterGstOverlays currently attached to @self.</doc>
          <type name="Overlays" c:type="ClutterGstOverlays*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-content.c"
                 line="669">A #ClutterGstContent</doc>
            <type name="Content" c:type="ClutterGstContent*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_player"
              c:identifier="clutter_gst_content_get_player"
              glib:get-property="player"
              version="3.0">
        <source-position filename="clutter-gst-content.h" line="100"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-content.c"
               line="720">The #ClutterGstPlayer currently attached to @self.</doc>
          <type name="Player" c:type="ClutterGstPlayer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-content.c"
                 line="718">A #ClutterGstContent</doc>
            <type name="Content" c:type="ClutterGstContent*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_sink"
              c:identifier="clutter_gst_content_get_sink"
              glib:get-property="sink"
              version="3.0">
        <source-position filename="clutter-gst-content.h" line="98"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-content.c"
               line="687">The #ClutterGstVideoSink currently attached to @self.</doc>
          <type name="VideoSink" c:type="ClutterGstVideoSink*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-content.c"
                 line="685">A #ClutterGstContent</doc>
            <type name="Content" c:type="ClutterGstContent*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_frame"
              c:identifier="clutter_gst_content_set_frame"
              glib:set-property="frame"
              version="3.0">
        <doc xml:space="preserve"
             filename="clutter-gst-content.c"
             line="649">Set the current frame.</doc>
        <source-position filename="clutter-gst-content.h" line="90"/>
        <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"
                 filename="clutter-gst-content.c"
                 line="651">A #ClutterGstContent</doc>
            <type name="Content" c:type="ClutterGstContent*"/>
          </instance-parameter>
          <parameter name="frame" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-content.c"
                 line="652">A #ClutterGstFrame</doc>
            <type name="Frame" c:type="ClutterGstFrame*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_player"
              c:identifier="clutter_gst_content_set_player"
              glib:set-property="player"
              version="3.0">
        <source-position filename="clutter-gst-content.h" line="102"/>
        <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"
                 filename="clutter-gst-content.c"
                 line="734">A #ClutterGstContent</doc>
            <type name="Content" c:type="ClutterGstContent*"/>
          </instance-parameter>
          <parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-content.c"
                 line="735">A #ClutterGstPlayer or %NULL</doc>
            <type name="Player" c:type="ClutterGstPlayer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_sink"
              c:identifier="clutter_gst_content_set_sink"
              glib:set-property="sink"
              version="3.0">
        <source-position filename="clutter-gst-content.h" line="95"/>
        <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"
                 filename="clutter-gst-content.c"
                 line="701">A #ClutterGstContent</doc>
            <type name="Content" c:type="ClutterGstContent*"/>
          </instance-parameter>
          <parameter name="sink" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-content.c"
                 line="702">A #ClutterGstVideoSink or %NULL</doc>
            <type name="VideoSink" c:type="ClutterGstVideoSink*"/>
          </parameter>
        </parameters>
      </method>
      <property name="frame"
                writable="1"
                transfer-ownership="none"
                setter="set_frame"
                getter="get_frame">
        <type name="Frame"/>
      </property>
      <property name="paint-frame" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="paint-overlays" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="player"
                writable="1"
                transfer-ownership="none"
                setter="set_player"
                getter="get_player">
        <type name="GObject.Object"/>
      </property>
      <property name="sink"
                writable="1"
                transfer-ownership="none"
                setter="set_sink"
                getter="get_sink">
        <type name="VideoSink"/>
      </property>
      <field name="parent" readable="0" private="1">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="ContentPrivate" c:type="ClutterGstContentPrivate*"/>
      </field>
      <glib:signal name="size-change" when="last">
        <doc xml:space="preserve"
             filename="clutter-gst-content.c"
             line="569">The ::size-change signal is emitted each time the video size changes.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-content.c"
                 line="572">new width of the frames</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-content.c"
                 line="573">new height of the frames</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="ContentClass"
            c:type="ClutterGstContentClass"
            glib:is-gtype-struct-for="Content"
            version="0.0">
      <doc xml:space="preserve"
           filename="clutter-gst-content.h"
           line="64">The #ClutterGstContentClass structure contains only private data
and should be accessed using the provided API</doc>
      <source-position filename="clutter-gst-content.h" line="80"/>
      <field name="parent_class" readable="0" private="1">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="has_painting_content">
        <callback name="has_painting_content">
          <source-position filename="clutter-gst-content.h" line="77"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Content" c:type="ClutterGstContent*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_padding_dummy" readable="0" private="1">
        <array zero-terminated="0" fixed-size="10">
          <type name="gpointer" c:type="void*"/>
        </array>
      </field>
    </record>
    <record name="ContentPrivate"
            c:type="ClutterGstContentPrivate"
            disguised="1">
      <source-position filename="clutter-gst-content.h" line="44"/>
    </record>
    <class name="Crop"
           c:symbol-prefix="crop"
           c:type="ClutterGstCrop"
           parent="Content"
           glib:type-name="ClutterGstCrop"
           glib:get-type="clutter_gst_crop_get_type"
           glib:type-struct="CropClass">
      <doc xml:space="preserve"
           filename="clutter-gst-crop.h"
           line="68">Implementation of #ClutterGstContent that displays a sub region of
video streams.

The #ClutterGstCrop structure contains only private data and
should not be accessed directly.</doc>
      <source-position filename="clutter-gst-crop.h" line="96"/>
      <implements name="Clutter.Content"/>
      <constructor name="new" c:identifier="clutter_gst_crop_new">
        <source-position filename="clutter-gst-crop.h" line="100"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="clutter-gst-crop.c"
               line="494">a new #ClutterGstCrop instance</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
      </constructor>
      <property name="cull-backface"
                version="3.0"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="clutter-gst-crop.c"
             line="433">Whether to cull the backface of the actor</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="input-region"
                version="3.0"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="clutter-gst-crop.c"
             line="447">Input region in the video frame (all values between 0 and 1).</doc>
        <type name="Box"/>
      </property>
      <property name="output-region"
                version="3.0"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="clutter-gst-crop.c"
             line="461">Output region in the actor's allocation (all values between 0 and 1).</doc>
        <type name="Box"/>
      </property>
      <property name="paint-borders"
                version="3.0"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="clutter-gst-crop.c"
             line="419">Whether or not paint borders on the sides of the video</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent" readable="0" private="1">
        <type name="Content" c:type="ClutterGstContent"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="CropPrivate" c:type="ClutterGstCropPrivate*"/>
      </field>
    </class>
    <record name="CropClass"
            c:type="ClutterGstCropClass"
            glib:is-gtype-struct-for="Crop">
      <doc xml:space="preserve"
           filename="clutter-gst-crop.h"
           line="85">Base class for #ClutterGstCrop.</doc>
      <source-position filename="clutter-gst-crop.h" line="96"/>
      <field name="parent_class" readable="0" private="1">
        <type name="ContentClass" c:type="ClutterGstContentClass"/>
      </field>
      <field name="_padding_dummy" readable="0" private="1">
        <array zero-terminated="0" fixed-size="8">
          <type name="gpointer" c:type="void*"/>
        </array>
      </field>
    </record>
    <record name="CropPrivate" c:type="ClutterGstCropPrivate" disguised="1">
      <source-position filename="clutter-gst-crop.h" line="66"/>
    </record>
    <record name="Frame"
            c:type="ClutterGstFrame"
            version="3.0"
            glib:type-name="ClutterGstFrame"
            glib:get-type="clutter_gst_frame_get_type"
            c:symbol-prefix="frame">
      <doc xml:space="preserve"
           filename="clutter-gst-types.h"
           line="117">Represents a frame outputted by the #ClutterGstVideoSink.</doc>
      <source-position filename="clutter-gst-types.h" line="130"/>
      <field name="resolution" writable="1">
        <doc xml:space="preserve"
             filename="clutter-gst-types.h"
             line="119">a #ClutterGstVideoResolution</doc>
        <type name="VideoResolution" c:type="ClutterGstVideoResolution"/>
      </field>
      <field name="pipeline" introspectable="0" writable="1">
        <doc xml:space="preserve"
             filename="clutter-gst-types.h"
             line="120">a #CoglPipeline to paint a frame</doc>
        <type c:type="CoglPipeline*"/>
      </field>
    </record>
    <function-macro name="IS_ASPECTRATIO"
                    c:identifier="CLUTTER_GST_IS_ASPECTRATIO"
                    introspectable="0">
      <source-position filename="clutter-gst-aspectratio.h" line="53"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_ASPECTRATIO_CLASS"
                    c:identifier="CLUTTER_GST_IS_ASPECTRATIO_CLASS"
                    introspectable="0">
      <source-position filename="clutter-gst-aspectratio.h" line="57"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CAMERA"
                    c:identifier="CLUTTER_GST_IS_CAMERA"
                    introspectable="0">
      <source-position filename="clutter-gst-camera.h" line="57"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CAMERA_CLASS"
                    c:identifier="CLUTTER_GST_IS_CAMERA_CLASS"
                    introspectable="0">
      <source-position filename="clutter-gst-camera.h" line="61"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CAMERA_DEVICE"
                    c:identifier="CLUTTER_GST_IS_CAMERA_DEVICE"
                    introspectable="0">
      <source-position filename="clutter-gst-camera-device.h" line="50"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CAMERA_DEVICE_CLASS"
                    c:identifier="CLUTTER_GST_IS_CAMERA_DEVICE_CLASS"
                    introspectable="0">
      <source-position filename="clutter-gst-camera-device.h" line="54"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CAMERA_MANAGER"
                    c:identifier="CLUTTER_GST_IS_CAMERA_MANAGER"
                    introspectable="0">
      <source-position filename="clutter-gst-camera-manager.h" line="49"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CAMERA_MANAGER_CLASS"
                    c:identifier="CLUTTER_GST_IS_CAMERA_MANAGER_CLASS"
                    introspectable="0">
      <source-position filename="clutter-gst-camera-manager.h" line="53"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CONTENT"
                    c:identifier="CLUTTER_GST_IS_CONTENT"
                    introspectable="0">
      <source-position filename="clutter-gst-content.h" line="37"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CONTENT_CLASS"
                    c:identifier="CLUTTER_GST_IS_CONTENT_CLASS"
                    introspectable="0">
      <source-position filename="clutter-gst-content.h" line="39"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CROP"
                    c:identifier="CLUTTER_GST_IS_CROP"
                    introspectable="0">
      <source-position filename="clutter-gst-crop.h" line="52"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CROP_CLASS"
                    c:identifier="CLUTTER_GST_IS_CROP_CLASS"
                    introspectable="0">
      <source-position filename="clutter-gst-crop.h" line="56"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PLAYBACK"
                    c:identifier="CLUTTER_GST_IS_PLAYBACK"
                    introspectable="0">
      <source-position filename="clutter-gst-playback.h" line="60"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PLAYBACK_CLASS"
                    c:identifier="CLUTTER_GST_IS_PLAYBACK_CLASS"
                    introspectable="0">
      <source-position filename="clutter-gst-playback.h" line="64"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PLAYER"
                    c:identifier="CLUTTER_GST_IS_PLAYER"
                    introspectable="0">
      <source-position filename="clutter-gst-player.h" line="55"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_VIDEO_SINK"
                    c:identifier="CLUTTER_GST_IS_VIDEO_SINK"
                    introspectable="0">
      <source-position filename="clutter-gst-video-sink.h" line="54"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_VIDEO_SINK_CLASS"
                    c:identifier="CLUTTER_GST_IS_VIDEO_SINK_CLASS"
                    introspectable="0">
      <source-position filename="clutter-gst-video-sink.h" line="58"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="MAJOR_VERSION"
              value="3"
              c:type="CLUTTER_GST_MAJOR_VERSION">
      <doc xml:space="preserve"
           filename="clutter-gst-version.h"
           line="40">ClutterGst major version (e.g. "1", if %CLUTTER_GST_VERSION is "1.2.3")</doc>
      <source-position filename="clutter-gst-version.h" line="45"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MICRO_VERSION"
              value="27"
              c:type="CLUTTER_GST_MICRO_VERSION">
      <doc xml:space="preserve"
           filename="clutter-gst-version.h"
           line="54">ClutterGst micro version (e.g. "3", if %CLUTTER_GST_VERSION is "1.2.3")</doc>
      <source-position filename="clutter-gst-version.h" line="59"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MINOR_VERSION"
              value="0"
              c:type="CLUTTER_GST_MINOR_VERSION">
      <doc xml:space="preserve"
           filename="clutter-gst-version.h"
           line="47">ClutterGst minor version (e.g. "2", if %CLUTTER_GST_VERSION is "1.2.3")</doc>
      <source-position filename="clutter-gst-version.h" line="52"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <record name="Overlay"
            c:type="ClutterGstOverlay"
            version="3.0"
            glib:type-name="ClutterGstOverlay"
            glib:get-type="clutter_gst_overlay_get_type"
            c:symbol-prefix="overlay">
      <doc xml:space="preserve"
           filename="clutter-gst-types.h"
           line="132">Represents a video overlay outputted by the #ClutterGstVideoSink.</doc>
      <source-position filename="clutter-gst-types.h" line="146"/>
      <field name="position" writable="1">
        <doc xml:space="preserve"
             filename="clutter-gst-types.h"
             line="134">a #ClutterGstBox representing the position of the
           overlay within a #ClutterGstFrame.</doc>
        <type name="Box" c:type="ClutterGstBox"/>
      </field>
      <field name="pipeline" introspectable="0" writable="1">
        <doc xml:space="preserve"
             filename="clutter-gst-types.h"
             line="136">a #CoglPipeline to paint an overlay</doc>
        <type c:type="CoglPipeline*"/>
      </field>
    </record>
    <record name="Overlays"
            c:type="ClutterGstOverlays"
            version="3.0"
            glib:type-name="ClutterGstOverlays"
            glib:get-type="clutter_gst_overlays_get_type"
            c:symbol-prefix="overlays">
      <source-position filename="clutter-gst-types.h" line="157"/>
      <field name="overlays" writable="1">
        <doc xml:space="preserve"
             filename="clutter-gst-types.h"
             line="150">an array of #ClutterGstOverlay</doc>
        <array name="GLib.PtrArray" c:type="GPtrArray*">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <function-macro name="PLAYBACK"
                    c:identifier="CLUTTER_GST_PLAYBACK"
                    introspectable="0">
      <source-position filename="clutter-gst-playback.h" line="50"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PLAYBACK_CLASS"
                    c:identifier="CLUTTER_GST_PLAYBACK_CLASS"
                    introspectable="0">
      <source-position filename="clutter-gst-playback.h" line="55"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PLAYBACK_GET_CLASS"
                    c:identifier="CLUTTER_GST_PLAYBACK_GET_CLASS"
                    introspectable="0">
      <source-position filename="clutter-gst-playback.h" line="68"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PLAYER"
                    c:identifier="CLUTTER_GST_PLAYER"
                    introspectable="0">
      <source-position filename="clutter-gst-player.h" line="51"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PLAYER_GET_INTERFACE"
                    c:identifier="CLUTTER_GST_PLAYER_GET_INTERFACE"
                    introspectable="0">
      <source-position filename="clutter-gst-player.h" line="58"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="Playback"
           c:symbol-prefix="playback"
           c:type="ClutterGstPlayback"
           parent="GObject.Object"
           glib:type-name="ClutterGstPlayback"
           glib:get-type="clutter_gst_playback_get_type"
           glib:type-struct="PlaybackClass">
      <doc xml:space="preserve"
           filename="clutter-gst-playback.h"
           line="77">Implementation of #ClutterGstPlayback that displays media streams
using GStreamer.

The #ClutterGstPlayback structure contains only private data and
should not be accessed directly.</doc>
      <source-position filename="clutter-gst-playback.h" line="108"/>
      <implements name="Player"/>
      <constructor name="new" c:identifier="clutter_gst_playback_new">
        <source-position filename="clutter-gst-playback.h" line="112"/>
        <return-value transfer-ownership="full">
          <type name="Playback" c:type="ClutterGstPlayback*"/>
        </return-value>
      </constructor>
      <virtual-method name="should_buffer">
        <source-position filename="clutter-gst-playback.h" line="106"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Playback" c:type="ClutterGstPlayback*"/>
          </instance-parameter>
          <parameter name="query" transfer-ownership="none">
            <type name="Gst.Query" c:type="GstQuery*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_audio_stream"
              c:identifier="clutter_gst_playback_get_audio_stream"
              glib:get-property="audio-stream"
              version="1.4">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="2512">Get the current audio stream. The number returned in the index of the
audio stream playing in the list returned by
clutter_gst_playback_get_audio_streams().</doc>
        <source-position filename="clutter-gst-playback.h" line="140"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-playback.c"
               line="2520">the index of the current audio stream, -1 if the media has no
audio stream</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-playback.c"
                 line="2514">a #ClutterGstPlayback</doc>
            <type name="Playback" c:type="ClutterGstPlayback*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_audio_streams"
              c:identifier="clutter_gst_playback_get_audio_streams"
              glib:get-property="audio-streams"
              version="1.4">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="2480">Get the list of audio streams of the current media.</doc>
        <source-position filename="clutter-gst-playback.h" line="139"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-playback.c"
               line="2486">a list of
strings describing the available audio streams</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-playback.c"
                 line="2482">a #ClutterGstPlayback</doc>
            <type name="Playback" c:type="ClutterGstPlayback*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_buffer_duration"
              c:identifier="clutter_gst_playback_get_buffer_duration">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="2437">Retrieves the buffer duration when buffering network streams.</doc>
        <source-position filename="clutter-gst-playback.h" line="135"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-playback.c"
               line="2443">The buffer duration</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-playback.c"
                 line="2439">a #ClutterGstPlayback</doc>
            <type name="Playback" c:type="ClutterGstPlayback*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_buffer_fill"
              c:identifier="clutter_gst_playback_get_buffer_fill"
              glib:get-property="buffer-fill">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="2374">Retrieves the amount of the stream that is buffered.</doc>
        <source-position filename="clutter-gst-playback.h" line="131"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-playback.c"
               line="2380">the fill level, between 0.0 and 1.0</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-playback.c"
                 line="2376">a #ClutterGstPlayback</doc>
            <type name="Playback" c:type="ClutterGstPlayback*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_buffer_size"
              c:identifier="clutter_gst_playback_get_buffer_size">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="2394">Retrieves the buffer size when buffering network streams.</doc>
        <source-position filename="clutter-gst-playback.h" line="132"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-playback.c"
               line="2400">The buffer size</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-playback.c"
                 line="2396">a #ClutterGstPlayback</doc>
            <type name="Playback" c:type="ClutterGstPlayback*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_buffering_mode"
              c:identifier="clutter_gst_playback_get_buffering_mode"
              version="1.4">
        <source-position filename="clutter-gst-playback.h" line="128"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-playback.c"
               line="2313">a #ClutterGstBufferingMode</doc>
          <type name="BufferingMode" c:type="ClutterGstBufferingMode"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-playback.c"
                 line="2311">a #ClutterGstPlayback</doc>
            <type name="Playback" c:type="ClutterGstPlayback*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_duration"
              c:identifier="clutter_gst_playback_get_duration"
              glib:get-property="duration">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="2844">Retrieves the duration of the media stream that @self represents.</doc>
        <source-position filename="clutter-gst-playback.h" line="163"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-playback.c"
               line="2850">the duration of the media stream, in seconds</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-playback.c"
                 line="2846">a #ClutterGstPlayback</doc>
            <type name="Playback" c:type="ClutterGstPlayback*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_in_seek"
              c:identifier="clutter_gst_playback_get_in_seek"
              glib:get-property="in-seek"
              version="1.6">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="2762">Whether the player is seeking.</doc>
        <source-position filename="clutter-gst-playback.h" line="157"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-playback.c"
               line="2768">TRUE if the player is seeking, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-playback.c"
                 line="2764">a #ClutterGstPlayback</doc>
            <type name="Playback" c:type="ClutterGstPlayback*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_position"
              c:identifier="clutter_gst_playback_get_position">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="2828">Retrieves the position in the media stream that @self represents.</doc>
        <source-position filename="clutter-gst-playback.h" line="162"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-playback.c"
               line="2834">the position in the media stream, in seconds</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-playback.c"
                 line="2830">a #ClutterGstPlayback</doc>
            <type name="Playback" c:type="ClutterGstPlayback*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_progress"
              c:identifier="clutter_gst_playback_get_progress"
              glib:get-property="progress">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="2813">Retrieves the playback progress of @self.</doc>
        <source-position filename="clutter-gst-playback.h" line="161"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-playback.c"
               line="2819">the playback progress, between 0.0 and 1.0</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-playback.c"
                 line="2815">a #ClutterGstPlayback</doc>
            <type name="Playback" c:type="ClutterGstPlayback*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_seek_flags"
              c:identifier="clutter_gst_playback_get_seek_flags"
              glib:get-property="seek-flags"
              version="1.4">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="2257">Get the current value of the seek-flags property.</doc>
        <source-position filename="clutter-gst-playback.h" line="124"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-playback.c"
               line="2263">a combination of #ClutterGstSeekFlags</doc>
          <type name="SeekFlags" c:type="ClutterGstSeekFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-playback.c"
                 line="2259">a #ClutterGstPlayback</doc>
            <type name="Playback" c:type="ClutterGstPlayback*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_subtitle_font_name"
              c:identifier="clutter_gst_playback_get_subtitle_font_name"
              glib:get-property="subtitle-font-name">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="2634">Retrieves the font name currently used.</doc>
        <source-position filename="clutter-gst-playback.h" line="150"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="clutter-gst-playback.c"
               line="2640">a string containing the font name. Use g_free()
  to free the returned string</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-playback.c"
                 line="2636">a #ClutterGstPlayback</doc>
            <type name="Playback" c:type="ClutterGstPlayback*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_subtitle_track"
              c:identifier="clutter_gst_playback_get_subtitle_track"
              glib:get-property="subtitle-track"
              version="1.4">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="2687">Get the current subtitles track. The number returned is the index of the
subtiles track in the list returned by
clutter_gst_playback_get_subtitle_tracks().</doc>
        <source-position filename="clutter-gst-playback.h" line="153"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-playback.c"
               line="2695">the index of the current subtitlest track, -1 if the media has
no subtitles track or if the subtitles have been turned off</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-playback.c"
                 line="2689">a #ClutterGstPlayback</doc>
            <type name="Playback" c:type="ClutterGstPlayback*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_subtitle_tracks"
              c:identifier="clutter_gst_playback_get_subtitle_tracks"
              glib:get-property="subtitle-tracks"
              version="1.4">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="2655">Get the list of subtitles tracks of the current media.</doc>
        <source-position filename="clutter-gst-playback.h" line="152"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-playback.c"
               line="2661">a list of
strings describing the available subtitles tracks</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-playback.c"
                 line="2657">a #ClutterGstPlayback</doc>
            <type name="Playback" c:type="ClutterGstPlayback*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_subtitle_uri"
              c:identifier="clutter_gst_playback_get_subtitle_uri"
              glib:get-property="subtitle-uri">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="2590">Retrieves the URI of the subtitle file in use.</doc>
        <source-position filename="clutter-gst-playback.h" line="146"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="clutter-gst-playback.c"
               line="2596">the URI of the subtitle file. Use g_free()
  to free the returned string</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-playback.c"
                 line="2592">a #ClutterGstPlayback</doc>
            <type name="Playback" c:type="ClutterGstPlayback*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_uri"
              c:identifier="clutter_gst_playback_get_uri"
              glib:get-property="uri">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="2124">Retrieves the URI from @self.</doc>
        <source-position filename="clutter-gst-playback.h" line="116"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="clutter-gst-playback.c"
               line="2130">the URI of the media stream. Use g_free()
  to free the returned string</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-playback.c"
                 line="2126">a #ClutterGstPlayback</doc>
            <type name="Playback" c:type="ClutterGstPlayback*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_user_agent"
              c:identifier="clutter_gst_playback_get_user_agent"
              glib:get-property="user-agent"
              version="1.4">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="2182">Retrieves the user agent used when streaming.</doc>
        <source-position filename="clutter-gst-playback.h" line="120"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="clutter-gst-playback.c"
               line="2188">the user agent used. The returned string has to be freed with
g_free()</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-playback.c"
                 line="2184">a #ClutterGstPlayback</doc>
            <type name="Playback" c:type="ClutterGstPlayback*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_live_media"
              c:identifier="clutter_gst_playback_is_live_media">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="2864">Whether the player is using a live media.</doc>
        <source-position filename="clutter-gst-playback.h" line="165"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-playback.c"
               line="2870">TRUE if the player is using a live media, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-playback.c"
                 line="2866">a #ClutterGstPlayback</doc>
            <type name="Playback" c:type="ClutterGstPlayback*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_audio_stream"
              c:identifier="clutter_gst_playback_set_audio_stream"
              glib:set-property="audio-stream"
              version="1.4">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="2544">Set the audio stream to play. @index_ is the index of the stream
in the list returned by clutter_gst_playback_get_audio_streams().</doc>
        <source-position filename="clutter-gst-playback.h" line="141"/>
        <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"
                 filename="clutter-gst-playback.c"
                 line="2546">a #ClutterGstPlayback</doc>
            <type name="Playback" c:type="ClutterGstPlayback*"/>
          </instance-parameter>
          <parameter name="index_" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-playback.c"
                 line="2547">the index of the audio stream</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_buffer_duration"
              c:identifier="clutter_gst_playback_set_buffer_duration">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="2460">Sets the buffer duration to be used when buffering network streams.</doc>
        <source-position filename="clutter-gst-playback.h" line="136"/>
        <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"
                 filename="clutter-gst-playback.c"
                 line="2462">a #ClutterGstPlayback</doc>
            <type name="Playback" c:type="ClutterGstPlayback*"/>
          </instance-parameter>
          <parameter name="duration" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-playback.c"
                 line="2463">The new duration</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_buffer_size"
              c:identifier="clutter_gst_playback_set_buffer_size">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="2417">Sets the buffer size to be used when buffering network streams.</doc>
        <source-position filename="clutter-gst-playback.h" line="133"/>
        <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"
                 filename="clutter-gst-playback.c"
                 line="2419">a #ClutterGstPlayback</doc>
            <type name="Playback" c:type="ClutterGstPlayback*"/>
          </instance-parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-playback.c"
                 line="2420">The new size</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_buffering_mode"
              c:identifier="clutter_gst_playback_set_buffering_mode"
              version="1.4">
        <source-position filename="clutter-gst-playback.h" line="129"/>
        <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"
                 filename="clutter-gst-playback.c"
                 line="2338">a #ClutterGstPlayback</doc>
            <type name="Playback" c:type="ClutterGstPlayback*"/>
          </instance-parameter>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-playback.c"
                 line="2339">a #ClutterGstBufferingMode</doc>
            <type name="BufferingMode" c:type="ClutterGstBufferingMode"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_filename"
              c:identifier="clutter_gst_playback_set_filename">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="2145">Sets the source of @self using a file path.</doc>
        <source-position filename="clutter-gst-playback.h" line="117"/>
        <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"
                 filename="clutter-gst-playback.c"
                 line="2147">a #ClutterGstPlayback</doc>
            <type name="Playback" c:type="ClutterGstPlayback*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-playback.c"
                 line="2148">A filename</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_progress"
              c:identifier="clutter_gst_playback_set_progress"
              glib:set-property="progress">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="2796">Sets the playback progress of @self. The @progress is
a normalized value between 0.0 (begin) and 1.0 (end).</doc>
        <source-position filename="clutter-gst-playback.h" line="159"/>
        <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"
                 filename="clutter-gst-playback.c"
                 line="2798">a #ClutterGstPlayback</doc>
            <type name="Playback" c:type="ClutterGstPlayback*"/>
          </instance-parameter>
          <parameter name="progress" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-playback.c"
                 line="2799">the progress of the playback, between 0.0 and 1.0</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_seek_flags"
              c:identifier="clutter_gst_playback_set_seek_flags"
              glib:set-property="seek-flags"
              version="1.4">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="2283">Seeking can be done with several trade-offs. Clutter-gst defaults
to %CLUTTER_GST_SEEK_FLAG_NONE.</doc>
        <source-position filename="clutter-gst-playback.h" line="125"/>
        <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"
                 filename="clutter-gst-playback.c"
                 line="2285">a #ClutterGstPlayback</doc>
            <type name="Playback" c:type="ClutterGstPlayback*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-playback.c"
                 line="2286">a combination of #ClutterGstSeekFlags</doc>
            <type name="SeekFlags" c:type="ClutterGstSeekFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_subtitle_font_name"
              c:identifier="clutter_gst_playback_set_subtitle_font_name"
              glib:set-property="subtitle-font-name">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="2611">Sets the font used by the subtitle renderer. The @font_name string must be
either %NULL, which means that the default font name of the underlying
implementation will be used; or must follow the grammar recognized by
pango_font_description_from_string() like:

|[
  clutter_gst_playback_set_subtitle_font_name (player, "Sans 24pt");
]|</doc>
        <source-position filename="clutter-gst-playback.h" line="147"/>
        <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"
                 filename="clutter-gst-playback.c"
                 line="2613">a #ClutterGstPlayback</doc>
            <type name="Playback" c:type="ClutterGstPlayback*"/>
          </instance-parameter>
          <parameter name="font_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-playback.c"
                 line="2614">a font name, or %NULL to set the default font name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_subtitle_track"
              c:identifier="clutter_gst_playback_set_subtitle_track"
              glib:set-property="subtitle-track"
              version="1.4">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="2719">Set the subtitles track to play. @index_ is the index of the stream
in the list returned by clutter_gst_playback_get_subtitle_tracks().

If @index_ is -1, the subtitles are turned off.</doc>
        <source-position filename="clutter-gst-playback.h" line="154"/>
        <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"
                 filename="clutter-gst-playback.c"
                 line="2721">a #ClutterGstPlayback</doc>
            <type name="Playback" c:type="ClutterGstPlayback*"/>
          </instance-parameter>
          <parameter name="index_" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-playback.c"
                 line="2722">the index of the subtitles track</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_subtitle_uri"
              c:identifier="clutter_gst_playback_set_subtitle_uri"
              glib:set-property="subtitle-uri">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="2574">Sets the location of a subtitle file to display while playing @self.</doc>
        <source-position filename="clutter-gst-playback.h" line="144"/>
        <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"
                 filename="clutter-gst-playback.c"
                 line="2576">a #ClutterGstPlayback</doc>
            <type name="Playback" c:type="ClutterGstPlayback*"/>
          </instance-parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-playback.c"
                 line="2577">the URI of a subtitle file</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_uri"
              c:identifier="clutter_gst_playback_set_uri"
              glib:set-property="uri">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="2108">Sets the URI of @self to @uri.</doc>
        <source-position filename="clutter-gst-playback.h" line="114"/>
        <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"
                 filename="clutter-gst-playback.c"
                 line="2110">a #ClutterGstPlayback</doc>
            <type name="Playback" c:type="ClutterGstPlayback*"/>
          </instance-parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-playback.c"
                 line="2111">the URI of the media stream</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_user_agent"
              c:identifier="clutter_gst_playback_set_user_agent"
              glib:set-property="user-agent"
              version="1.4">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="2225">Sets the user agent to use when streaming.

When streaming content, you might want to set a custom user agent, eg. to
promote your software, make it appear in statistics or because the server
requires a special user agent you want to impersonate.</doc>
        <source-position filename="clutter-gst-playback.h" line="121"/>
        <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"
                 filename="clutter-gst-playback.c"
                 line="2227">a #ClutterGstPlayback</doc>
            <type name="Playback" c:type="ClutterGstPlayback*"/>
          </instance-parameter>
          <parameter name="user_agent" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-playback.c"
                 line="2228">the user agent</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <property name="audio-stream"
                version="1.4"
                writable="1"
                transfer-ownership="none"
                setter="set_audio_stream"
                getter="get_audio_stream">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="1849">Index of the current audio stream.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <property name="audio-streams"
                version="1.4"
                transfer-ownership="none"
                getter="get_audio_streams">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="1836">List of audio streams available on the current media.</doc>
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <property name="buffer-fill"
                transfer-ownership="none"
                getter="get_buffer_fill">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="1782">The fill level of the buffer for the current stream,
as a value between 0.0 and 1.0.</doc>
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="can-seek" transfer-ownership="none">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="1770">Whether the current stream is seekable.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="duration"
                transfer-ownership="none"
                getter="get_duration">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="1795">The duration of the current stream, in seconds</doc>
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="in-seek"
                version="1.6"
                transfer-ownership="none"
                getter="get_in_seek">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="1890">Whether or not the stream is being seeked.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="progress"
                writable="1"
                transfer-ownership="none"
                setter="set_progress"
                getter="get_progress">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="1731">The current progress of the playback, as a normalized
value between 0.0 and 1.0.</doc>
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="seek-flags"
                version="1.4"
                writable="1"
                transfer-ownership="none"
                setter="set_seek_flags"
                getter="get_seek_flags">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="1821">Flags to use when seeking.</doc>
        <type name="SeekFlags"/>
      </property>
      <property name="subtitle-font-name"
                writable="1"
                transfer-ownership="none"
                setter="set_subtitle_font_name"
                getter="get_subtitle_font_name">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="1756">The font used to display subtitles. The font description has to
follow the same grammar as the one recognized by
pango_font_description_from_string().</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="subtitle-track"
                version="1.4"
                writable="1"
                transfer-ownership="none"
                setter="set_subtitle_track"
                getter="get_subtitle_track">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="1876">Current subtitle track being displayed.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <property name="subtitle-tracks"
                version="1.4"
                transfer-ownership="none"
                getter="get_subtitle_tracks">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="1863">List of subtitle tracks available.</doc>
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <property name="subtitle-uri"
                writable="1"
                transfer-ownership="none"
                setter="set_subtitle_uri"
                getter="get_subtitle_uri">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="1744">The location of a subtitle file, expressed as a valid URI.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="uri"
                writable="1"
                transfer-ownership="none"
                setter="set_uri"
                getter="get_uri">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="1719">The location of a media file, expressed as a valid URI.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="user-agent"
                version="1.4"
                writable="1"
                transfer-ownership="none"
                setter="set_user_agent"
                getter="get_user_agent">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="1807">The User Agent used by #ClutterGstPlayback with network protocols.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="PlaybackPrivate" c:type="ClutterGstPlaybackPrivate*"/>
      </field>
      <glib:signal name="should-buffer" when="last" version="1.4">
        <doc xml:space="preserve"
             filename="clutter-gst-playback.c"
             line="1915">The ::should-buffer signal is emitted every time the base class needs to
decide whether it should continue buffering in download-buffering mode.</doc>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="query" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-playback.c"
                 line="1918">A gst buffering query of format bytes</doc>
            <type name="Gst.Query"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="PlaybackClass"
            c:type="ClutterGstPlaybackClass"
            glib:is-gtype-struct-for="Playback">
      <doc xml:space="preserve"
           filename="clutter-gst-playback.h"
           line="93">Base class for #ClutterGstPlayback.</doc>
      <source-position filename="clutter-gst-playback.h" line="108"/>
      <field name="parent_class" readable="0" private="1">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="should_buffer">
        <callback name="should_buffer">
          <source-position filename="clutter-gst-playback.h" line="106"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Playback" c:type="ClutterGstPlayback*"/>
            </parameter>
            <parameter name="query" transfer-ownership="none">
              <type name="Gst.Query" c:type="GstQuery*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="PlaybackPrivate"
            c:type="ClutterGstPlaybackPrivate"
            disguised="1">
      <source-position filename="clutter-gst-playback.h" line="75"/>
    </record>
    <interface name="Player"
               c:symbol-prefix="player"
               c:type="ClutterGstPlayer"
               version="1.4"
               glib:type-name="ClutterGstPlayer"
               glib:get-type="clutter_gst_player_get_type"
               glib:type-struct="PlayerIface">
      <doc xml:space="preserve"
           filename="clutter-gst-player.h"
           line="68">#ClutterGstPlayer is an opaque structure whose members cannot be
directly accessed</doc>
      <source-position filename="clutter-gst-player.h" line="135"/>
      <virtual-method name="eos">
        <source-position filename="clutter-gst-player.h" line="126"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Player" c:type="ClutterGstPlayer*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="error">
        <source-position filename="clutter-gst-player.h" line="127"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Player" c:type="ClutterGstPlayer*"/>
          </instance-parameter>
          <parameter name="error" transfer-ownership="none">
            <type name="GLib.Error" c:type="const GError*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_audio_volume"
                      invoker="get_audio_volume"
                      version="3.0">
        <doc xml:space="preserve"
             filename="clutter-gst-player.c"
             line="319">Retrieves the playback volume of @self.</doc>
        <source-position filename="clutter-gst-player.h" line="111"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-player.c"
               line="325">The playback volume between 0.0 and 1.0</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-player.c"
                 line="321">a #ClutterGstPlayer</doc>
            <type name="Player" c:type="ClutterGstPlayer*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_frame" invoker="get_frame" version="3.0">
        <doc xml:space="preserve"
             filename="clutter-gst-player.c"
             line="201">Retrieves the #ClutterGstFrame of the last frame produced by @self.</doc>
        <source-position filename="clutter-gst-player.h" line="105"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-player.c"
               line="207">the #ClutterGstFrame of the last frame.</doc>
          <type name="Frame" c:type="ClutterGstFrame*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-player.c"
                 line="203">a #ClutterGstPlayer</doc>
            <type name="Player" c:type="ClutterGstPlayer*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_idle" invoker="get_idle" version="3.0">
        <doc xml:space="preserve"
             filename="clutter-gst-player.c"
             line="363">Get the idle state of the pipeline.</doc>
        <source-position filename="clutter-gst-player.h" line="109"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-player.c"
               line="369">TRUE if the pipline is in idle mode, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-player.c"
                 line="365">a #ClutterGstPlayer</doc>
            <type name="Player" c:type="ClutterGstPlayer*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_pipeline" invoker="get_pipeline" version="3.0">
        <doc xml:space="preserve"
             filename="clutter-gst-player.c"
             line="223">Retrieves the #GstPipeline used by the @self, for direct use with
GStreamer API.</doc>
        <source-position filename="clutter-gst-player.h" line="106"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-player.c"
               line="230">the #GstPipeline element used by the player</doc>
          <type name="Gst.Element" c:type="GstElement*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-player.c"
                 line="225">a #ClutterGstPlayer</doc>
            <type name="Player" c:type="ClutterGstPlayer*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_playing" invoker="get_playing" version="3.0">
        <doc xml:space="preserve"
             filename="clutter-gst-player.c"
             line="269">Retrieves the playing status of @self.</doc>
        <source-position filename="clutter-gst-player.h" line="115"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-player.c"
               line="275">%TRUE if playing, %FALSE if stopped.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-player.c"
                 line="271">A #ClutterGstPlayer object</doc>
            <type name="Player" c:type="ClutterGstPlayer*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_video_sink"
                      invoker="get_video_sink"
                      version="3.0">
        <doc xml:space="preserve"
             filename="clutter-gst-player.c"
             line="246">Retrieves the #ClutterGstVideoSink used by the @self.</doc>
        <source-position filename="clutter-gst-player.h" line="107"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-player.c"
               line="252">the #ClutterGstVideoSink element used by the player</doc>
          <type name="VideoSink" c:type="ClutterGstVideoSink*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-player.c"
                 line="248">a #ClutterGstPlayer</doc>
            <type name="Player" c:type="ClutterGstPlayer*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="new_frame">
        <source-position filename="clutter-gst-player.h" line="124"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Player" c:type="ClutterGstPlayer*"/>
          </instance-parameter>
          <parameter name="frame" transfer-ownership="none">
            <type name="Frame" c:type="ClutterGstFrame*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="ready">
        <source-position filename="clutter-gst-player.h" line="125"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Player" c:type="ClutterGstPlayer*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_audio_volume"
                      invoker="set_audio_volume"
                      version="3.0">
        <doc xml:space="preserve"
             filename="clutter-gst-player.c"
             line="341">Sets the playback volume of @self to @volume.</doc>
        <source-position filename="clutter-gst-player.h" line="112"/>
        <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"
                 filename="clutter-gst-player.c"
                 line="343">a #ClutterGstPlayer</doc>
            <type name="Player" c:type="ClutterGstPlayer*"/>
          </instance-parameter>
          <parameter name="volume" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-player.c"
                 line="344">the volume as a double between 0.0 and 1.0</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="set_playing" invoker="set_playing" version="3.0">
        <doc xml:space="preserve"
             filename="clutter-gst-player.c"
             line="291">Starts or stops playing of @self.

The implementation might be asynchronous, so the way to know whether
the actual playing state of the @self is to use the #GObject::notify
signal on the #ClutterGstPlayer:playing property and then retrieve the
current state with clutter_gst_player_get_playing(). ClutterGstVideoActor
in clutter-gst is an example of such an asynchronous implementation.</doc>
        <source-position filename="clutter-gst-player.h" line="116"/>
        <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"
                 filename="clutter-gst-player.c"
                 line="293">a #ClutterGstPlayer</doc>
            <type name="Player" c:type="ClutterGstPlayer*"/>
          </instance-parameter>
          <parameter name="playing" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-player.c"
                 line="294">%TRUE to start playing</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="size_change">
        <source-position filename="clutter-gst-player.h" line="129"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Player" c:type="ClutterGstPlayer*"/>
          </instance-parameter>
          <parameter name="width" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_audio_volume"
              c:identifier="clutter_gst_player_get_audio_volume"
              glib:get-property="audio-volume"
              version="3.0">
        <doc xml:space="preserve"
             filename="clutter-gst-player.c"
             line="319">Retrieves the playback volume of @self.</doc>
        <source-position filename="clutter-gst-player.h" line="151"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-player.c"
               line="325">The playback volume between 0.0 and 1.0</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-player.c"
                 line="321">a #ClutterGstPlayer</doc>
            <type name="Player" c:type="ClutterGstPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_frame"
              c:identifier="clutter_gst_player_get_frame"
              version="3.0">
        <doc xml:space="preserve"
             filename="clutter-gst-player.c"
             line="201">Retrieves the #ClutterGstFrame of the last frame produced by @self.</doc>
        <source-position filename="clutter-gst-player.h" line="139"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-player.c"
               line="207">the #ClutterGstFrame of the last frame.</doc>
          <type name="Frame" c:type="ClutterGstFrame*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-player.c"
                 line="203">a #ClutterGstPlayer</doc>
            <type name="Player" c:type="ClutterGstPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_idle"
              c:identifier="clutter_gst_player_get_idle"
              glib:get-property="idle"
              version="3.0">
        <doc xml:space="preserve"
             filename="clutter-gst-player.c"
             line="363">Get the idle state of the pipeline.</doc>
        <source-position filename="clutter-gst-player.h" line="145"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-player.c"
               line="369">TRUE if the pipline is in idle mode, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-player.c"
                 line="365">a #ClutterGstPlayer</doc>
            <type name="Player" c:type="ClutterGstPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pipeline"
              c:identifier="clutter_gst_player_get_pipeline"
              version="3.0">
        <doc xml:space="preserve"
             filename="clutter-gst-player.c"
             line="223">Retrieves the #GstPipeline used by the @self, for direct use with
GStreamer API.</doc>
        <source-position filename="clutter-gst-player.h" line="141"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-player.c"
               line="230">the #GstPipeline element used by the player</doc>
          <type name="Gst.Element" c:type="GstElement*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-player.c"
                 line="225">a #ClutterGstPlayer</doc>
            <type name="Player" c:type="ClutterGstPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_playing"
              c:identifier="clutter_gst_player_get_playing"
              glib:get-property="playing"
              version="3.0">
        <doc xml:space="preserve"
             filename="clutter-gst-player.c"
             line="269">Retrieves the playing status of @self.</doc>
        <source-position filename="clutter-gst-player.h" line="147"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-player.c"
               line="275">%TRUE if playing, %FALSE if stopped.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-player.c"
                 line="271">A #ClutterGstPlayer object</doc>
            <type name="Player" c:type="ClutterGstPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_video_sink"
              c:identifier="clutter_gst_player_get_video_sink"
              version="3.0">
        <doc xml:space="preserve"
             filename="clutter-gst-player.c"
             line="246">Retrieves the #ClutterGstVideoSink used by the @self.</doc>
        <source-position filename="clutter-gst-player.h" line="143"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-player.c"
               line="252">the #ClutterGstVideoSink element used by the player</doc>
          <type name="VideoSink" c:type="ClutterGstVideoSink*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-player.c"
                 line="248">a #ClutterGstPlayer</doc>
            <type name="Player" c:type="ClutterGstPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_audio_volume"
              c:identifier="clutter_gst_player_set_audio_volume"
              glib:set-property="audio-volume"
              version="3.0">
        <doc xml:space="preserve"
             filename="clutter-gst-player.c"
             line="341">Sets the playback volume of @self to @volume.</doc>
        <source-position filename="clutter-gst-player.h" line="152"/>
        <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"
                 filename="clutter-gst-player.c"
                 line="343">a #ClutterGstPlayer</doc>
            <type name="Player" c:type="ClutterGstPlayer*"/>
          </instance-parameter>
          <parameter name="volume" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-player.c"
                 line="344">the volume as a double between 0.0 and 1.0</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_playing"
              c:identifier="clutter_gst_player_set_playing"
              glib:set-property="playing"
              version="3.0">
        <doc xml:space="preserve"
             filename="clutter-gst-player.c"
             line="291">Starts or stops playing of @self.

The implementation might be asynchronous, so the way to know whether
the actual playing state of the @self is to use the #GObject::notify
signal on the #ClutterGstPlayer:playing property and then retrieve the
current state with clutter_gst_player_get_playing(). ClutterGstVideoActor
in clutter-gst is an example of such an asynchronous implementation.</doc>
        <source-position filename="clutter-gst-player.h" line="148"/>
        <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"
                 filename="clutter-gst-player.c"
                 line="293">a #ClutterGstPlayer</doc>
            <type name="Player" c:type="ClutterGstPlayer*"/>
          </instance-parameter>
          <parameter name="playing" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-player.c"
                 line="294">%TRUE to start playing</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="audio-volume"
                writable="1"
                transfer-ownership="none"
                setter="set_audio_volume"
                getter="get_audio_volume">
        <doc xml:space="preserve"
             filename="clutter-gst-player.c"
             line="87">The volume of the audio, as a normalized value between
0.0 and 1.0.</doc>
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="idle"
                version="1.4"
                transfer-ownership="none"
                getter="get_idle">
        <doc xml:space="preserve"
             filename="clutter-gst-player.c"
             line="100">Whether the #ClutterGstPlayer is in idle mode.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="playing"
                writable="1"
                transfer-ownership="none"
                setter="set_playing"
                getter="get_playing">
        <doc xml:space="preserve"
             filename="clutter-gst-player.c"
             line="75">Whether the #ClutterGstPlayer actor is playing.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <glib:signal name="eos" when="last">
        <doc xml:space="preserve"
             filename="clutter-gst-player.c"
             line="148">The ::eos signal is emitted each time the media stream ends.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="error" when="last">
        <doc xml:space="preserve"
             filename="clutter-gst-player.c"
             line="162">The ::error signal is emitted each time an error occurred.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="error" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-player.c"
                 line="165">the #GError</doc>
            <type name="GLib.Error"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="new-frame" when="last">
        <doc xml:space="preserve"
             filename="clutter-gst-player.c"
             line="116">The ::new-frame signal is emitted each time a frame is received
from the video sink.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="frame" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-player.c"
                 line="119">the #ClutterGstFrame newly received from the video sink</doc>
            <type name="Frame"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="ready" when="last">
        <doc xml:space="preserve"
             filename="clutter-gst-player.c"
             line="133">The ::ready signal is emitted each time the gstreamer pipeline
becomes ready.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="size-change" when="last">
        <doc xml:space="preserve"
             filename="clutter-gst-player.c"
             line="179">The ::size-change signal is emitted each time the new frame
has different dimensions to the previous frame.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-player.c"
                 line="182">new width of the frames</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-player.c"
                 line="183">new height of the frames</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
    </interface>
    <record name="PlayerIface"
            c:type="ClutterGstPlayerIface"
            glib:is-gtype-struct-for="Player"
            version="1.4">
      <doc xml:space="preserve"
           filename="clutter-gst-player.h"
           line="77">Interface vtable for #ClutterGstPlayer implementations</doc>
      <source-position filename="clutter-gst-player.h" line="135"/>
      <field name="base_iface" readable="0" private="1">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="PlayerIfacePrivate"
              c:type="ClutterGstPlayerIfacePrivate*"/>
      </field>
      <field name="get_frame">
        <callback name="get_frame">
          <source-position filename="clutter-gst-player.h" line="105"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-player.c"
                 line="207">the #ClutterGstFrame of the last frame.</doc>
            <type name="Frame" c:type="ClutterGstFrame*"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="clutter-gst-player.c"
                   line="203">a #ClutterGstPlayer</doc>
              <type name="Player" c:type="ClutterGstPlayer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_pipeline">
        <callback name="get_pipeline">
          <source-position filename="clutter-gst-player.h" line="106"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-player.c"
                 line="230">the #GstPipeline element used by the player</doc>
            <type name="Gst.Element" c:type="GstElement*"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="clutter-gst-player.c"
                   line="225">a #ClutterGstPlayer</doc>
              <type name="Player" c:type="ClutterGstPlayer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_video_sink">
        <callback name="get_video_sink">
          <source-position filename="clutter-gst-player.h" line="107"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-player.c"
                 line="252">the #ClutterGstVideoSink element used by the player</doc>
            <type name="VideoSink" c:type="ClutterGstVideoSink*"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="clutter-gst-player.c"
                   line="248">a #ClutterGstPlayer</doc>
              <type name="Player" c:type="ClutterGstPlayer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_idle">
        <callback name="get_idle">
          <source-position filename="clutter-gst-player.h" line="109"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-player.c"
                 line="369">TRUE if the pipline is in idle mode, FALSE otherwise.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="clutter-gst-player.c"
                   line="365">a #ClutterGstPlayer</doc>
              <type name="Player" c:type="ClutterGstPlayer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_audio_volume">
        <callback name="get_audio_volume">
          <source-position filename="clutter-gst-player.h" line="111"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-player.c"
                 line="325">The playback volume between 0.0 and 1.0</doc>
            <type name="gdouble" c:type="gdouble"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="clutter-gst-player.c"
                   line="321">a #ClutterGstPlayer</doc>
              <type name="Player" c:type="ClutterGstPlayer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_audio_volume">
        <callback name="set_audio_volume">
          <source-position filename="clutter-gst-player.h" line="112"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="clutter-gst-player.c"
                   line="343">a #ClutterGstPlayer</doc>
              <type name="Player" c:type="ClutterGstPlayer*"/>
            </parameter>
            <parameter name="volume" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="clutter-gst-player.c"
                   line="344">the volume as a double between 0.0 and 1.0</doc>
              <type name="gdouble" c:type="gdouble"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_playing">
        <callback name="get_playing">
          <source-position filename="clutter-gst-player.h" line="115"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-player.c"
                 line="275">%TRUE if playing, %FALSE if stopped.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="clutter-gst-player.c"
                   line="271">A #ClutterGstPlayer object</doc>
              <type name="Player" c:type="ClutterGstPlayer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="set_playing">
        <callback name="set_playing">
          <source-position filename="clutter-gst-player.h" line="116"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="clutter-gst-player.c"
                   line="293">a #ClutterGstPlayer</doc>
              <type name="Player" c:type="ClutterGstPlayer*"/>
            </parameter>
            <parameter name="playing" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="clutter-gst-player.c"
                   line="294">%TRUE to start playing</doc>
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_padding_vfuncs" readable="0" private="1">
        <array zero-terminated="0" fixed-size="16">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <field name="new_frame">
        <callback name="new_frame">
          <source-position filename="clutter-gst-player.h" line="124"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Player" c:type="ClutterGstPlayer*"/>
            </parameter>
            <parameter name="frame" transfer-ownership="none">
              <type name="Frame" c:type="ClutterGstFrame*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="ready">
        <callback name="ready">
          <source-position filename="clutter-gst-player.h" line="125"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Player" c:type="ClutterGstPlayer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="eos">
        <callback name="eos">
          <source-position filename="clutter-gst-player.h" line="126"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Player" c:type="ClutterGstPlayer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="error">
        <callback name="error">
          <source-position filename="clutter-gst-player.h" line="127"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Player" c:type="ClutterGstPlayer*"/>
            </parameter>
            <parameter name="error" transfer-ownership="none">
              <type name="GLib.Error" c:type="const GError*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="size_change">
        <callback name="size_change">
          <source-position filename="clutter-gst-player.h" line="129"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Player" c:type="ClutterGstPlayer*"/>
            </parameter>
            <parameter name="width" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="height" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_padding_signals" readable="0" private="1">
        <array zero-terminated="0" fixed-size="8">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="PlayerIfacePrivate"
            c:type="ClutterGstPlayerIfacePrivate"
            disguised="1">
      <source-position filename="clutter-gst-player.h" line="65"/>
    </record>
    <bitfield name="SeekFlags"
              version="1.4"
              glib:type-name="ClutterGstSeekFlags"
              glib:get-type="clutter_gst_seek_flags_get_type"
              c:type="ClutterGstSeekFlags">
      <doc xml:space="preserve"
           filename="clutter-gst-types.h"
           line="48">Flags that can be given to clutter_gst_player_set_seek_flags().</doc>
      <member name="none"
              value="0"
              c:identifier="CLUTTER_GST_SEEK_FLAG_NONE"
              glib:nick="none"
              glib:name="CLUTTER_GST_SEEK_FLAG_NONE">
        <doc xml:space="preserve"
             filename="clutter-gst-types.h"
             line="50">Fast seeks (key frame boundaries, default)</doc>
      </member>
      <member name="accurate"
              value="1"
              c:identifier="CLUTTER_GST_SEEK_FLAG_ACCURATE"
              glib:nick="accurate"
              glib:name="CLUTTER_GST_SEEK_FLAG_ACCURATE">
        <doc xml:space="preserve"
             filename="clutter-gst-types.h"
             line="51">Accurate seeks (potentially slower)</doc>
      </member>
    </bitfield>
    <constant name="VERSION" value="3.000000" c:type="CLUTTER_GST_VERSION">
      <doc xml:space="preserve"
           filename="clutter-gst-version.h"
           line="61">ClutterGst full version (e.g. "1.2.3")</doc>
      <source-position filename="clutter-gst-version.h" line="66"/>
      <type name="gdouble" c:type="gdouble"/>
    </constant>
    <constant name="VERSION_HEX" value="0" c:type="CLUTTER_GST_VERSION_HEX">
      <doc xml:space="preserve"
           filename="clutter-gst-version.h"
           line="75">ClutterGst full version, encoded as an hexadecimal value.</doc>
      <source-position filename="clutter-gst-version.h" line="80"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="VERSION_S" value="3.0.27" c:type="CLUTTER_GST_VERSION_S">
      <doc xml:space="preserve"
           filename="clutter-gst-version.h"
           line="68">ClutterGst full version, encoded as a string.</doc>
      <source-position filename="clutter-gst-version.h" line="73"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <function-macro name="VIDEO_SINK"
                    c:identifier="CLUTTER_GST_VIDEO_SINK"
                    introspectable="0">
      <source-position filename="clutter-gst-video-sink.h" line="46"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VIDEO_SINK_CLASS"
                    c:identifier="CLUTTER_GST_VIDEO_SINK_CLASS"
                    introspectable="0">
      <source-position filename="clutter-gst-video-sink.h" line="50"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="VIDEO_SINK_GET_CLASS"
                    c:identifier="CLUTTER_GST_VIDEO_SINK_GET_CLASS"
                    introspectable="0">
      <source-position filename="clutter-gst-video-sink.h" line="62"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <record name="VideoResolution"
            c:type="ClutterGstVideoResolution"
            version="3.0">
      <doc xml:space="preserve"
           filename="clutter-gst-types.h"
           line="99">A video resolution.</doc>
      <source-position filename="clutter-gst-types.h" line="115"/>
      <field name="width" writable="1">
        <doc xml:space="preserve"
             filename="clutter-gst-types.h"
             line="101">the width, in pixels</doc>
        <type name="gint" c:type="gint"/>
      </field>
      <field name="height" writable="1">
        <doc xml:space="preserve"
             filename="clutter-gst-types.h"
             line="102">the height, in pixels</doc>
        <type name="gint" c:type="gint"/>
      </field>
      <field name="par_n" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="par_d" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
    </record>
    <class name="VideoSink"
           c:symbol-prefix="video_sink"
           c:type="ClutterGstVideoSink"
           version="3.0"
           parent="GstVideo.VideoSink"
           glib:type-name="ClutterGstVideoSink"
           glib:get-type="clutter_gst_video_sink_get_type"
           glib:type-struct="VideoSinkClass">
      <doc xml:space="preserve"
           filename="clutter-gst-video-sink.h"
           line="70">The #ClutterGstVideoSink structure contains only private data and
should be accessed using the provided API.</doc>
      <source-position filename="clutter-gst-video-sink.h" line="104"/>
      <implements name="GstVideo.ColorBalance"/>
      <implements name="GstVideo.Navigation"/>
      <constructor name="new"
                   c:identifier="clutter_gst_video_sink_new"
                   version="3.0">
        <doc xml:space="preserve"
             filename="clutter-gst-video-sink.c"
             line="2510">Creates a new #ClutterGstVideoSink</doc>
        <source-position filename="clutter-gst-video-sink.h" line="109"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="clutter-gst-video-sink.c"
               line="2515">a new #ClutterGstVideoSink</doc>
          <type name="VideoSink" c:type="ClutterGstVideoSink*"/>
        </return-value>
      </constructor>
      <virtual-method name="new_frame">
        <source-position filename="clutter-gst-video-sink.h" line="98"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="sink" transfer-ownership="none">
            <type name="VideoSink" c:type="ClutterGstVideoSink*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="new_overlays">
        <source-position filename="clutter-gst-video-sink.h" line="100"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="sink" transfer-ownership="none">
            <type name="VideoSink" c:type="ClutterGstVideoSink*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="pipeline_ready">
        <source-position filename="clutter-gst-video-sink.h" line="99"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="sink" transfer-ownership="none">
            <type name="VideoSink" c:type="ClutterGstVideoSink*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="get_frame"
              c:identifier="clutter_gst_video_sink_get_frame"
              version="3.0">
        <doc xml:space="preserve"
             filename="clutter-gst-video-sink.c"
             line="2566">Returns a #ClutterGstFrame object suitable to render the current
frame of the given video sink. An application is free to make a
copy of this pipeline and modify it for custom rendering.</doc>
        <source-position filename="clutter-gst-video-sink.h" line="113"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-video-sink.c"
               line="2574">A #ClutterGstFrame or NULL if there
  isn't a frame to be displayed yet.</doc>
          <type name="Frame" c:type="ClutterGstFrame*"/>
        </return-value>
        <parameters>
          <instance-parameter name="sink" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-video-sink.c"
                 line="2568">The #ClutterGstVideoSink</doc>
            <type name="VideoSink" c:type="ClutterGstVideoSink*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_overlays"
              c:identifier="clutter_gst_video_sink_get_overlays">
        <source-position filename="clutter-gst-video-sink.h" line="120"/>
        <return-value transfer-ownership="full">
          <type name="Overlays" c:type="ClutterGstOverlays*"/>
        </return-value>
        <parameters>
          <instance-parameter name="sink" transfer-ownership="none">
            <type name="VideoSink" c:type="ClutterGstVideoSink*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pipeline"
              c:identifier="clutter_gst_video_sink_get_pipeline"
              version="3.0"
              introspectable="0">
        <doc xml:space="preserve"
             filename="clutter-gst-video-sink.c"
             line="2626">Returns a pipeline suitable for rendering the current frame of the
given video sink. The pipeline will already have the textures for
the frame attached. For simple rendering, an application will
typically call this function immediately before it paints the
video. It can then just paint a rectangle using the returned
pipeline.

An application is free to make a copy of this
pipeline and modify it for custom rendering.

Note: it is considered an error to call this function before the
#ClutterGstVideoSink::pipeline-ready signal is emitted.</doc>
        <source-position filename="clutter-gst-video-sink.h" line="115"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-video-sink.c"
               line="2643">the pipeline for rendering the
  current frame</doc>
          <type c:type="CoglPipeline*"/>
        </return-value>
        <parameters>
          <instance-parameter name="sink" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-video-sink.c"
                 line="2628">The #ClutterGstVideoSink</doc>
            <type name="VideoSink" c:type="ClutterGstVideoSink*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_ready"
              c:identifier="clutter_gst_video_sink_is_ready"
              version="3.0">
        <doc xml:space="preserve"
             filename="clutter-gst-video-sink.c"
             line="2541">Returns whether the pipeline is ready and so
clutter_gst_video_sink_get_pipeline() and
clutter_gst_video_sink_setup_pipeline() can be called without causing error.

Note: Normally an application will wait until the
#ClutterGstVideoSink::pipeline-ready signal is emitted instead of
polling the ready status with this api, but sometimes when a sink
is passed between components that didn't have an opportunity to
connect a signal handler this can be useful.</doc>
        <source-position filename="clutter-gst-video-sink.h" line="111"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-video-sink.c"
               line="2555">%TRUE if the sink is ready, else %FALSE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="sink" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-video-sink.c"
                 line="2543">The #ClutterGstVideoSink</doc>
            <type name="VideoSink" c:type="ClutterGstVideoSink*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="setup_pipeline"
              c:identifier="clutter_gst_video_sink_setup_pipeline"
              version="3.0"
              introspectable="0">
        <doc xml:space="preserve"
             filename="clutter-gst-video-sink.c"
             line="2662">Configures the given pipeline so that will be able to render the
video for the @sink. This should only be used if the application
wants to perform some custom rendering using its own pipeline.
Typically an application will call this in response to the
#ClutterGstVideoSink::pipeline-ready signal.

Note: it is considered an error to call this function before the
#ClutterGstVideoSink::pipeline-ready signal is emitted.</doc>
        <source-position filename="clutter-gst-video-sink.h" line="117"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="sink" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-video-sink.c"
                 line="2664">The #ClutterGstVideoSink</doc>
            <type name="VideoSink" c:type="ClutterGstVideoSink*"/>
          </instance-parameter>
          <parameter name="pipeline" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="clutter-gst-video-sink.c"
                 line="2665">A #CoglPipeline</doc>
            <type c:type="CoglPipeline*"/>
          </parameter>
        </parameters>
      </method>
      <property name="update-priority" writable="1" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <field name="parent" readable="0" private="1">
        <type name="GstVideo.VideoSink" c:type="GstVideoSink"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="VideoSinkPrivate" c:type="ClutterGstVideoSinkPrivate*"/>
      </field>
      <glib:signal name="new-frame" when="last" version="3.0">
        <doc xml:space="preserve"
             filename="clutter-gst-video-sink.c"
             line="2462">The sink will emit this signal whenever there are new textures
available for a new frame of the video. After this signal is
emitted, an application can call clutter_gst_video_sink_get_pipeline()
to get a pipeline suitable for rendering the frame. If the
application is using a custom pipeline it can alternatively call
clutter_gst_video_sink_attach_frame() to attach the textures.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="new-overlays" when="last" version="3.0">
        <doc xml:space="preserve"
             filename="clutter-gst-video-sink.c"
             line="2486">The sink will emit this signal whenever there are new textures
available for set of overlays on the video. After this signal is
emitted, an application can call
clutter_gst_video_sink_get_overlays() to get a set of pipelines
suitable for rendering overlays on a video frame.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="pipeline-ready" when="last" version="3.0">
        <doc xml:space="preserve"
             filename="clutter-gst-video-sink.c"
             line="2432">The sink will emit this signal as soon as it has gathered enough
information from the video to configure a pipeline. If the
application wants to do some customized rendering, it can setup its
pipeline after this signal is emitted. The application's pipeline
will typically either be a copy of the one returned by
clutter_gst_video_sink_get_pipeline() or it can be a completely custom
pipeline which is setup using clutter_gst_video_sink_setup_pipeline().

Note that it is an error to call either of those functions before
this signal is emitted. The #ClutterGstVideoSink::new-frame signal
will only be emitted after the pipeline is ready so the application
could also create its pipeline in the handler for that.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="VideoSinkClass"
            c:type="ClutterGstVideoSinkClass"
            glib:is-gtype-struct-for="VideoSink"
            version="3.0">
      <source-position filename="clutter-gst-video-sink.h" line="104"/>
      <field name="parent_class" readable="0" private="1">
        <type name="GstVideo.VideoSinkClass" c:type="GstVideoSinkClass"/>
      </field>
      <field name="new_frame">
        <callback name="new_frame">
          <source-position filename="clutter-gst-video-sink.h" line="98"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="sink" transfer-ownership="none">
              <type name="VideoSink" c:type="ClutterGstVideoSink*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pipeline_ready">
        <callback name="pipeline_ready">
          <source-position filename="clutter-gst-video-sink.h" line="99"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="sink" transfer-ownership="none">
              <type name="VideoSink" c:type="ClutterGstVideoSink*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="new_overlays">
        <callback name="new_overlays">
          <source-position filename="clutter-gst-video-sink.h" line="100"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="sink" transfer-ownership="none">
              <type name="VideoSink" c:type="ClutterGstVideoSink*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_padding_dummy" readable="0" private="1">
        <array zero-terminated="0" fixed-size="8">
          <type name="gpointer" c:type="void*"/>
        </array>
      </field>
    </record>
    <record name="VideoSinkPrivate"
            c:type="ClutterGstVideoSinkPrivate"
            disguised="1">
      <source-position filename="clutter-gst-video-sink.h" line="68"/>
    </record>
    <docsection name="clutter-gst-aspectratio">
      <doc xml:space="preserve"
           filename="clutter-gst-aspectratio.c"
           line="30">#ClutterGstContent implements the #ClutterContent interface.</doc>
    </docsection>
    <docsection name="clutter-gst-camera">
      <doc xml:space="preserve"
           filename="clutter-gst-camera.c"
           line="29">#ClutterGstCamera implements the #ClutterGstPlayer interface and
plays camera streams.</doc>
    </docsection>
    <docsection name="clutter-gst-camera-device">
      <doc xml:space="preserve"
           filename="clutter-gst-camera-device.c"
           line="28">#ClutterGstCameraDevice is a #GObject representing a camera device using GStreamer.</doc>
    </docsection>
    <docsection name="clutter-gst-camera-manager">
      <doc xml:space="preserve"
           filename="clutter-gst-camera-manager.c"
           line="28">#ClutterGstCameraManager lists available cameras.</doc>
    </docsection>
    <docsection name="clutter-gst-content">
      <doc xml:space="preserve"
           filename="clutter-gst-content.c"
           line="28">#ClutterGstContent implements the #ClutterContent interface.</doc>
    </docsection>
    <docsection name="clutter-gst-crop">
      <doc xml:space="preserve"
           filename="clutter-gst-crop.c"
           line="29">#ClutterGstCrop sub-classes #ClutterGstContent.</doc>
    </docsection>
    <docsection name="clutter-gst-playback">
      <doc xml:space="preserve"
           filename="clutter-gst-playback.c"
           line="34">#ClutterGstPlayback implements #ClutterGstPlayer.</doc>
    </docsection>
    <docsection name="clutter-gst-player">
      <doc xml:space="preserve"
           filename="clutter-gst-player.c"
           line="34">#ClutterGstPlayer is an interface for controlling playback of media
 sources.</doc>
    </docsection>
    <docsection name="clutter-gst-util">
      <doc xml:space="preserve"
           filename="clutter-gst-util.c"
           line="30">The &lt;application&gt;Clutter-Gst&lt;/application&gt; library should be initialized
with clutter_gst_init() before it can be used. You should pass pointers to
the main argc and argv variables so that GStreamer, Clutter and Clutter-Gst
gst can process their own command line options, as shown in the following
example:

&lt;example&gt;
&lt;title&gt;Initializing the Clutter-Gst library&lt;/title&gt;
&lt;programlisting language="c"&gt;
int
main (int argc, char *argv[])
{
  // initialize the Clutter-Gst library
  clutter_gst_init (&amp;amp;argc, &amp;amp;argv);
  ...
}
&lt;/programlisting&gt;
&lt;/example&gt;

It's allowed to pass two NULL pointers to clutter_gst_init() in case you
don't want to pass the command line arguments to GStreamer, Clutter and
Clutter-Gst.

You can also use a #GOptionEntry array to initialize your own parameters
as shown in the next code fragment:

&lt;example&gt;
&lt;title&gt;Initializing the Clutter-Gst library with additional options&lt;/title&gt;
&lt;programlisting language="c"&gt;
static GOptionEntry options[] =
{
  { "framerate", 'f', 0, G_OPTION_ARG_INT, &amp;opt_framerate,
    "Number of frames per second", NULL },
  { "fourcc", 'o', 0, G_OPTION_ARG_STRING,
     &amp;opt_fourcc, "Fourcc of the wanted YUV format", NULL },
  { NULL }
};

int
main (int argc, char *argv[])
{
   GError           *error = NULL;
   gboolean          result;

   if (!g_thread_supported ())
     g_thread_init (NULL);

   result = clutter_gst_init_with_args (&amp;argc, &amp;argv,
                                        " - Test YUV frames uploading",
                                        options, NULL, &amp;error);

   if (error)
     {
       g_print ("%s\n", error-&gt;message);
       g_error_free (error);
       return EXIT_FAILURE;
     }
  ...
}
&lt;/programlisting&gt;
&lt;/example&gt;</doc>
    </docsection>
    <docsection name="clutter-gst-version">
      <doc xml:space="preserve"
           filename="clutter-gst-version.h"
           line="33">Version checking macros.</doc>
    </docsection>
    <docsection name="clutter-gst-video-sink">
      <doc xml:space="preserve"
           filename="clutter-gst-video-sink.c"
           line="36">#ClutterGstVideoSink is a subclass of #GstBaseSink which can be used to
create a #CoglPipeline for rendering the frames of the video.

To create a basic video player, an application can create a
#GstPipeline as normal using gst_pipeline_new() and set the
sink on it to one created with clutter_gst_video_sink_new(). The
application can then listen for the #ClutterGstVideoSink::new-frame
signal which will be emitted whenever there are new textures ready
for rendering. For simple rendering, the application can just call
clutter_gst_video_sink_get_pipeline() in the signal handler and use
the returned pipeline to paint the new frame.

An application is also free to do more advanced rendering by
customizing the pipeline. In that case it should listen for the
#ClutterGstVideoSink::pipeline-ready signal which will be emitted as
soon as the sink has determined enough information about the video
to know how it should be rendered. In the handler for this signal,
the application can either make modifications to a copy of the
pipeline returned by clutter_gst_video_sink_get_pipeline() or it can
create its own pipeline from scratch and ask the sink to configure
it with clutter_gst_video_sink_setup_pipeline(). If a custom pipeline
is created using one of these methods then the application should
call clutter_gst_video_sink_attach_frame() on the pipeline before
rendering in order to update the textures on the pipeline's layers.

If the %COGL_FEATURE_ID_GLSL feature is available then the pipeline
used by the sink will have a shader snippet with a function in it
called clutter_gst_sample_video0 which takes a single vec2 argument.
This can be used by custom snippets set the by the application to
sample from the video. The vec2 argument represents the normalised
coordinates within the video. The function returns a vec4
containing a pre-multiplied RGBA color of the pixel within the
video.</doc>
    </docsection>
    <function name="create_video_sink"
              c:identifier="clutter_gst_create_video_sink"
              version="3.0">
      <doc xml:space="preserve"
           filename="clutter-gst-util.c"
           line="222">Creates a new #ClutterGstVideoSink initialized with Clutter's Cogl context.</doc>
      <source-position filename="clutter-gst-util.h" line="49"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="clutter-gst-util.c"
             line="227">the newly created #ClutterGstVideoSink.</doc>
        <type name="Gst.Element" c:type="GstElement*"/>
      </return-value>
    </function>
    <function name="init" c:identifier="clutter_gst_init">
      <doc xml:space="preserve"
           filename="clutter-gst-util.c"
           line="112">Utility function to initialize both Clutter and GStreamer.

This function should be called before calling any other GLib functions. If
this is not an option, your program must initialise the GLib thread system
using g_thread_init() before any other GLib functions are called.</doc>
      <source-position filename="clutter-gst-util.h" line="40"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="clutter-gst-util.c"
             line="123">A #ClutterInitError.</doc>
        <type name="Clutter.InitError" c:type="ClutterInitError"/>
      </return-value>
      <parameters>
        <parameter name="argc"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="clutter-gst-util.c"
               line="114">The number of arguments in @argv</doc>
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="argv"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="full"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="clutter-gst-util.c"
               line="115">A pointer to an array</doc>
          <array length="0" zero-terminated="0" c:type="char***">
            <type name="utf8" c:type="char**"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="init_with_args"
              c:identifier="clutter_gst_init_with_args"
              version="1.0"
              throws="1">
      <doc xml:space="preserve"
           filename="clutter-gst-util.c"
           line="152">This function does the same work as clutter_gst_init(). Additionally, it
allows you to add your own command line options, and it automatically
generates nicely formatted --help output. Clutter's and GStreamer's
#GOptionGroup&lt;!-- --&gt;s are added to the set of available options.

Your program must initialise the GLib thread system using g_thread_init()
before any other GLib functions are called.</doc>
      <source-position filename="clutter-gst-util.h" line="42"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="clutter-gst-util.c"
             line="174">%CLUTTER_INIT_SUCCESS on success, a negative integer
  on failure.</doc>
        <type name="Clutter.InitError" c:type="ClutterInitError"/>
      </return-value>
      <parameters>
        <parameter name="argc"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="clutter-gst-util.c"
               line="154">The number of arguments in @argv</doc>
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="argv"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="full"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="clutter-gst-util.c"
               line="155">A pointer to an array</doc>
          <array length="0" zero-terminated="0" c:type="char***">
            <type name="utf8" c:type="char**"/>
          </array>
        </parameter>
        <parameter name="parameter_string" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-util.c"
               line="156">a string which is displayed in
   the first line of &lt;option&gt;--help&lt;/option&gt; output, after
   &lt;literal&gt;&lt;replaceable&gt;programname&lt;/replaceable&gt; [OPTION...]&lt;/literal&gt;</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="entries" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-util.c"
               line="159">a %NULL-terminated array of #GOptionEntry&lt;!-- --&gt;s
   describing the options of your program</doc>
          <type name="GLib.OptionEntry" c:type="GOptionEntry*"/>
        </parameter>
        <parameter name="translation_domain" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="clutter-gst-util.c"
               line="161">a translation domain to use for translating
   the &lt;option&gt;--help&lt;/option&gt; output for the options in @entries
   with gettext(), or %NULL</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
