<schemalist>
  <schema id="org.freedesktop.gstreamer-1.0.default-elements" path="/desktop/gstreamer/1.0/default-elements/" gettext-domain="gst-plugins-bad-1.0">
    <key name="sounds-audiosink" type="s">
      <default>"autoaudiosink"</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>"autoaudiosink"</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>"autoaudiosink"</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>"autovideosink"</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>"alsasrc"</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>"v4l2src"</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>"goom"</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>
