<plugin>
  <name>faac</name>
  <description>Free AAC Encoder (FAAC)</description>
  <filename>../../ext/faac/.libs/libgstfaac.so</filename>
  <basename>libgstfaac.so</basename>
  <version>1.5.0.1</version>
  <license>LGPL</license>
  <source>gst-plugins-bad</source>
  <package>GStreamer Bad Plug-ins git</package>
  <origin>Unknown package origin</origin>
  <elements>
    <element>
      <name>faac</name>
      <longname>AAC audio encoder</longname>
      <class>Codec/Encoder/Audio</class>
      <description>Free MPEG-2/4 AAC encoder</description>
      <author>Ronald Bultje &lt;rbultje@ronald.bitfreak.net&gt;</author>
      <pads>
        <caps>
          <name>sink</name>
          <direction>sink</direction>
          <presence>always</presence>
          <details>audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 64000, 88200, 96000 }, channels=(int)[ 1, 6 ]</details>
        </caps>
        <caps>
          <name>src</name>
          <direction>source</direction>
          <presence>always</presence>
          <details>audio/mpeg, mpegversion=(int)4, channels=(int)[ 1, 6 ], rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 64000, 88200, 96000 }, stream-format=(string){ adts, raw }, base-profile=(string){ main, lc, ssr, ltp }, framed=(boolean)true; audio/mpeg, mpegversion=(int)2, channels=(int)[ 1, 6 ], rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 64000, 88200, 96000 }, stream-format=(string){ adts, raw }, profile=(string){ main, lc }, framed=(boolean)true</details>
        </caps>
      </pads>
    </element>
  </elements>
</plugin>