<page xmlns="http://projectmallard.org/1.0/"
      xmlns:its="http://www.w3.org/2005/11/its"
      type="topic" style="task"
      id="overview-media">
  <info>
    <link type="guide" xref="index" group="media"/>
    <revision version="0.1" date="2013-06-19" status="draft"/>

    <credit type="author copyright">
      <name>David King</name>
      <email its:translate="no">davidk@gnome.org</email>
      <years>2013</years>
    </credit>

    <include href="legal.xml" xmlns="http://www.w3.org/2001/XInclude"/>

    <desc>Multi-format audio and video playback and editing, streaming from the web, and webcam support.</desc>
  </info>

<title>Multimedia</title>

<list>
 <item>
  <p><em style="strong">Play and record a multitude of audio and video formats</em></p>
 </item>
 <item>
  <p><em style="strong">Access webcams and other media devices connected to the system</em></p>
 </item>
 <item>
  <p><em style="strong">Share and stream media with remote devices</em></p>
 </item>
</list>

<p>Add multimedia to your application so that users can easily play their
content. Consume and share content with other devices attached to a system or
remotely over the network. The underlying low-level API is available if you
need more control.</p>

<media type="image" mime="image/png" src="media/totem-screenshot.png" width="65%">
 <p>Videos</p>
</media>

<section id="what">
 <title>What can you do?</title>

  <p><em style="strong">Multimedia</em> in GNOME is built on the
  <em style="strong"><link xref="tech-gstreamer">GStreamer</link></em>
  framework. With GStreamer, flexible <em>pipelines</em> of media can be
  created, from simple playback of audio and video to complex non-linear
  editing.</p>

  <p>GStreamer uses
  <em style="strong"><link xref="tech-pulseaudio">PulseAudio</link></em> when
  outputting audio, and therefore can target many types of output hardware.
  PulseAudio also handles dynamic output switching and application-specific
  volume control.</p>

  <comment>
    <cite date="2013-06-19" href="mailto:davidk@gnome.org">David King</cite>
    <p>Add Cheese and Rygel technology pages</p>
  </comment>

  <p>For <em style="strong">webcams</em>, use
  <em style="strong">Cheese</em>. It provides a simple
  interface to webcams connected to the system, and an easy way to add an
  avatar chooser to your application.</p>

  <p>Use <em style="strong">Rygel</em> to <em style="strong">share content over
  the network</em> to devices such as TVs and games consoles. Rygel uses
  <em style="strong"><link xref="tech-gupnp">GUPnP</link></em> underneath,
  which is a low-level API to access content with <em style="strong">UPnP</em>
  protocols.</p>

  <p>For simple <em style="strong">event sounds</em>, such as a shutter sound
  when taking a photo, use
  <em style="strong"><link xref="tech-canberra">libcanberra</link></em>, which
  implements the freedesktop.org sound theme specification.</p>

</section>

<!-- TODO: Link to code examples if they are moved to the platform overview
<section id="samples">
 <title>Code samples</title>
 <list>
  <item><p>A sample we should write</p></item>
  <item><p><link xref="samples#integration">More...</link></p></item>
 </list>
</section>
-->

<section id="realworld">
 <title>Real-world examples</title>

  <p>You can see lots of real-world applications of GNOME multimedia
  technologies in open source projects, like the examples given below.</p>
  <list>
    <item>
      <p><em style="strong">Videos</em> is the GNOME multimedia player.</p>
      <p>( <link href="https://wiki.gnome.org/Apps/Videos">Website</link> | <link href="https://gitlab.gnome.org/GNOME/totem/blob/master/data/appdata/ss-videos.png">Screenshot</link> | <link href="https://gitlab.gnome.org/GNOME/totem/">Source code</link> )</p>
    </item>
    <item>
      <p><em style="strong">PiTiVi</em> is a non-linear video editor, which
      makes extensive use of GStreamer.</p>
      <p>( <link href="http://www.pitivi.org/">Website</link> | <link href="http://www.pitivi.org/?go=tour">Screenshot</link> | <link href="http://www.pitivi.org/?go=download">Source code</link> )</p>
    </item>
 </list>
</section>
</page>