<schemalist>
  <schema id="org.freedesktop.gstreamer-@GST_API_VERSION@.default-elements" path="/desktop/gstreamer/@GST_API_VERSION@/default-elements/" gettext-domain="@GETTEXT_PACKAGE@">
    <key name="sounds-audiosink" type="s">
      <default>"@DEFAULT_AUDIOSINK@"</default>
      <summary>default GStreamer sound events audiosink</summary>
      <description>GStreamer can play audio using any number of
      output elements. Some possible choices are osssink, pulsesink
      and alsasink. The audiosink can be a partial pipeline instead
      of just one element.</description>
    </key>
    <key name="sounds-audiosink-description" type="s">
      <default>"Default"</default>
      <summary>description for default GStreamer sound events audiosink</summary>
      <description>Describes the selected audiosink element.</description>
    </key>
    <key name="chat-audiosink" type="s">
      <default>"@DEFAULT_AUDIOSINK@"</default>
      <summary>default GStreamer audiosink for Audio/Video Conferencing</summary>
      <description>GStreamer can play audio using any number of
      output elements. Some possible choices are osssink, pulsesink
      and alsasink. The audiosink can be a partial pipeline instead
      of just one element.</description>
    </key>
    <key name="chat-audiosink-description" type="s">
      <default>"Default"</default>
      <summary>description for default GStreamer audiosink for Audio/Video Conferencing</summary>
      <description>Describes the selected audiosink element.</description>
    </key>
    <key name="music-audiosink" type="s">
      <default>"@DEFAULT_AUDIOSINK@"</default>
      <summary>default GStreamer audiosink for Music and Movies</summary>
      <description>GStreamer can play audio using any number of
      output elements. Some possible choices are osssink, pulsesink
      and alsasink. The audiosink can be a partial pipeline instead
      of just one element.</description>
    </key>
    <key name="music-audiosink-description" type="s">
      <default>"Default"</default>
      <summary>description for default GStreamer audiosink for Music and Movies</summary>
      <description>Describes the selected audiosink element.</description>
    </key>
    <key name="videosink" type="s">
      <default>"@DEFAULT_VIDEOSINK@"</default>
      <summary>default GStreamer videosink</summary>
      <description>GStreamer can play video using any number of
      output elements. Some possible choices are xvimagesink,
      ximagesink, sdlvideosink and aasink. The videosink can be
      a partial pipeline instead of just one element.</description>
    </key>
    <key name="videosink-description" type="s">
      <default>"Default"</default>
      <summary>description for default GStreamer videosink</summary>
      <description>Describes the selected videosink element.</description>
    </key>
    <key name="audiosrc" type="s">
      <default>"@DEFAULT_AUDIOSRC@"</default>
      <summary>default GStreamer audiosrc</summary>
      <description>GStreamer can record audio using any number of
      input elements. Some possible choices are osssrc, pulsesrc and
      alsasrc. The audio source can be a partial pipeline instead of
      just one element.</description>
    </key>
    <key name="audiosrc-description" type="s">
      <default>"Default"</default>
      <summary>description for default GStreamer audiosrc</summary>
      <description>Describes the selected audiosrc element.</description>
    </key>
    <key name="videosrc" type="s">
      <default>"@DEFAULT_VIDEOSRC@"</default>
      <summary>default GStreamer videosrc</summary>
      <description>GStreamer can record video from any number of input elements.
      Some possible choices are v4lsrc, v4l2src and videotestsrc. The video
      source can be a partial pipeline instead of just one element.</description>
    </key>
    <key name="videosrc-description" type="s">
      <default>"Default"</default>
      <summary>description for default GStreamer videosrc</summary>
      <description>Describes the selected videosrc element.</description>
    </key>
    <key name="visualization" type="s">
      <default>"@DEFAULT_VISUALIZER@"</default>
      <summary>default GStreamer visualization</summary>
      <description>GStreamer can put visualization plugins in a pipeline to
      transform audio streams in video frames. Some possible choices are
      goom, goom2k1 and synaesthesia. The visualization plugin can be a
      partial pipeline instead of just one element.</description>
    </key>
    <key name="visualization-description" type="s">
      <default>"Default"</default>
      <summary>description for default GStreamer visualization</summary>
      <description>Describes the selected visualization element.</description>
    </key>
  </schema>
</schemalist>
