<!-- ############ chapter ############# -->

<chapter id="chapter-building-types">
  <title>Types and Properties</title>
  <para>
    There is a very large set of possible types that may be used to pass data
    between elements. Indeed, each new element that is defined may use a new
    data format (though unless at least one other element recognises that
    format, it will be most likely be useless since nothing will be able to
    link with it).
  </para>
  <para>
    In order for types to be useful, and for systems like autopluggers to
    work, it is necessary that all elements agree on the type definitions,
    and which properties are required for each type. The &GStreamer; framework
    itself simply provides the ability to define types and parameters, but
    does not fix the meaning of types and parameters, and does not enforce
    standards on the creation of new types. This is a matter for a policy to
    decide, not technical systems to enforce.
  </para>
  <para>
    For now, the policy is simple:
    <itemizedlist>
      <listitem>
        <para>
          Do not create a new type if you could use one which already exists.
        </para>
      </listitem>
      <listitem>
        <para>
          If creating a new type, discuss it first with the other &GStreamer;
          developers, on at least one of: IRC, mailing lists.
        </para>
      </listitem>
      <listitem>
        <para>
          Try to ensure that the name for a new format is as unlikely to
          conflict with anything else created already, and is not a more
          generalised name than it should be. For example: "audio/compressed"
          would be too generalised a name to represent audio data compressed
          with an mp3 codec. Instead "audio/mp3" might be an appropriate name,
          or "audio/compressed" could exist and have a property indicating the
          type of compression used.
        </para>
      </listitem>
      <listitem>
        <para>
          Ensure that, when you do create a new type, you specify it clearly,
          and get it added to the list of known types so that other developers
          can use the type correctly when writing their elements.
        </para>
      </listitem>
    </itemizedlist>
  </para>

  <!-- ############ sect1 ############# -->

  <sect1 id="section-types-test" xreflabel="Building a Simple Format for Testing">
    <title>Building a Simple Format for Testing</title>
    <para>
      If you need a new format that has not yet been defined in our <xref
      linkend="section-types-definitions"/>, you will want to have some general
      guidelines on media type naming, properties and such. A media type would
      ideally be equivalent to the Mime-type defined by IANA; else, it should
      be in the form type/x-name, where type is the sort of data this media type
      handles (audio, video, ...) and name should be something specific for
      this specific type.  Audio and video media types should try to support the
      general audio/video properties (see the list), and can use their own
      properties, too. To get an idea of what properties we think are useful,
      see (again) the list.
    </para>
    <para>
      Take your time to find the right set of properties for your type. There
      is no reason to hurry. Also, experimenting with this is generally a good
      idea. Experience learns that theoretically thought-out types are good,
      but they still need practical use to assure that they serve their needs.
      Make sure that your property names do not clash with similar properties
      used in other types. If they match, make sure they mean the same thing;
      properties with different types but the same names are
      <emphasis>not</emphasis> allowed.
    </para>
  </sect1>

  <!-- ############ sect1 ############# -->

  <sect1 id="section-types-typefind" xreflabel="Typefind Functions and Autoplugging">
    <title>Typefind Functions and Autoplugging</title>
    <para>
      With only <emphasis>defining</emphasis> the types, we're not yet there.
      In order for a random data file to be recognized and played back as
      such, we need a way of recognizing their type out of the blue. For this
      purpose, <quote>typefinding</quote> was introduced. Typefinding is the
      process of detecting the type of a data stream. Typefinding consists of
      two separate parts: first, there's an unlimited number of functions
      that we call <emphasis>typefind functions</emphasis>, which are each
      able to recognize one or more types from an input stream. Then,
      secondly, there's a small engine which registers and calls each of
      those functions. This is the typefind core. On top of this typefind
      core, you would normally write an autoplugger, which is able to use
      this type detection system to dynamically build a pipeline around an
      input stream. Here, we will focus only on typefind functions.
    </para>
    <para>
      A typefind function usually lives in
      <filename>gst-plugins-base/gst/typefind/gsttypefindfunctions.c</filename>,
      unless there's a good reason (like library dependencies) to put it
      elsewhere. The reason for this centralization is to reduce the
      number of plugins that need to be loaded in order to detect a stream's
      type. Below is an example that will recognize AVI files, which start
      with a <quote>RIFF</quote> tag, then the size of the file and then an
      <quote>AVI </quote> tag:
    </para>
    <programlisting>
static void
gst_my_typefind_function (GstTypeFind *tf,
			  gpointer     data)
{
  guint8 *data = gst_type_find_peek (tf, 0, 12);

  if (data &amp;&amp;
      GUINT32_FROM_LE (&amp;((guint32 *) data)[0]) == GST_MAKE_FOURCC ('R','I','F','F') &amp;&amp;
      GUINT32_FROM_LE (&amp;((guint32 *) data)[2]) == GST_MAKE_FOURCC ('A','V','I',' ')) {
    gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM,
			   gst_caps_new_simple ("video/x-msvideo", NULL));
  }
}

static gboolean
plugin_init (GstPlugin *plugin)
{
  static gchar *exts[] = { "avi", NULL };
  if (!gst_type_find_register (plugin, "", GST_RANK_PRIMARY,
			       gst_my_typefind_function, exts,
			       gst_caps_new_simple ("video/x-msvideo",
						    NULL), NULL))
    return FALSE;
}
    </programlisting>
    <para>
      Note that
      <filename>gst-plugins/gst/typefind/gsttypefindfunctions.c</filename>
      has some simplification macros to decrease the amount of code. Make
      good use of those if you want to submit typefinding patches with new
      typefind functions.
    </para>
    <para>
      Autoplugging has been discussed in great detail in the Application
      Development Manual.
    </para>
  </sect1>

  <!-- ############ sect1 ############# -->

  <sect1 id="section-types-definitions" xreflabel="List of Defined Types">
    <title>List of Defined Types</title>
      <para>
        Below is a list of all the defined types in &GStreamer;. They are split
        up in separate tables for audio, video, container, subtitle and other
        types, for the sake of readability. Below each table might follow a
        list of notes that apply to that table. In the definition of each type,
        we try to follow the types and rules as defined by <ulink type="http"
        url="http://www.iana.org/assignments/media-types">
        IANA</ulink> for as far as possible.
      </para>
      <para>
        Jump directly to a specific table:
	<itemizedlist>
          <listitem>
            <para><xref linkend="table-audio-types"/></para>
          </listitem>
          <listitem>
            <para><xref linkend="table-video-types"/></para>
          </listitem>
          <listitem>
            <para><xref linkend="table-container-types"/></para>
          </listitem>
          <listitem>
            <para><xref linkend="table-subtitle-types"/></para>
          </listitem>
          <listitem>
            <para><xref linkend="table-other-types"/></para>
          </listitem>
        </itemizedlist>
      </para>
      <para>
        Note that many of the properties are not <emphasis>required</emphasis>,
        but rather <emphasis>optional</emphasis> properties. This means that
        most of these properties can be extracted from the container header,
        but that - in case the container header does not provide these - they
        can also be extracted by parsing the stream header or the stream
        content. The policy is that your element should provide the data that
        it knows about by only parsing its own content, not another element's
        content. Example: the AVI header provides samplerate of the contained
        audio stream in the header. MPEG system streams don't. This means that
        an AVI stream demuxer would provide samplerate as a property for MPEG
        audio streams, whereas an MPEG demuxer would not. A decoder needing
        this data would require a stream parser in between two extract this
        from the header or calculate it from the stream.
      </para>

      <table frame="all" id="table-audio-types" xreflabel="Table of Audio Types">
        <title>Table of Audio Types</title>
        <tgroup cols="6" align="left" colsep="1" rowsep="1">
        <colspec colnum="1" colname="cola1" colwidth="1*"/>
        <colspec colnum="6" colname="cola6" colwidth="6*"/>
        <spanspec spanname="fullwidth" namest="cola1" nameend="cola6"/>

        <thead>
          <row>
            <entry>Media Type</entry>
            <entry>Description</entry>
            <entry>Property</entry>
            <entry>Property Type</entry>
            <entry>Property Values</entry>
            <entry>Property Description</entry>
          </row>
        </thead>

        <tbody valign="top">

          <!-- ############ subtitle ############# -->

          <row>
            <entry spanname="fullwidth">
              <emphasis>All audio types.</emphasis>
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry morerows="1">audio/*</entry>
            <entry morerows="1">
              <emphasis>All audio types</emphasis>
            </entry>
            <entry>rate</entry>
            <entry>integer</entry>
            <entry>greater than 0</entry>
            <entry>
              The sample rate of the data, in samples (per channel) per second.
            </entry>
          </row>
          <row>
            <entry>channels</entry>
            <entry>integer</entry>
            <entry>greater than 0</entry>
            <entry>
              The number of channels of audio data.
            </entry>
          </row>

          <!-- ############ subtitle ############# -->

          <row>
            <entry spanname="fullwidth">
              <emphasis>All raw audio types.</emphasis>
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>audio/x-raw</entry>
            <entry>
              Unstructured and uncompressed raw audio data.
            </entry>
            <entry>format</entry>
            <entry>string</entry>
            <entry>
              S8 U8 S16LE S16BE U16LE U16BE S24_32LE S24_32BE U24_32LE U24_32BE S32LE S32BE U32LE U32BE
              S24LE S24BE U24LE U24BE S20LE S20BE U20LE U20BE S18LE S18BE U18LE U18BE F32LE F32BE F64LE F64BE
            </entry>
            <entry>
              The format of the sample data.
            </entry>
          </row>

          <!-- ############ subtitle ############# -->

          <row>
            <entry spanname="fullwidth">
              <emphasis>All encoded audio types.</emphasis>
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>audio/x-ac3</entry>
            <entry>AC-3 or A52 audio streams.</entry>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry>
              There are currently no specific properties defined or needed for
              this type.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry morerows="1">audio/x-adpcm</entry>
            <entry morerows="1">ADPCM Audio streams.</entry>
            <entry>layout</entry>
            <entry>string</entry>
            <entry>
              <quote>quicktime</quote>, <quote>dvi</quote>,
              <quote>microsoft</quote> or <quote>4xm</quote>.
            </entry>
            <entry>
              The layout defines the packing of the samples in the stream. In
              ADPCM, most formats store multiple samples per channel together.
              This number of samples differs per format, hence the different
              layouts. On the long term, we probably want this variable to die
              and use something more descriptive, but this will do for now.
            </entry>
          </row>
          <row>
            <entry>block_align</entry>
            <entry>integer</entry>
            <entry>
              Any
            </entry>
            <entry>
              Chunk buffer size.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>audio/x-cinepak</entry>
            <entry>Audio as provided in a Cinepak (Quicktime) stream.</entry>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry>
              There are currently no specific properties defined or needed for
              this type.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>audio/x-dv</entry>
            <entry>Audio as provided in a Digital Video stream.</entry>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry>
              There are currently no specific properties defined or needed for
              this type.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>audio/x-flac</entry>
            <entry>Free Lossless Audio codec (FLAC).</entry>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry>
              There are currently no specific properties defined or needed for
              this type.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>audio/x-gsm</entry>
            <entry>Data encoded by the GSM codec.</entry>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry>
              There are currently no specific properties defined or needed for
              this type.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>audio/x-alaw</entry>
            <entry>A-Law Audio.</entry>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry>
              There are currently no specific properties defined or needed for
              this type.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>audio/x-mulaw</entry>
            <entry>Mu-Law Audio.</entry>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry>
              There are currently no specific properties defined or needed for
              this type.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>audio/x-mace</entry>
            <entry>MACE Audio (used in Quicktime).</entry>
            <entry>maceversion</entry>
            <entry>integer</entry>
            <entry>3 or 6</entry>
            <entry>
              The version of the MACE audio codec used to encode the stream.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry morerows="3">audio/mpeg</entry>
            <entry morerows="3">
              Audio data compressed using the MPEG audio encoding scheme.
            </entry>
            <entry>mpegversion</entry>
            <entry>integer</entry>
            <entry>1, 2 or 4</entry>
            <entry>
              The MPEG-version used for encoding the data. The value 1 refers
              to MPEG-1, -2 and -2.5 layer 1, 2 or 3. The values 2 and 4 refer
              to the MPEG-AAC audio encoding schemes.
            </entry>
          </row>
          <row>
            <entry>framed</entry>
            <entry>boolean</entry>
            <entry>0 or 1</entry>
            <entry>
              A true value indicates that each buffer contains exactly one
              frame. A false value indicates that frames and buffers do not
              necessarily match up.
            </entry>
          </row>
          <row>
            <entry>layer</entry>
            <entry>integer</entry>
            <entry>1, 2, or 3</entry>
            <entry>
              The compression scheme layer used to compress the data
              <emphasis>(only if mpegversion=1)</emphasis>.
            </entry>
          </row>
          <row>
            <entry>bitrate</entry>
            <entry>integer</entry>
            <entry>greater than 0</entry>
            <entry>
              The bitrate, in bits per second. For VBR (variable bitrate)
              MPEG data, this is the average bitrate.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>audio/x-qdm2</entry>
            <entry>Data encoded by the QDM version 2 codec.</entry>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry>
              There are currently no specific properties defined or needed for
              this type.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>audio/x-pn-realaudio</entry>
            <entry>Realmedia Audio data.</entry>
            <entry>raversion</entry>
            <entry>integer</entry>
            <entry>1 or 2</entry>
            <entry>
              The version of the Real Audio codec used to encode the stream.
              1 stands for a 14k4 stream, 2 stands for a 28k8 stream.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>audio/x-speex</entry>
            <entry>Data encoded by the Speex audio codec</entry>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry>
              There are currently no specific properties defined or needed for
              this type.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>audio/x-vorbis</entry>
            <entry>Vorbis audio data</entry>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry>
              There are currently no specific properties defined or needed for
              this type.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>audio/x-wma</entry>
            <entry>Windows Media Audio</entry>
            <entry>wmaversion</entry>
            <entry>integer</entry>
            <entry>1,2 or 3</entry>
            <entry>
              The version of the WMA codec used to encode the stream.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>audio/x-paris</entry>
            <entry>Ensoniq PARIS audio</entry>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry>
              There are currently no specific properties defined or needed for
              this type.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>audio/x-svx</entry>
            <entry>Amiga IFF / SVX8 / SV16 audio</entry>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry>
              There are currently no specific properties defined or needed for
              this type.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>audio/x-nist</entry>
            <entry>Sphere NIST audio</entry>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry>
              There are currently no specific properties defined or needed for
              this type.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>audio/x-voc</entry>
            <entry>Sound Blaster VOC audio</entry>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry>
              There are currently no specific properties defined or needed for
              this type.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>audio/x-ircam</entry>
            <entry>Berkeley/IRCAM/CARL audio</entry>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry>
              There are currently no specific properties defined or needed for
              this type.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>audio/x-w64</entry>
            <entry>Sonic Foundry's 64 bit RIFF/WAV</entry>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry>
              There are currently no specific properties defined or needed for
              this type.
            </entry>
          </row>

        </tbody>
        </tgroup>
      </table>

      <table frame="all" id="table-video-types" xreflabel="Table of Video Types">
        <title>Table of Video Types</title>
        <tgroup cols="6" align="left" colsep="1" rowsep="1">
        <colspec colnum="1" colname="colv1" colwidth="1*"/>
        <colspec colnum="6" colname="colv6" colwidth="6*"/>
        <spanspec spanname="fullwidth" namest="colv1" nameend="colv6"/>

        <thead>
          <row>
            <entry>Media Type</entry>
            <entry>Description</entry>
            <entry>Property</entry>
            <entry>Property Type</entry>
            <entry>Property Values</entry>
            <entry>Property Description</entry>
          </row>
        </thead>

        <tbody valign="top">

          <!-- ############ subtitle ############# -->

          <row>
            <entry spanname="fullwidth">
              <emphasis>All video types.</emphasis>
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry morerows="2">video/*</entry>
            <entry morerows="2">
              <emphasis>All video types</emphasis>
            </entry>
            <entry>width</entry>
            <entry>integer</entry>
            <entry>greater than 0</entry>
            <entry>The width of the video image</entry>
          </row>
          <row>
            <entry>height</entry>
            <entry>integer</entry>
            <entry>greater than 0</entry>
            <entry>The height of the video image</entry>
          </row>
          <row>
            <entry>framerate</entry>
            <entry>fraction</entry>
            <entry>greater or equal 0</entry>
            <entry>
              The (average) framerate in frames per second. Note that this
              property does not guarantee in <emphasis>any</emphasis> way that
              it will actually come close to this value. If you need a fixed
              framerate, please use an element that provides that (such as
              <quote>videorate</quote>). 0 means a variable framerate.
            </entry>
          </row>

          <!-- ############ subtitle ############# -->

          <row>
            <entry spanname="fullwidth">
              <emphasis>All raw video types.</emphasis>
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>video/x-raw</entry>
            <entry>Unstructured and uncompressed raw video data.</entry>
            <entry>format</entry>
            <entry>string</entry>
            <entry>
              I420 YV12 YUY2 UYVY AYUV RGBx BGRx xRGB xBGR RGBA BGRA ARGB ABGR RGB BGR Y41B Y42B
              YVYU Y444 v210 v216 NV12 NV21 GRAY8 GRAY16_BE GRAY16_LE
              v308 RGB16 BGR16 RGB15 BGR15 UYVP A420 RGB8P YUV9 YVU9
              IYU1 ARGB64 AYUV64 r210 I420_10LE I420_10BE I422_10LE I422_10BE
            </entry>
            <entry>
              The layout of the video. See <ulink type="http"
              url="http://www.fourcc.org/">FourCC definition site</ulink>
              for references and definitions. YUY2, YVYU and UYVY are 4:2:2
              packed-pixel, Y41P is 4:1:1 packed-pixel and IYU2 is 4:4:4
              packed-pixel. Y42B is 4:2:2 planar, YV12 and I420 are 4:2:0
              planar, Y41B is 4:1:1 planar and YUV9 and YVU9 are 4:1:0 planar.
              Y800 contains Y-samples only (black/white).
            </entry>
          </row>

          <!-- ############ subtitle ############# -->

          <row>
            <entry spanname="fullwidth">
              <emphasis>All encoded video types.</emphasis>
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>video/x-3ivx</entry>
            <entry>3ivx video.</entry>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry>
              There are currently no specific properties defined or needed for
              this type.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>video/x-divx</entry>
            <entry>DivX video.</entry>
            <entry>divxversion</entry>
            <entry>integer</entry>
            <entry>3, 4 or 5</entry>
            <entry>
              Version of the DivX codec used to encode the stream.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>video/x-dv</entry>
            <entry>Digital Video.</entry>
            <entry>systemstream</entry>
            <entry>boolean</entry>
            <entry>FALSE</entry>
            <entry>
              Indicates that this stream is <emphasis>not</emphasis> a system
              container stream.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>video/x-ffv</entry>
            <entry>FFMpeg video.</entry>
            <entry>ffvversion</entry>
            <entry>integer</entry>
            <entry>1</entry>
            <entry>
              Version of the FFMpeg video codec used to encode the stream.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry morerows="1">video/x-h263</entry>
            <entry morerows="1">H-263 video.</entry>
            <entry>variant</entry>
            <entry>string</entry>
            <entry>itu, lead, microsoft, vdolive, vivo, xirlink </entry>
            <entry>
              Vendor specific variant of the format. 'itu' is the standard.
            </entry>
          </row>
          <row>
            <entry>h263version</entry>
            <entry>string</entry>
            <entry>h263, h263p, h263pp</entry>
            <entry>
              Enhanced versions of the h263 codec.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>video/x-h264</entry>
            <entry>H-264 video.</entry>
            <entry>variant</entry>
            <entry>string</entry>
            <entry>itu, videosoft</entry>
            <entry>
              Vendor specific variant of the format. 'itu' is the standard.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>video/x-huffyuv</entry>
            <entry>Huffyuv video.</entry>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry>
              There are currently no specific properties defined or needed for
              this type.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>video/x-indeo</entry>
            <entry>Indeo video.</entry>
            <entry>indeoversion</entry>
            <entry>integer</entry>
            <entry>3</entry>
            <entry>
              Version of the Indeo codec used to encode this stream.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>video/x-intel-h263</entry>
            <entry>H-263 video.</entry>
            <entry>variant</entry>
            <entry>string</entry>
            <entry>intel</entry>
            <entry>
              Vendor specific variant of the format.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>video/x-jpeg</entry>
            <entry>Motion-JPEG video.</entry>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry>
              There are currently no specific properties defined or needed for
              this type. Note that video/x-jpeg only applies to Motion-JPEG
              pictures (YUY2 colourspace). RGB colourspace JPEG images are
              referred to as image/jpeg (JPEG image).
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry morerows="1">video/mpeg</entry>
            <entry morerows="1">MPEG video.</entry>
            <entry>mpegversion</entry>
            <entry>integer</entry>
            <entry>1, 2 or 4</entry>
            <entry>
              Version of the MPEG codec that this stream was encoded with.
              Note that we have different media types for 3ivx, XviD, DivX and
              "standard" ISO MPEG-4. This is <emphasis>not</emphasis> a good
              thing and we're fully aware of this. However, we do not have a
              solution yet.
            </entry>
          </row>
          <row>
            <entry>systemstream</entry>
            <entry>boolean</entry>
            <entry>FALSE</entry>
            <entry>
              Indicates that this stream is <emphasis>not</emphasis> a system
              container stream.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>video/x-msmpeg</entry>
            <entry>Microsoft MPEG-4 video deviations.</entry>
            <entry>msmpegversion</entry>
            <entry>integer</entry>
            <entry>41, 42 or 43</entry>
            <entry>
              Version of the MS-MPEG-4-like codec that was used to encode this
              version. A value of 41 refers to MS MPEG 4.1, 42 to 4.2 and 43
              to version 4.3.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>video/x-msvideocodec</entry>
            <entry>Microsoft Video 1 (oldish codec).</entry>
            <entry>msvideoversion</entry>
            <entry>integer</entry>
            <entry>1</entry>
            <entry>
              Version of the codec - always 1.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>video/x-pn-realvideo</entry>
            <entry>Realmedia video.</entry>
            <entry>rmversion</entry>
            <entry>integer</entry>
            <entry>1, 2 or 3</entry>
            <entry>
              Version of the Real Video codec that this stream was encoded
              with.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry morerows="2">video/x-rle</entry>
            <entry morerows="2">RLE animation format.</entry>
            <entry>layout</entry>
            <entry>string</entry>
            <entry>"microsoft" or "quicktime"</entry>
            <entry>
              The RLE format inside the Microsoft AVI container has a
              different byte layout than the RLE format inside Apple's
              Quicktime container; this property keeps track of the
              layout.
            </entry>
          </row>
          <row>
            <entry>depth</entry>
            <entry>integer</entry>
            <entry>1 to 64</entry>
            <entry>
              Bit depth of the used palette. This means that the palette
              that belongs to this format defines 2^depth colors.
            </entry>
          </row>
          <row>
            <entry>palette_data</entry>
            <entry>GstBuffer</entry>
            <entry></entry>
            <entry>
              Buffer containing a color palette (in native-endian RGBA) used
              by this format. The buffer is of size 4*2^depth.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>video/x-svq</entry>
            <entry>Sorensen Video.</entry>
            <entry>svqversion</entry>
            <entry>integer</entry>
            <entry>1 or 3</entry>
            <entry>
              Version of the Sorensen codec that the stream was encoded with.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>video/x-tarkin</entry>
            <entry>Tarkin video.</entry>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry>
              There are currently no specific properties defined or needed for
              this type.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>video/x-theora</entry>
            <entry>Theora video.</entry>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry>
              There are currently no specific properties defined or needed for
              this type.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>video/x-vp3</entry>
            <entry>VP-3 video.</entry>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry>
              There are currently no specific properties defined or needed for
              this type. Note that we have different media types for VP-3 and
              Theora, which is not necessarily a good idea. This could probably
              be improved.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>video/x-wmv</entry>
            <entry>Windows Media Video</entry>
            <entry>wmvversion</entry>
            <entry>integer</entry>
            <entry>1,2 or 3</entry>
            <entry>
              Version of the WMV codec that the stream was encoded with.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>video/x-xvid</entry>
            <entry>XviD video.</entry>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry>
              There are currently no specific properties defined or needed for
              this type.
            </entry>
          </row>

          <!-- ############ subtitle ############# -->

          <row>
            <entry spanname="fullwidth">
              <emphasis>All image types.</emphasis>
            </entry>
          </row>

	  <!-- ############ type ############# -->

          <row>
            <entry>image/gif</entry>
            <entry>Graphics Interchange Format.</entry>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry>
              There are currently no specific properties defined or needed for
              this type.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>image/jpeg</entry>
            <entry>Joint Picture Expert Group Image.</entry>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry>
              There are currently no specific properties defined or needed for
              this type. Note that image/jpeg only applies to RGB-colourspace
              JPEG images; YUY2-colourspace JPEG pictures are referred to as
              video/x-jpeg ("Motion JPEG").
            </entry>
          </row>

	  <!-- ############ type ############# -->

          <row>
            <entry>image/png</entry>
            <entry>Portable Network Graphics Image.</entry>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry>
              There are currently no specific properties defined or needed for
              this type.
            </entry>
          </row>

	  <!-- ############ type ############# -->

          <row>
            <entry>image/tiff</entry>
            <entry>Tagged Image File Format.</entry>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry>
              There are currently no specific properties defined or needed for
              this type.
            </entry>
          </row>
        </tbody>
        </tgroup>
      </table>

      <table frame="all" id="table-container-types" xreflabel="Table of Container Types">
        <title>Table of Container Types</title>
        <tgroup cols="6" align="left" colsep="1" rowsep="1">
        <colspec colnum="1" colname="colc1" colwidth="1*"/>
        <colspec colnum="6" colname="colc6" colwidth="6*"/>
        <spanspec spanname="fullwidth" namest="colc1" nameend="colc6"/>

        <thead>
          <row>
            <entry>Media Type</entry>
            <entry>Description</entry>
            <entry>Property</entry>
            <entry>Property Type</entry>
            <entry>Property Values</entry>
            <entry>Property Description</entry>
          </row>
        </thead>

        <tbody valign="top">

          <!-- ############ type ############# -->

          <row>
            <entry>video/x-ms-asf</entry>
            <entry>Advanced Streaming Format (ASF).</entry>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry>
              There are currently no specific properties defined or needed for
              this type.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>video/x-msvideo</entry>
            <entry>AVI.</entry>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry>
              There are currently no specific properties defined or needed for
              this type.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>video/x-dv</entry>
            <entry>Digital Video.</entry>
            <entry>systemstream</entry>
            <entry>boolean</entry>
            <entry>TRUE</entry>
            <entry>
              Indicates that this is a container system stream rather than an
              elementary video stream.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>video/x-matroska</entry>
            <entry>Matroska.</entry>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry>
              There are currently no specific properties defined or needed for
              this type.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>video/mpeg</entry>
            <entry>Motion Pictures Expert Group System Stream.</entry>
            <entry>systemstream</entry>
            <entry>boolean</entry>
            <entry>TRUE</entry>
            <entry>
              Indicates that this is a container system stream rather than an
              elementary video stream.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>application/ogg</entry>
            <entry>Ogg.</entry>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry>
              There are currently no specific properties defined or needed for
              this type.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>video/quicktime</entry>
            <entry>Quicktime.</entry>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry>
              There are currently no specific properties defined or needed for
              this type.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>application/vnd.rn-realmedia</entry>
            <entry>RealMedia.</entry>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry>
              There are currently no specific properties defined or needed for
              this type.
            </entry>
          </row>

          <!-- ############ type ############# -->

          <row>
            <entry>audio/x-wav</entry>
            <entry>WAV.</entry>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry>
              There are currently no specific properties defined or needed for
              this type.
            </entry>
          </row>
	  </tbody>
        </tgroup>
      </table>

      <table frame="all" id="table-subtitle-types" xreflabel="Table of Subtitle Types">
        <title>Table of Subtitle Types</title>
        <tgroup cols="6" align="left" colsep="1" rowsep="1">
        <colspec colnum="1" colname="colt1" colwidth="1*"/>
        <colspec colnum="6" colname="colt6" colwidth="6*"/>
        <spanspec spanname="fullwidth" namest="colt1" nameend="colt6"/>

        <thead>
          <row>
            <entry>Media Type</entry>
            <entry>Description</entry>
            <entry>Property</entry>
            <entry>Property Type</entry>
            <entry>Property Values</entry>
            <entry>Property Description</entry>
          </row>
        </thead>

        <tbody valign="top">

          <!-- ############ type ############# -->

          <row>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry>
              None defined yet.
            </entry>
          </row>
	  </tbody>
        </tgroup>
      </table>

      <table frame="all" id="table-other-types" xreflabel="Table of Other Types">
        <title>Table of Other Types</title>
        <tgroup cols="6" align="left" colsep="1" rowsep="1">
        <colspec colnum="1" colname="colo1" colwidth="1*"/>
        <colspec colnum="6" colname="colo6" colwidth="6*"/>
        <spanspec spanname="fullwidth" namest="colo1" nameend="colo6"/>

        <thead>
          <row>
            <entry>Media Type</entry>
            <entry>Description</entry>
            <entry>Property</entry>
            <entry>Property Type</entry>
            <entry>Property Values</entry>
            <entry>Property Description</entry>
          </row>
        </thead>

        <tbody valign="top">

          <!-- ############ type ############# -->

          <row>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry></entry>
            <entry>
              None defined yet.
            </entry>
          </row>
	  </tbody>
        </tgroup>
      </table>
  </sect1>
</chapter>
