<plugin>
  <name>qt</name>
  <description>Qt gl plugin</description>
  <filename>../../ext/qt/.libs/libgstqmlgl.so</filename>
  <basename>libgstqmlgl.so</basename>
  <version>1.10.2</version>
  <license>LGPL</license>
  <source>gst-plugins-bad</source>
  <package>GStreamer Bad Plug-ins source release</package>
  <origin>Unknown package origin</origin>
  <elements>
    <element>
      <name>qmlglsink</name>
      <longname>Qt Video Sink</longname>
      <class>Sink/Video</class>
      <description>A video sink the renders to a QQuickItem</description>
      <author>Matthew Waters &lt;matthew@centricular.com&gt;</author>
      <pads>
        <caps>
          <name>sink</name>
          <direction>sink</direction>
          <presence>always</presence>
          <details>video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], texture-target=(string)2D</details>
        </caps>
      </pads>
    </element>
    <element>
      <name>qmlglsrc</name>
      <longname>Qt Video Source</longname>
      <class>Source/Video</class>
      <description>A video src the grab window from a qml view</description>
      <author>Multimedia Team &lt;shmmmw@freescale.com&gt;</author>
      <pads>
        <caps>
          <name>src</name>
          <direction>source</direction>
          <presence>always</presence>
          <details>video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], texture-target=(string)2D</details>
        </caps>
      </pads>
    </element>
  </elements>
</plugin>