<plugin>
  <name>aiff</name>
  <description>Create and parse Audio Interchange File Format (AIFF) files</description>
  <filename>../../gst/aiff/.libs/libgstaiff.so</filename>
  <basename>libgstaiff.so</basename>
  <version>0.10.19.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>aiffmux</name>
      <longname>AIFF audio muxer</longname>
      <class>Muxer/Audio</class>
      <description>Multiplex raw audio into AIFF</description>
      <author>Robert Swain &lt;robert.swain@gmail.com&gt;</author>
      <pads>
        <caps>
          <name>sink</name>
          <direction>sink</direction>
          <presence>always</presence>
          <details>audio/x-raw-int, width=(int)8, depth=(int)[ 1, 8 ], signed=(boolean)true, endianness=(int)4321, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-raw-int, width=(int)16, depth=(int)[ 9, 16 ], signed=(boolean)true, endianness=(int)4321, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-raw-int, width=(int)24, depth=(int)[ 17, 24 ], signed=(boolean)true, endianness=(int)4321, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-raw-int, width=(int)32, depth=(int)[ 25, 32 ], signed=(boolean)true, endianness=(int)4321, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]</details>
        </caps>
        <caps>
          <name>src</name>
          <direction>source</direction>
          <presence>always</presence>
          <details>audio/x-aiff</details>
        </caps>
      </pads>
    </element>
  </elements>
</plugin>