<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="Gst" version="1.0"/>
  <include name="GstVideo" version="1.0"/>
  <package name="gstreamer-player-1.0"/>
  <c:include name="gst/player/player.h"/>
  <namespace name="GstPlayer"
             version="1.0"
             shared-library="libgstplayer-1.0.so.0"
             c:identifier-prefixes="Gst"
             c:symbol-prefixes="gst">
    <class name="Player"
           c:symbol-prefix="player"
           c:type="GstPlayer"
           parent="Gst.Object"
           glib:type-name="GstPlayer"
           glib:get-type="gst_player_get_type"
           glib:type-struct="PlayerClass">
      <constructor name="new" c:identifier="gst_player_new">
        <doc xml:space="preserve">Creates a new #GstPlayer instance that uses @signal_dispatcher to dispatch
signals to some event loop system, or emits signals directly if NULL is
passed. See gst_player_g_main_context_signal_dispatcher_new().

Video is going to be rendered by @video_renderer, or if %NULL is provided
no special video set up will be done and some default handling will be
performed.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #GstPlayer instance</doc>
          <type name="Player" c:type="GstPlayer*"/>
        </return-value>
        <parameters>
          <parameter name="video_renderer"
                     transfer-ownership="full"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">GstPlayerVideoRenderer to use</doc>
            <type name="PlayerVideoRenderer" c:type="GstPlayerVideoRenderer*"/>
          </parameter>
          <parameter name="signal_dispatcher"
                     transfer-ownership="full"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">GstPlayerSignalDispatcher to use</doc>
            <type name="PlayerSignalDispatcher"
                  c:type="GstPlayerSignalDispatcher*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="config_get_position_update_interval"
                c:identifier="gst_player_config_get_position_update_interval">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">current position update interval in milliseconds

Since 1.10</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayer configuration</doc>
            <type name="Gst.Structure" c:type="const GstStructure*"/>
          </parameter>
        </parameters>
      </function>
      <function name="config_get_seek_accurate"
                c:identifier="gst_player_config_get_seek_accurate">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if accurate seeking is enabled

Since 1.12</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayer configuration</doc>
            <type name="Gst.Structure" c:type="const GstStructure*"/>
          </parameter>
        </parameters>
      </function>
      <function name="config_get_user_agent"
                c:identifier="gst_player_config_get_user_agent">
        <doc xml:space="preserve">Return the user agent which has been configured using
gst_player_config_set_user_agent() if any.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the configured agent, or %NULL
Since 1.10</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayer configuration</doc>
            <type name="Gst.Structure" c:type="const GstStructure*"/>
          </parameter>
        </parameters>
      </function>
      <function name="config_set_position_update_interval"
                c:identifier="gst_player_config_set_position_update_interval">
        <doc xml:space="preserve">set interval in milliseconds between two position-updated signals.
pass 0 to stop updating the position.
Since 1.10</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayer configuration</doc>
            <type name="Gst.Structure" c:type="GstStructure*"/>
          </parameter>
          <parameter name="interval" transfer-ownership="none">
            <doc xml:space="preserve">interval in ms</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </function>
      <function name="config_set_seek_accurate"
                c:identifier="gst_player_config_set_seek_accurate"
                version="1.12">
        <doc xml:space="preserve">Enable or disable accurate seeking. When enabled, elements will try harder
to seek as accurately as possible to the requested seek position. Generally
it will be slower especially for formats that don't have any indexes or
timestamp markers in the stream.

If accurate seeking is disabled, elements will seek as close as the request
position without slowing down seeking too much.

Accurate seeking is disabled by default.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayer configuration</doc>
            <type name="Gst.Structure" c:type="GstStructure*"/>
          </parameter>
          <parameter name="accurate" transfer-ownership="none">
            <doc xml:space="preserve">accurate seek or not</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </function>
      <function name="config_set_user_agent"
                c:identifier="gst_player_config_set_user_agent">
        <doc xml:space="preserve">Set the user agent to pass to the server if @player needs to connect
to a server during playback. This is typically used when playing HTTP
or RTSP streams.

Since 1.10</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="config" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayer configuration</doc>
            <type name="Gst.Structure" c:type="GstStructure*"/>
          </parameter>
          <parameter name="agent" transfer-ownership="none">
            <doc xml:space="preserve">the string to use as user agent</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <function name="get_audio_streams"
                c:identifier="gst_player_get_audio_streams">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GList of
matching #GstPlayerAudioInfo.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="PlayerAudioInfo"/>
          </type>
        </return-value>
        <parameters>
          <parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerMediaInfo</doc>
            <type name="PlayerMediaInfo" c:type="const GstPlayerMediaInfo*"/>
          </parameter>
        </parameters>
      </function>
      <function name="get_subtitle_streams"
                c:identifier="gst_player_get_subtitle_streams">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GList of
matching #GstPlayerSubtitleInfo.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="PlayerSubtitleInfo"/>
          </type>
        </return-value>
        <parameters>
          <parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerMediaInfo</doc>
            <type name="PlayerMediaInfo" c:type="const GstPlayerMediaInfo*"/>
          </parameter>
        </parameters>
      </function>
      <function name="get_video_streams"
                c:identifier="gst_player_get_video_streams">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GList of
matching #GstPlayerVideoInfo.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="PlayerVideoInfo"/>
          </type>
        </return-value>
        <parameters>
          <parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerMediaInfo</doc>
            <type name="PlayerMediaInfo" c:type="const GstPlayerMediaInfo*"/>
          </parameter>
        </parameters>
      </function>
      <function name="visualizations_free"
                c:identifier="gst_player_visualizations_free">
        <doc xml:space="preserve">Frees a %NULL terminated array of #GstPlayerVisualization.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="viss" transfer-ownership="none">
            <doc xml:space="preserve">a %NULL terminated array of #GstPlayerVisualization to free</doc>
            <type name="PlayerVisualization"
                  c:type="GstPlayerVisualization**"/>
          </parameter>
        </parameters>
      </function>
      <function name="visualizations_get"
                c:identifier="gst_player_visualizations_get">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">
 a %NULL terminated array containing all available
 visualizations. Use gst_player_visualizations_free() after
 usage.</doc>
          <array c:type="GstPlayerVisualization**">
            <type name="PlayerVisualization"/>
          </array>
        </return-value>
      </function>
      <method name="get_audio_video_offset"
              c:identifier="gst_player_get_audio_video_offset">
        <doc xml:space="preserve">Retrieve the current value of audio-video-offset property</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The current value of audio-video-offset in nanoseconds

Since 1.10</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_color_balance"
              c:identifier="gst_player_get_color_balance">
        <doc xml:space="preserve">Retrieve the current value of the indicated @type.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The current value of @type, between [0,1]. In case of
  error -1 is returned.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayerColorBalanceType</doc>
            <type name="PlayerColorBalanceType"
                  c:type="GstPlayerColorBalanceType"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_config" c:identifier="gst_player_get_config">
        <doc xml:space="preserve">Get a copy of the current configuration of the player. This configuration
can either be modified and used for the gst_player_set_config() call
or it must be freed after usage.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a copy of the current configuration of @player. Use
gst_structure_free() after usage or gst_player_set_config().

Since 1.10</doc>
          <type name="Gst.Structure" c:type="GstStructure*"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_current_audio_track"
              c:identifier="gst_player_get_current_audio_track">
        <doc xml:space="preserve">A Function to get current audio #GstPlayerAudioInfo instance.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">current audio track.

The caller should free it with g_object_unref()</doc>
          <type name="PlayerAudioInfo" c:type="GstPlayerAudioInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_current_subtitle_track"
              c:identifier="gst_player_get_current_subtitle_track">
        <doc xml:space="preserve">A Function to get current subtitle #GstPlayerSubtitleInfo instance.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">current subtitle track.

The caller should free it with g_object_unref()</doc>
          <type name="PlayerSubtitleInfo" c:type="GstPlayerSubtitleInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_current_video_track"
              c:identifier="gst_player_get_current_video_track">
        <doc xml:space="preserve">A Function to get current video #GstPlayerVideoInfo instance.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">current video track.

The caller should free it with g_object_unref()</doc>
          <type name="PlayerVideoInfo" c:type="GstPlayerVideoInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_current_visualization"
              c:identifier="gst_player_get_current_visualization">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">Name of the currently enabled visualization.
  g_free() after usage.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_duration" c:identifier="gst_player_get_duration">
        <doc xml:space="preserve">Retrieves the duration of the media stream that self represents.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the duration of the currently-playing media stream, in
nanoseconds.</doc>
          <type name="Gst.ClockTime" c:type="GstClockTime"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_media_info" c:identifier="gst_player_get_media_info">
        <doc xml:space="preserve">A Function to get the current media info #GstPlayerMediaInfo instance.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">media info instance.

The caller should free it with g_object_unref()</doc>
          <type name="PlayerMediaInfo" c:type="GstPlayerMediaInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_multiview_flags"
              c:identifier="gst_player_get_multiview_flags"
              version="1.10">
        <doc xml:space="preserve">Retrieve the current value of the indicated @type.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The current value of @type, Default: 0x00000000 "none</doc>
          <type name="GstVideo.VideoMultiviewFlags"
                c:type="GstVideoMultiviewFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_multiview_mode"
              c:identifier="gst_player_get_multiview_mode"
              version="1.10">
        <doc xml:space="preserve">Retrieve the current value of the indicated @type.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The current value of @type, Default: -1 "none"</doc>
          <type name="GstVideo.VideoMultiviewFramePacking"
                c:type="GstVideoMultiviewFramePacking"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mute" c:identifier="gst_player_get_mute">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the currently-playing stream is muted.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pipeline" c:identifier="gst_player_get_pipeline">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The internal playbin instance</doc>
          <type name="Gst.Element" c:type="GstElement*"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_position" c:identifier="gst_player_get_position">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the absolute position time, in nanoseconds, of the
currently-playing stream.</doc>
          <type name="Gst.ClockTime" c:type="GstClockTime"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_rate" c:identifier="gst_player_get_rate">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">current playback rate</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_subtitle_uri"
              c:identifier="gst_player_get_subtitle_uri">
        <doc xml:space="preserve">current subtitle URI</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">URI of the current external subtitle.
  g_free() after usage.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_uri" c:identifier="gst_player_get_uri">
        <doc xml:space="preserve">Gets the URI of the currently-playing stream.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a string containing the URI of the
currently-playing stream. g_free() after usage.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_video_snapshot"
              c:identifier="gst_player_get_video_snapshot">
        <doc xml:space="preserve">Get a snapshot of the currently selected video stream, if any. The format can be
selected with @format and optional configuration is possible with @config
Currently supported settings are:
- width, height of type G_TYPE_INT
- pixel-aspect-ratio of type GST_TYPE_FRACTION
 Except for GST_PLAYER_THUMBNAIL_RAW_NATIVE format, if no config is set, pixel-aspect-ratio would be 1/1</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">Current video snapshot sample or %NULL on failure

Since 1.12</doc>
          <type name="Gst.Sample" c:type="GstSample*"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
          <parameter name="format" transfer-ownership="none">
            <doc xml:space="preserve">output format of the video snapshot</doc>
            <type name="PlayerSnapshotFormat"
                  c:type="GstPlayerSnapshotFormat"/>
          </parameter>
          <parameter name="config"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">Additional configuration</doc>
            <type name="Gst.Structure" c:type="const GstStructure*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_volume" c:identifier="gst_player_get_volume">
        <doc xml:space="preserve">Returns the current volume level, as a percentage between 0 and 1.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the volume as percentage between 0 and 1.</doc>
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_color_balance"
              c:identifier="gst_player_has_color_balance">
        <doc xml:space="preserve">Checks whether the @player has color balance support available.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @player has color balance support. Otherwise,
  %FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="pause" c:identifier="gst_player_pause">
        <doc xml:space="preserve">Pauses the current stream.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="play" c:identifier="gst_player_play">
        <doc xml:space="preserve">Request to play the loaded stream.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="seek" c:identifier="gst_player_seek">
        <doc xml:space="preserve">Seeks the currently-playing stream to the absolute @position time
in nanoseconds.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
          <parameter name="position" transfer-ownership="none">
            <doc xml:space="preserve">position to seek in nanoseconds</doc>
            <type name="Gst.ClockTime" c:type="GstClockTime"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_audio_track" c:identifier="gst_player_set_audio_track">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE or %FALSE

Sets the audio track @stream_idex.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
          <parameter name="stream_index" transfer-ownership="none">
            <doc xml:space="preserve">stream index</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_audio_track_enabled"
              c:identifier="gst_player_set_audio_track_enabled">
        <doc xml:space="preserve">Enable or disable the current audio track.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
          <parameter name="enabled" transfer-ownership="none">
            <doc xml:space="preserve">TRUE or FALSE</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_audio_video_offset"
              c:identifier="gst_player_set_audio_video_offset">
        <doc xml:space="preserve">Sets audio-video-offset property by value of @offset

Since 1.10</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
          <parameter name="offset" transfer-ownership="none">
            <doc xml:space="preserve">#gint64 in nanoseconds</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_color_balance"
              c:identifier="gst_player_set_color_balance">
        <doc xml:space="preserve">Sets the current value of the indicated channel @type to the passed
value.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayerColorBalanceType</doc>
            <type name="PlayerColorBalanceType"
                  c:type="GstPlayerColorBalanceType"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">The new value for the @type, ranged [0,1]</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_config" c:identifier="gst_player_set_config">
        <doc xml:space="preserve">Set the configuration of the player. If the player is already configured, and
the configuration haven't change, this function will return %TRUE. If the
player is not in the GST_PLAYER_STATE_STOPPED, this method will return %FALSE
and active configuration will remain.

@config is a #GstStructure that contains the configuration parameters for
the player.

This function takes ownership of @config.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE when the configuration could be set.
Since 1.10</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
          <parameter name="config" transfer-ownership="full">
            <doc xml:space="preserve">a #GstStructure</doc>
            <type name="Gst.Structure" c:type="GstStructure*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_multiview_flags"
              c:identifier="gst_player_set_multiview_flags"
              version="1.10">
        <doc xml:space="preserve">Sets the current value of the indicated mode @type to the passed
value.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve">The new value for the @type</doc>
            <type name="GstVideo.VideoMultiviewFlags"
                  c:type="GstVideoMultiviewFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_multiview_mode"
              c:identifier="gst_player_set_multiview_mode"
              version="1.10">
        <doc xml:space="preserve">Sets the current value of the indicated mode @type to the passed
value.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:space="preserve">The new value for the @type</doc>
            <type name="GstVideo.VideoMultiviewFramePacking"
                  c:type="GstVideoMultiviewFramePacking"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_mute" c:identifier="gst_player_set_mute">
        <doc xml:space="preserve">%TRUE if the currently-playing stream should be muted.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
          <parameter name="val" transfer-ownership="none">
            <doc xml:space="preserve">Mute state the should be set</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_rate" c:identifier="gst_player_set_rate">
        <doc xml:space="preserve">Playback at specified rate</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
          <parameter name="rate" transfer-ownership="none">
            <doc xml:space="preserve">playback rate</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_subtitle_track"
              c:identifier="gst_player_set_subtitle_track">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE or %FALSE

Sets the subtitle strack @stream_index.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
          <parameter name="stream_index" transfer-ownership="none">
            <doc xml:space="preserve">stream index</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_subtitle_track_enabled"
              c:identifier="gst_player_set_subtitle_track_enabled">
        <doc xml:space="preserve">Enable or disable the current subtitle track.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
          <parameter name="enabled" transfer-ownership="none">
            <doc xml:space="preserve">TRUE or FALSE</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_subtitle_uri"
              c:identifier="gst_player_set_subtitle_uri">
        <doc xml:space="preserve">Sets the external subtitle URI. This should be combined with a call to
gst_player_set_subtitle_track_enabled(@player, TRUE) so the subtitles are actually
rendered.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve">subtitle URI</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_uri" c:identifier="gst_player_set_uri">
        <doc xml:space="preserve">Sets the next URI to play.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve">next URI to play.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_video_track" c:identifier="gst_player_set_video_track">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE or %FALSE

Sets the video track @stream_index.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
          <parameter name="stream_index" transfer-ownership="none">
            <doc xml:space="preserve">stream index</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_video_track_enabled"
              c:identifier="gst_player_set_video_track_enabled">
        <doc xml:space="preserve">Enable or disable the current video track.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
          <parameter name="enabled" transfer-ownership="none">
            <doc xml:space="preserve">TRUE or FALSE</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_visualization"
              c:identifier="gst_player_set_visualization">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the visualizations was set correctly. Otherwise,
%FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">visualization element obtained from
#gst_player_visualizations_get()</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_visualization_enabled"
              c:identifier="gst_player_set_visualization_enabled">
        <doc xml:space="preserve">Enable or disable the visualization.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
          <parameter name="enabled" transfer-ownership="none">
            <doc xml:space="preserve">TRUE or FALSE</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_volume" c:identifier="gst_player_set_volume">
        <doc xml:space="preserve">Sets the volume level of the stream as a percentage between 0 and 1.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
          <parameter name="val" transfer-ownership="none">
            <doc xml:space="preserve">the new volume level, as a percentage between 0 and 1</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="stop" c:identifier="gst_player_stop">
        <doc xml:space="preserve">Stops playing the current stream and resets to the first position
in the stream.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayer instance</doc>
            <type name="Player" c:type="GstPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="audio-video-offset"
                writable="1"
                transfer-ownership="none">
        <type name="gint64" c:type="gint64"/>
      </property>
      <property name="current-audio-track" transfer-ownership="none">
        <type name="PlayerAudioInfo"/>
      </property>
      <property name="current-subtitle-track" transfer-ownership="none">
        <type name="PlayerSubtitleInfo"/>
      </property>
      <property name="current-video-track" transfer-ownership="none">
        <type name="PlayerVideoInfo"/>
      </property>
      <property name="duration" transfer-ownership="none">
        <type name="guint64" c:type="guint64"/>
      </property>
      <property name="media-info" transfer-ownership="none">
        <type name="PlayerMediaInfo"/>
      </property>
      <property name="mute" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="pipeline" transfer-ownership="none">
        <type name="Gst.Element"/>
      </property>
      <property name="position" transfer-ownership="none">
        <type name="guint64" c:type="guint64"/>
      </property>
      <property name="rate" writable="1" transfer-ownership="none">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="signal-dispatcher"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="PlayerSignalDispatcher"/>
      </property>
      <property name="suburi" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="uri" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="video-multiview-flags"
                writable="1"
                transfer-ownership="none">
        <type name="GstVideo.VideoMultiviewFlags"/>
      </property>
      <property name="video-multiview-mode"
                writable="1"
                transfer-ownership="none">
        <type name="GstVideo.VideoMultiviewFramePacking"/>
      </property>
      <property name="video-renderer"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="PlayerVideoRenderer"/>
      </property>
      <property name="volume" writable="1" transfer-ownership="none">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <glib:signal name="buffering" when="last" no-recurse="1" no-hooks="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="duration-changed"
                   when="last"
                   no-recurse="1"
                   no-hooks="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint64" c:type="guint64"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="end-of-stream"
                   when="last"
                   no-recurse="1"
                   no-hooks="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="error" when="last" no-recurse="1" no-hooks="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="GLib.Error"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="media-info-updated"
                   when="last"
                   no-recurse="1"
                   no-hooks="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="PlayerMediaInfo"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="mute-changed" when="last" no-recurse="1" no-hooks="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="position-updated"
                   when="last"
                   no-recurse="1"
                   no-hooks="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint64" c:type="guint64"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="seek-done" when="last" no-recurse="1" no-hooks="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint64" c:type="guint64"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="state-changed"
                   when="last"
                   no-recurse="1"
                   no-hooks="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="PlayerState"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="uri-loaded" when="last" no-recurse="1" no-hooks="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="video-dimensions-changed"
                   when="last"
                   no-recurse="1"
                   no-hooks="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="volume-changed"
                   when="last"
                   no-recurse="1"
                   no-hooks="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="warning" when="last" no-recurse="1" no-hooks="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="GLib.Error"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <class name="PlayerAudioInfo"
           c:symbol-prefix="player_audio_info"
           c:type="GstPlayerAudioInfo"
           parent="PlayerStreamInfo"
           glib:type-name="GstPlayerAudioInfo"
           glib:get-type="gst_player_audio_info_get_type"
           glib:type-struct="PlayerAudioInfoClass">
      <doc xml:space="preserve">#GstPlayerStreamInfo specific to audio streams.</doc>
      <method name="get_bitrate"
              c:identifier="gst_player_audio_info_get_bitrate">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the audio bitrate in #GstPlayerAudioInfo.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerAudioInfo</doc>
            <type name="PlayerAudioInfo" c:type="const GstPlayerAudioInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_channels"
              c:identifier="gst_player_audio_info_get_channels">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of audio channels in #GstPlayerAudioInfo.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerAudioInfo</doc>
            <type name="PlayerAudioInfo" c:type="const GstPlayerAudioInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_language"
              c:identifier="gst_player_audio_info_get_language">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the language of the stream, or NULL if unknown.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerAudioInfo</doc>
            <type name="PlayerAudioInfo" c:type="const GstPlayerAudioInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_max_bitrate"
              c:identifier="gst_player_audio_info_get_max_bitrate">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the audio maximum bitrate in #GstPlayerAudioInfo.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerAudioInfo</doc>
            <type name="PlayerAudioInfo" c:type="const GstPlayerAudioInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_sample_rate"
              c:identifier="gst_player_audio_info_get_sample_rate">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the audio sample rate in #GstPlayerAudioInfo.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerAudioInfo</doc>
            <type name="PlayerAudioInfo" c:type="const GstPlayerAudioInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
    </class>
    <record name="PlayerAudioInfoClass"
            c:type="GstPlayerAudioInfoClass"
            disguised="1"
            glib:is-gtype-struct-for="PlayerAudioInfo">
    </record>
    <record name="PlayerClass"
            c:type="GstPlayerClass"
            disguised="1"
            glib:is-gtype-struct-for="Player">
    </record>
    <enumeration name="PlayerColorBalanceType"
                 glib:type-name="GstPlayerColorBalanceType"
                 glib:get-type="gst_player_color_balance_type_get_type"
                 c:type="GstPlayerColorBalanceType">
      <member name="hue"
              value="3"
              c:identifier="GST_PLAYER_COLOR_BALANCE_HUE"
              glib:nick="hue">
        <doc xml:space="preserve">hue or color balance.</doc>
      </member>
      <member name="brightness"
              value="0"
              c:identifier="GST_PLAYER_COLOR_BALANCE_BRIGHTNESS"
              glib:nick="brightness">
        <doc xml:space="preserve">brightness or black level.</doc>
      </member>
      <member name="saturation"
              value="2"
              c:identifier="GST_PLAYER_COLOR_BALANCE_SATURATION"
              glib:nick="saturation">
        <doc xml:space="preserve">color saturation or chroma
gain.</doc>
      </member>
      <member name="contrast"
              value="1"
              c:identifier="GST_PLAYER_COLOR_BALANCE_CONTRAST"
              glib:nick="contrast">
        <doc xml:space="preserve">contrast or luma gain.</doc>
      </member>
      <function name="get_name"
                c:identifier="gst_player_color_balance_type_get_name">
        <doc xml:space="preserve">Gets a string representing the given color balance type.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a string with the name of the color
  balance type.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerColorBalanceType</doc>
            <type name="PlayerColorBalanceType"
                  c:type="GstPlayerColorBalanceType"/>
          </parameter>
        </parameters>
      </function>
    </enumeration>
    <enumeration name="PlayerError"
                 glib:type-name="GstPlayerError"
                 glib:get-type="gst_player_error_get_type"
                 c:type="GstPlayerError"
                 glib:error-domain="gst-player-error-quark">
      <member name="failed"
              value="0"
              c:identifier="GST_PLAYER_ERROR_FAILED"
              glib:nick="failed">
        <doc xml:space="preserve">generic error.</doc>
      </member>
      <function name="get_name" c:identifier="gst_player_error_get_name">
        <doc xml:space="preserve">Gets a string representing the given error.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a string with the given error.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="error" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerError</doc>
            <type name="PlayerError" c:type="GstPlayerError"/>
          </parameter>
        </parameters>
      </function>
      <function name="quark" c:identifier="gst_player_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <class name="PlayerGMainContextSignalDispatcher"
           c:symbol-prefix="player_g_main_context_signal_dispatcher"
           c:type="GstPlayerGMainContextSignalDispatcher"
           parent="GObject.Object"
           glib:type-name="GstPlayerGMainContextSignalDispatcher"
           glib:get-type="gst_player_g_main_context_signal_dispatcher_get_type"
           glib:type-struct="PlayerGMainContextSignalDispatcherClass">
      <implements name="PlayerSignalDispatcher"/>
      <function name="new"
                c:identifier="gst_player_g_main_context_signal_dispatcher_new">
        <doc xml:space="preserve">Creates a new GstPlayerSignalDispatcher that uses @application_context,
or the thread default one if %NULL is used. See gst_player_new_full().</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the new GstPlayerSignalDispatcher</doc>
          <type name="PlayerSignalDispatcher"
                c:type="GstPlayerSignalDispatcher*"/>
        </return-value>
        <parameters>
          <parameter name="application_context"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">GMainContext to use or %NULL</doc>
            <type name="GLib.MainContext" c:type="GMainContext*"/>
          </parameter>
        </parameters>
      </function>
      <property name="application-context"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="GLib.MainContext"/>
      </property>
    </class>
    <record name="PlayerGMainContextSignalDispatcherClass"
            c:type="GstPlayerGMainContextSignalDispatcherClass"
            disguised="1"
            glib:is-gtype-struct-for="PlayerGMainContextSignalDispatcher">
    </record>
    <class name="PlayerMediaInfo"
           c:symbol-prefix="player_media_info"
           c:type="GstPlayerMediaInfo"
           parent="GObject.Object"
           glib:type-name="GstPlayerMediaInfo"
           glib:get-type="gst_player_media_info_get_type"
           glib:type-struct="PlayerMediaInfoClass">
      <doc xml:space="preserve">Structure containing the media information of a URI.</doc>
      <method name="get_audio_streams"
              c:identifier="gst_player_media_info_get_audio_streams">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GList of
matching #GstPlayerAudioInfo.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="PlayerAudioInfo"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerMediaInfo</doc>
            <type name="PlayerMediaInfo" c:type="const GstPlayerMediaInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_container_format"
              c:identifier="gst_player_media_info_get_container_format">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the container format.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerMediaInfo</doc>
            <type name="PlayerMediaInfo" c:type="const GstPlayerMediaInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_duration"
              c:identifier="gst_player_media_info_get_duration">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">duration of the media.</doc>
          <type name="Gst.ClockTime" c:type="GstClockTime"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerMediaInfo</doc>
            <type name="PlayerMediaInfo" c:type="const GstPlayerMediaInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_image_sample"
              c:identifier="gst_player_media_info_get_image_sample">
        <doc xml:space="preserve">Function to get the image (or preview-image) stored in taglist.
Application can use gst_sample_*_() API's to get caps, buffer etc.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">GstSample or NULL.</doc>
          <type name="Gst.Sample" c:type="GstSample*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerMediaInfo</doc>
            <type name="PlayerMediaInfo" c:type="const GstPlayerMediaInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_number_of_audio_streams"
              c:identifier="gst_player_media_info_get_number_of_audio_streams"
              version="1.12">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">number of audio streams.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerMediaInfo</doc>
            <type name="PlayerMediaInfo" c:type="const GstPlayerMediaInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_number_of_streams"
              c:identifier="gst_player_media_info_get_number_of_streams"
              version="1.12">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">number of total streams.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerMediaInfo</doc>
            <type name="PlayerMediaInfo" c:type="const GstPlayerMediaInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_number_of_subtitle_streams"
              c:identifier="gst_player_media_info_get_number_of_subtitle_streams"
              version="1.12">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">number of subtitle streams.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerMediaInfo</doc>
            <type name="PlayerMediaInfo" c:type="const GstPlayerMediaInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_number_of_video_streams"
              c:identifier="gst_player_media_info_get_number_of_video_streams"
              version="1.12">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">number of video streams.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerMediaInfo</doc>
            <type name="PlayerMediaInfo" c:type="const GstPlayerMediaInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_stream_list"
              c:identifier="gst_player_media_info_get_stream_list">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GList of
matching #GstPlayerStreamInfo.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="PlayerStreamInfo"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerMediaInfo</doc>
            <type name="PlayerMediaInfo" c:type="const GstPlayerMediaInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_subtitle_streams"
              c:identifier="gst_player_media_info_get_subtitle_streams">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GList of
matching #GstPlayerSubtitleInfo.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="PlayerSubtitleInfo"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerMediaInfo</doc>
            <type name="PlayerMediaInfo" c:type="const GstPlayerMediaInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tags" c:identifier="gst_player_media_info_get_tags">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the tags contained in media info.</doc>
          <type name="Gst.TagList" c:type="GstTagList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerMediaInfo</doc>
            <type name="PlayerMediaInfo" c:type="const GstPlayerMediaInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_title" c:identifier="gst_player_media_info_get_title">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the media title.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerMediaInfo</doc>
            <type name="PlayerMediaInfo" c:type="const GstPlayerMediaInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_uri" c:identifier="gst_player_media_info_get_uri">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the URI associated with #GstPlayerMediaInfo.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerMediaInfo</doc>
            <type name="PlayerMediaInfo" c:type="const GstPlayerMediaInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_video_streams"
              c:identifier="gst_player_media_info_get_video_streams">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GList of
matching #GstPlayerVideoInfo.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="PlayerVideoInfo"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerMediaInfo</doc>
            <type name="PlayerMediaInfo" c:type="const GstPlayerMediaInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_live" c:identifier="gst_player_media_info_is_live">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the media is live.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerMediaInfo</doc>
            <type name="PlayerMediaInfo" c:type="const GstPlayerMediaInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_seekable"
              c:identifier="gst_player_media_info_is_seekable">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the media is seekable.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerMediaInfo</doc>
            <type name="PlayerMediaInfo" c:type="const GstPlayerMediaInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
    </class>
    <record name="PlayerMediaInfoClass"
            c:type="GstPlayerMediaInfoClass"
            disguised="1"
            glib:is-gtype-struct-for="PlayerMediaInfo">
    </record>
    <interface name="PlayerSignalDispatcher"
               c:symbol-prefix="player_signal_dispatcher"
               c:type="GstPlayerSignalDispatcher"
               glib:type-name="GstPlayerSignalDispatcher"
               glib:get-type="gst_player_signal_dispatcher_get_type"
               glib:type-struct="PlayerSignalDispatcherInterface">
      <virtual-method name="dispatch">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="PlayerSignalDispatcher"
                  c:type="GstPlayerSignalDispatcher*"/>
          </instance-parameter>
          <parameter name="player" transfer-ownership="none">
            <type name="Player" c:type="GstPlayer*"/>
          </parameter>
          <parameter name="emitter"
                     transfer-ownership="none"
                     scope="notified"
                     closure="2"
                     destroy="3">
            <type name="PlayerSignalDispatcherFunc"
                  c:type="GstPlayerSignalDispatcherFunc"/>
          </parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="destroy" transfer-ownership="none" scope="async">
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </virtual-method>
    </interface>
    <callback name="PlayerSignalDispatcherFunc"
              c:type="GstPlayerSignalDispatcherFunc">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <record name="PlayerSignalDispatcherInterface"
            c:type="GstPlayerSignalDispatcherInterface"
            glib:is-gtype-struct-for="PlayerSignalDispatcher">
      <field name="parent_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="dispatch">
        <callback name="dispatch">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="PlayerSignalDispatcher"
                    c:type="GstPlayerSignalDispatcher*"/>
            </parameter>
            <parameter name="player" transfer-ownership="none">
              <type name="Player" c:type="GstPlayer*"/>
            </parameter>
            <parameter name="emitter"
                       transfer-ownership="none"
                       scope="notified"
                       closure="3"
                       destroy="4">
              <type name="PlayerSignalDispatcherFunc"
                    c:type="GstPlayerSignalDispatcherFunc"/>
            </parameter>
            <parameter name="data"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
            <parameter name="destroy" transfer-ownership="none" scope="async">
              <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="PlayerSnapshotFormat" c:type="GstPlayerSnapshotFormat">
      <member name="raw_native"
              value="0"
              c:identifier="GST_PLAYER_THUMBNAIL_RAW_NATIVE">
      </member>
      <member name="raw_xrgb"
              value="1"
              c:identifier="GST_PLAYER_THUMBNAIL_RAW_xRGB">
      </member>
      <member name="raw_bgrx"
              value="2"
              c:identifier="GST_PLAYER_THUMBNAIL_RAW_BGRx">
      </member>
      <member name="jpg" value="3" c:identifier="GST_PLAYER_THUMBNAIL_JPG">
      </member>
      <member name="png" value="4" c:identifier="GST_PLAYER_THUMBNAIL_PNG">
      </member>
    </enumeration>
    <enumeration name="PlayerState"
                 glib:type-name="GstPlayerState"
                 glib:get-type="gst_player_state_get_type"
                 c:type="GstPlayerState">
      <member name="stopped"
              value="0"
              c:identifier="GST_PLAYER_STATE_STOPPED"
              glib:nick="stopped">
        <doc xml:space="preserve">the player is stopped.</doc>
      </member>
      <member name="buffering"
              value="1"
              c:identifier="GST_PLAYER_STATE_BUFFERING"
              glib:nick="buffering">
        <doc xml:space="preserve">the player is buffering.</doc>
      </member>
      <member name="paused"
              value="2"
              c:identifier="GST_PLAYER_STATE_PAUSED"
              glib:nick="paused">
        <doc xml:space="preserve">the player is paused.</doc>
      </member>
      <member name="playing"
              value="3"
              c:identifier="GST_PLAYER_STATE_PLAYING"
              glib:nick="playing">
        <doc xml:space="preserve">the player is currently playing a
stream.</doc>
      </member>
      <function name="get_name" c:identifier="gst_player_state_get_name">
        <doc xml:space="preserve">Gets a string representing the given state.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a string with the name of the state.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="state" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerState</doc>
            <type name="PlayerState" c:type="GstPlayerState"/>
          </parameter>
        </parameters>
      </function>
    </enumeration>
    <class name="PlayerStreamInfo"
           c:symbol-prefix="player_stream_info"
           c:type="GstPlayerStreamInfo"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="GstPlayerStreamInfo"
           glib:get-type="gst_player_stream_info_get_type"
           glib:type-struct="PlayerStreamInfoClass">
      <doc xml:space="preserve">Base structure for information concering a media stream. Depending on
the stream type, one can find more media-specific information in
#GstPlayerVideoInfo, #GstPlayerAudioInfo, #GstPlayerSubtitleInfo.</doc>
      <method name="get_caps" c:identifier="gst_player_stream_info_get_caps">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #GstCaps of the stream.</doc>
          <type name="Gst.Caps" c:type="GstCaps*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerStreamInfo</doc>
            <type name="PlayerStreamInfo" c:type="const GstPlayerStreamInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_codec" c:identifier="gst_player_stream_info_get_codec">
        <doc xml:space="preserve">A string describing codec used in #GstPlayerStreamInfo.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">codec string or NULL on unknown.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerStreamInfo</doc>
            <type name="PlayerStreamInfo" c:type="const GstPlayerStreamInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_index" c:identifier="gst_player_stream_info_get_index">
        <doc xml:space="preserve">Function to get stream index from #GstPlayerStreamInfo instance.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the stream index of this stream.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerStreamInfo</doc>
            <type name="PlayerStreamInfo" c:type="const GstPlayerStreamInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_stream_type"
              c:identifier="gst_player_stream_info_get_stream_type">
        <doc xml:space="preserve">Function to return human readable name for the stream type
of the given @info (ex: "audio", "video", "subtitle")</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a human readable name</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerStreamInfo</doc>
            <type name="PlayerStreamInfo" c:type="const GstPlayerStreamInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tags" c:identifier="gst_player_stream_info_get_tags">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the tags contained in this stream.</doc>
          <type name="Gst.TagList" c:type="GstTagList*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerStreamInfo</doc>
            <type name="PlayerStreamInfo" c:type="const GstPlayerStreamInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
    </class>
    <record name="PlayerStreamInfoClass"
            c:type="GstPlayerStreamInfoClass"
            disguised="1"
            glib:is-gtype-struct-for="PlayerStreamInfo">
    </record>
    <class name="PlayerSubtitleInfo"
           c:symbol-prefix="player_subtitle_info"
           c:type="GstPlayerSubtitleInfo"
           parent="PlayerStreamInfo"
           glib:type-name="GstPlayerSubtitleInfo"
           glib:get-type="gst_player_subtitle_info_get_type"
           glib:type-struct="PlayerSubtitleInfoClass">
      <doc xml:space="preserve">#GstPlayerStreamInfo specific to subtitle streams.</doc>
      <method name="get_language"
              c:identifier="gst_player_subtitle_info_get_language">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the language of the stream, or NULL if unknown.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerSubtitleInfo</doc>
            <type name="PlayerSubtitleInfo"
                  c:type="const GstPlayerSubtitleInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
    </class>
    <record name="PlayerSubtitleInfoClass"
            c:type="GstPlayerSubtitleInfoClass"
            disguised="1"
            glib:is-gtype-struct-for="PlayerSubtitleInfo">
    </record>
    <class name="PlayerVideoInfo"
           c:symbol-prefix="player_video_info"
           c:type="GstPlayerVideoInfo"
           parent="PlayerStreamInfo"
           glib:type-name="GstPlayerVideoInfo"
           glib:get-type="gst_player_video_info_get_type"
           glib:type-struct="PlayerVideoInfoClass">
      <doc xml:space="preserve">#GstPlayerStreamInfo specific to video streams.</doc>
      <method name="get_bitrate"
              c:identifier="gst_player_video_info_get_bitrate">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the current bitrate of video in #GstPlayerVideoInfo.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerVideoInfo</doc>
            <type name="PlayerVideoInfo" c:type="const GstPlayerVideoInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_framerate"
              c:identifier="gst_player_video_info_get_framerate">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerVideoInfo</doc>
            <type name="PlayerVideoInfo" c:type="const GstPlayerVideoInfo*"/>
          </instance-parameter>
          <parameter name="fps_n"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">Numerator of frame rate</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="fps_d"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">Denominator of frame rate</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_height"
              c:identifier="gst_player_video_info_get_height">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the height of video in #GstPlayerVideoInfo.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerVideoInfo</doc>
            <type name="PlayerVideoInfo" c:type="const GstPlayerVideoInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_max_bitrate"
              c:identifier="gst_player_video_info_get_max_bitrate">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the maximum bitrate of video in #GstPlayerVideoInfo.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerVideoInfo</doc>
            <type name="PlayerVideoInfo" c:type="const GstPlayerVideoInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pixel_aspect_ratio"
              c:identifier="gst_player_video_info_get_pixel_aspect_ratio">
        <doc xml:space="preserve">Returns the pixel aspect ratio in @par_n and @par_d</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerVideoInfo</doc>
            <type name="PlayerVideoInfo" c:type="const GstPlayerVideoInfo*"/>
          </instance-parameter>
          <parameter name="par_n"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">numerator</doc>
            <type name="guint" c:type="guint*"/>
          </parameter>
          <parameter name="par_d"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">denominator</doc>
            <type name="guint" c:type="guint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_width" c:identifier="gst_player_video_info_get_width">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the width of video in #GstPlayerVideoInfo.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerVideoInfo</doc>
            <type name="PlayerVideoInfo" c:type="const GstPlayerVideoInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
    </class>
    <record name="PlayerVideoInfoClass"
            c:type="GstPlayerVideoInfoClass"
            disguised="1"
            glib:is-gtype-struct-for="PlayerVideoInfo">
    </record>
    <class name="PlayerVideoOverlayVideoRenderer"
           c:symbol-prefix="player_video_overlay_video_renderer"
           c:type="GstPlayerVideoOverlayVideoRenderer"
           parent="GObject.Object"
           glib:type-name="GstPlayerVideoOverlayVideoRenderer"
           glib:get-type="gst_player_video_overlay_video_renderer_get_type"
           glib:type-struct="PlayerVideoOverlayVideoRendererClass">
      <implements name="PlayerVideoRenderer"/>
      <function name="new"
                c:identifier="gst_player_video_overlay_video_renderer_new">
        <return-value transfer-ownership="full">
          <type name="PlayerVideoRenderer" c:type="GstPlayerVideoRenderer*"/>
        </return-value>
        <parameters>
          <parameter name="window_handle"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">Window handle to use or %NULL</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <function name="new_with_sink"
                c:identifier="gst_player_video_overlay_video_renderer_new_with_sink">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">

Since 1.12</doc>
          <type name="PlayerVideoRenderer" c:type="GstPlayerVideoRenderer*"/>
        </return-value>
        <parameters>
          <parameter name="window_handle"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">Window handle to use or %NULL</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="video_sink" transfer-ownership="none">
            <doc xml:space="preserve">the custom video_sink element to be set for the video renderer</doc>
            <type name="Gst.Element" c:type="GstElement*"/>
          </parameter>
        </parameters>
      </function>
      <method name="expose"
              c:identifier="gst_player_video_overlay_video_renderer_expose">
        <doc xml:space="preserve">Tell an overlay that it has been exposed. This will redraw the current frame
in the drawable even if the pipeline is PAUSED.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerVideoOverlayVideoRenderer instance.</doc>
            <type name="PlayerVideoOverlayVideoRenderer"
                  c:type="GstPlayerVideoOverlayVideoRenderer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_render_rectangle"
              c:identifier="gst_player_video_overlay_video_renderer_get_render_rectangle">
        <doc xml:space="preserve">Return the currently configured render rectangle. See gst_player_video_overlay_video_renderer_set_render_rectangle()
for details.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerVideoOverlayVideoRenderer instance</doc>
            <type name="PlayerVideoOverlayVideoRenderer"
                  c:type="GstPlayerVideoOverlayVideoRenderer*"/>
          </instance-parameter>
          <parameter name="x"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve">the horizontal offset of the render area inside the window</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="y"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve">the vertical offset of the render area inside the window</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="width"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve">the width of the render area inside the window</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="height"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve">the height of the render area inside the window</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_window_handle"
              c:identifier="gst_player_video_overlay_video_renderer_get_window_handle">
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">The currently set, platform specific window
handle</doc>
          <type name="gpointer" c:type="gpointer"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayerVideoRenderer instance</doc>
            <type name="PlayerVideoOverlayVideoRenderer"
                  c:type="GstPlayerVideoOverlayVideoRenderer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_render_rectangle"
              c:identifier="gst_player_video_overlay_video_renderer_set_render_rectangle">
        <doc xml:space="preserve">Configure a subregion as a video target within the window set by
gst_player_video_overlay_video_renderer_set_window_handle(). If this is not
used or not supported the video will fill the area of the window set as the
overlay to 100%. By specifying the rectangle, the video can be overlaid to
a specific region of that window only. After setting the new rectangle one
should call gst_player_video_overlay_video_renderer_expose() to force a
redraw. To unset the region pass -1 for the @width and @height parameters.

This method is needed for non fullscreen video overlay in UI toolkits that
do not support subwindows.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #GstPlayerVideoOverlayVideoRenderer instance</doc>
            <type name="PlayerVideoOverlayVideoRenderer"
                  c:type="GstPlayerVideoOverlayVideoRenderer*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve">the horizontal offset of the render area inside the window</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve">the vertical offset of the render area inside the window</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve">the width of the render area inside the window</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve">the height of the render area inside the window</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_window_handle"
              c:identifier="gst_player_video_overlay_video_renderer_set_window_handle">
        <doc xml:space="preserve">Sets the platform specific window handle into which the video
should be rendered</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayerVideoRenderer instance</doc>
            <type name="PlayerVideoOverlayVideoRenderer"
                  c:type="GstPlayerVideoOverlayVideoRenderer*"/>
          </instance-parameter>
          <parameter name="window_handle"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">handle referencing to the platform specific window</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <property name="video-sink" writable="1" transfer-ownership="none">
        <type name="Gst.Element"/>
      </property>
      <property name="window-handle"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="gpointer" c:type="gpointer"/>
      </property>
    </class>
    <record name="PlayerVideoOverlayVideoRendererClass"
            c:type="GstPlayerVideoOverlayVideoRendererClass"
            disguised="1"
            glib:is-gtype-struct-for="PlayerVideoOverlayVideoRenderer">
    </record>
    <interface name="PlayerVideoRenderer"
               c:symbol-prefix="player_video_renderer"
               c:type="GstPlayerVideoRenderer"
               glib:type-name="GstPlayerVideoRenderer"
               glib:get-type="gst_player_video_renderer_get_type"
               glib:type-struct="PlayerVideoRendererInterface">
      <virtual-method name="create_video_sink" introspectable="0">
        <return-value>
          <type name="Gst.Element" c:type="GstElement*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="PlayerVideoRenderer" c:type="GstPlayerVideoRenderer*"/>
          </instance-parameter>
          <parameter name="player" transfer-ownership="none">
            <type name="Player" c:type="GstPlayer*"/>
          </parameter>
        </parameters>
      </virtual-method>
    </interface>
    <record name="PlayerVideoRendererInterface"
            c:type="GstPlayerVideoRendererInterface"
            glib:is-gtype-struct-for="PlayerVideoRenderer">
      <field name="parent_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="create_video_sink" introspectable="0">
        <callback name="create_video_sink" introspectable="0">
          <return-value>
            <type name="Gst.Element" c:type="GstElement*"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="PlayerVideoRenderer"
                    c:type="GstPlayerVideoRenderer*"/>
            </parameter>
            <parameter name="player" transfer-ownership="none">
              <type name="Player" c:type="GstPlayer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="PlayerVisualization"
            c:type="GstPlayerVisualization"
            glib:type-name="GstPlayerVisualization"
            glib:get-type="gst_player_visualization_get_type"
            c:symbol-prefix="player_visualization">
      <doc xml:space="preserve">A #GstPlayerVisualization descriptor.</doc>
      <field name="name" writable="1">
        <doc xml:space="preserve">name of the visualization.</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <field name="description" writable="1">
        <doc xml:space="preserve">description of the visualization.</doc>
        <type name="utf8" c:type="gchar*"/>
      </field>
      <method name="copy" c:identifier="gst_player_visualization_copy">
        <doc xml:space="preserve">Makes a copy of the #GstPlayerVisualization. The result must be
freed using gst_player_visualization_free().</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">an allocated copy of @vis.</doc>
          <type name="PlayerVisualization" c:type="GstPlayerVisualization*"/>
        </return-value>
        <parameters>
          <instance-parameter name="vis" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayerVisualization instance</doc>
            <type name="PlayerVisualization"
                  c:type="const GstPlayerVisualization*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="gst_player_visualization_free">
        <doc xml:space="preserve">Frees a #GstPlayerVisualization.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="vis" transfer-ownership="none">
            <doc xml:space="preserve">#GstPlayerVisualization instance</doc>
            <type name="PlayerVisualization" c:type="GstPlayerVisualization*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <function name="player_color_balance_type_get_name"
              c:identifier="gst_player_color_balance_type_get_name"
              moved-to="PlayerColorBalanceType.get_name">
      <doc xml:space="preserve">Gets a string representing the given color balance type.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a string with the name of the color
  balance type.</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="type" transfer-ownership="none">
          <doc xml:space="preserve">a #GstPlayerColorBalanceType</doc>
          <type name="PlayerColorBalanceType"
                c:type="GstPlayerColorBalanceType"/>
        </parameter>
      </parameters>
    </function>
    <function name="player_error_get_name"
              c:identifier="gst_player_error_get_name"
              moved-to="PlayerError.get_name">
      <doc xml:space="preserve">Gets a string representing the given error.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a string with the given error.</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="error" transfer-ownership="none">
          <doc xml:space="preserve">a #GstPlayerError</doc>
          <type name="PlayerError" c:type="GstPlayerError"/>
        </parameter>
      </parameters>
    </function>
    <function name="player_error_quark"
              c:identifier="gst_player_error_quark"
              moved-to="PlayerError.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="player_state_get_name"
              c:identifier="gst_player_state_get_name"
              moved-to="PlayerState.get_name">
      <doc xml:space="preserve">Gets a string representing the given state.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">a string with the name of the state.</doc>
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="state" transfer-ownership="none">
          <doc xml:space="preserve">a #GstPlayerState</doc>
          <type name="PlayerState" c:type="GstPlayerState"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
