Remove old school plugins listing generator

This commit is contained in:
Thibault Saunier 2019-05-21 08:22:52 -04:00 committed by Mathieu Duponchelle
parent 7159236b52
commit 2d46903eb7
8 changed files with 0 additions and 17130 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,398 +0,0 @@
<plugins module_name="gstreamer">
<plugin>
<name>coreelements</name>
<description>GStreamer core elements</description>
<filename>../../plugins/elements/.libs/libgstcoreelements.so</filename>
<basename>libgstcoreelements.so</basename>
<version>1.10.1</version>
<license>LGPL</license>
<source>gstreamer</source>
<package>GStreamer source release</package>
<origin>Unknown package origin</origin>
<elements>
<element>
<name>capsfilter</name>
<longname>CapsFilter</longname>
<class>Generic</class>
<description>Pass data without modification, limiting formats</description>
<author>David Schleef &lt;ds@schleef.org&gt;</author>
<pads>
<caps>
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>ANY</details>
</caps>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>ANY</details>
</caps>
</pads>
</element>
<element>
<name>concat</name>
<longname>Concat</longname>
<class>Generic</class>
<description>Concatenate multiple streams</description>
<author>Sebastian Dröge &lt;sebastian@centricular.com&gt;</author>
<pads>
<caps>
<name>sink_%u</name>
<direction>sink</direction>
<presence>request</presence>
<details>ANY</details>
</caps>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>ANY</details>
</caps>
</pads>
</element>
<element>
<name>downloadbuffer</name>
<longname>DownloadBuffer</longname>
<class>Generic</class>
<description>Download Buffer element</description>
<author>Wim Taymans &lt;wim.taymans@gmail.com&gt;</author>
<pads>
<caps>
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>ANY</details>
</caps>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>ANY</details>
</caps>
</pads>
</element>
<element>
<name>fakesink</name>
<longname>Fake Sink</longname>
<class>Sink</class>
<description>Black hole for data</description>
<author>Erik Walthinsen &lt;omega@cse.ogi.edu&gt;, Wim Taymans &lt;wim@fluendo.com&gt;, Mr. &apos;frag-me-more&apos; Vanderwingo &lt;wingo@fluendo.com&gt;</author>
<pads>
<caps>
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>ANY</details>
</caps>
</pads>
</element>
<element>
<name>fakesrc</name>
<longname>Fake Source</longname>
<class>Source</class>
<description>Push empty (no data) buffers around</description>
<author>Erik Walthinsen &lt;omega@cse.ogi.edu&gt;, Wim Taymans &lt;wim@fluendo.com&gt;</author>
<pads>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>ANY</details>
</caps>
</pads>
</element>
<element>
<name>fdsink</name>
<longname>Filedescriptor Sink</longname>
<class>Sink/File</class>
<description>Write data to a file descriptor</description>
<author>Erik Walthinsen &lt;omega@cse.ogi.edu&gt;</author>
<pads>
<caps>
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>ANY</details>
</caps>
</pads>
</element>
<element>
<name>fdsrc</name>
<longname>Filedescriptor Source</longname>
<class>Source/File</class>
<description>Read from a file descriptor</description>
<author>Erik Walthinsen &lt;omega@cse.ogi.edu&gt;</author>
<pads>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>ANY</details>
</caps>
</pads>
</element>
<element>
<name>filesink</name>
<longname>File Sink</longname>
<class>Sink/File</class>
<description>Write stream to a file</description>
<author>Thomas Vander Stichele &lt;thomas at apestaart dot org&gt;</author>
<pads>
<caps>
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>ANY</details>
</caps>
</pads>
</element>
<element>
<name>filesrc</name>
<longname>File Source</longname>
<class>Source/File</class>
<description>Read from arbitrary point in a file</description>
<author>Erik Walthinsen &lt;omega@cse.ogi.edu&gt;</author>
<pads>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>ANY</details>
</caps>
</pads>
</element>
<element>
<name>funnel</name>
<longname>Funnel pipe fitting</longname>
<class>Generic</class>
<description>N-to-1 pipe fitting</description>
<author>Olivier Crete &lt;olivier.crete@collabora.co.uk&gt;</author>
<pads>
<caps>
<name>sink_%u</name>
<direction>sink</direction>
<presence>request</presence>
<details>ANY</details>
</caps>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>ANY</details>
</caps>
</pads>
</element>
<element>
<name>identity</name>
<longname>Identity</longname>
<class>Generic</class>
<description>Pass data without modification</description>
<author>Erik Walthinsen &lt;omega@cse.ogi.edu&gt;</author>
<pads>
<caps>
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>ANY</details>
</caps>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>ANY</details>
</caps>
</pads>
</element>
<element>
<name>input-selector</name>
<longname>Input selector</longname>
<class>Generic</class>
<description>N-to-1 input stream selector</description>
<author>Julien Moutte &lt;julien@moutte.net&gt;, Jan Schmidt &lt;thaytan@mad.scientist.com&gt;, Wim Taymans &lt;wim.taymans@gmail.com&gt;</author>
<pads>
<caps>
<name>sink_%u</name>
<direction>sink</direction>
<presence>request</presence>
<details>ANY</details>
</caps>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>ANY</details>
</caps>
</pads>
</element>
<element>
<name>multiqueue</name>
<longname>MultiQueue</longname>
<class>Generic</class>
<description>Multiple data queue</description>
<author>Edward Hervey &lt;edward@fluendo.com&gt;</author>
<pads>
<caps>
<name>sink_%u</name>
<direction>sink</direction>
<presence>request</presence>
<details>ANY</details>
</caps>
<caps>
<name>src_%u</name>
<direction>source</direction>
<presence>sometimes</presence>
<details>ANY</details>
</caps>
</pads>
</element>
<element>
<name>output-selector</name>
<longname>Output selector</longname>
<class>Generic</class>
<description>1-to-N output stream selector</description>
<author>Stefan Kost &lt;stefan.kost@nokia.com&gt;</author>
<pads>
<caps>
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>ANY</details>
</caps>
<caps>
<name>src_%u</name>
<direction>source</direction>
<presence>request</presence>
<details>ANY</details>
</caps>
</pads>
</element>
<element>
<name>queue</name>
<longname>Queue</longname>
<class>Generic</class>
<description>Simple data queue</description>
<author>Erik Walthinsen &lt;omega@cse.ogi.edu&gt;</author>
<pads>
<caps>
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>ANY</details>
</caps>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>ANY</details>
</caps>
</pads>
</element>
<element>
<name>queue2</name>
<longname>Queue 2</longname>
<class>Generic</class>
<description>Simple data queue</description>
<author>Erik Walthinsen &lt;omega@cse.ogi.edu&gt;, Wim Taymans &lt;wim.taymans@gmail.com&gt;</author>
<pads>
<caps>
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>ANY</details>
</caps>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>ANY</details>
</caps>
</pads>
</element>
<element>
<name>streamiddemux</name>
<longname>Streamid Demux</longname>
<class>Generic</class>
<description>1-to-N output stream by stream-id</description>
<author>HoonHee Lee &lt;hoonhee.lee@lge.com&gt;</author>
<pads>
<caps>
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>ANY</details>
</caps>
<caps>
<name>src_%u</name>
<direction>source</direction>
<presence>sometimes</presence>
<details>ANY</details>
</caps>
</pads>
</element>
<element>
<name>tee</name>
<longname>Tee pipe fitting</longname>
<class>Generic</class>
<description>1-to-N pipe fitting</description>
<author>Erik Walthinsen &lt;omega@cse.ogi.edu&gt;, Wim Taymans &lt;wim@fluendo.com&gt;</author>
<pads>
<caps>
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>ANY</details>
</caps>
<caps>
<name>src_%u</name>
<direction>source</direction>
<presence>request</presence>
<details>ANY</details>
</caps>
</pads>
</element>
<element>
<name>typefind</name>
<longname>TypeFind</longname>
<class>Generic</class>
<description>Finds the media type of a stream</description>
<author>Benjamin Otte &lt;in7y118@public.uni-hamburg.de&gt;</author>
<pads>
<caps>
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>ANY</details>
</caps>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>ANY</details>
</caps>
</pads>
</element>
<element>
<name>valve</name>
<longname>Valve element</longname>
<class>Filter</class>
<description>Drops buffers and events or lets them through</description>
<author>Olivier Crete &lt;olivier.crete@collabora.co.uk&gt;</author>
<pads>
<caps>
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>ANY</details>
</caps>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>ANY</details>
</caps>
</pads>
</element>
</elements>
</plugin></plugins>

View file

@ -1,275 +0,0 @@
#!/usr/bin/python3
#
# Copyright (C) 2016 Tim-Philipp Müller
#
# License: this script is made available under the following licenses:
# Simplified BSD License/FreeBSD License, MIT License, and/or LGPLv2.1+ license.
#
# Reads plugin introspection .xml files (one per module) and outputs a
# list of all plugins in markdown format. We may want to do something
# more fancy here in future, for now this is just to provide a replacement
# for the xltsproc-generated list in the www module
#
# XML files were generated like this (we'll want to automate that at some point):
#
# echo '<plugins module_name="gstreamer">' > core.xml; \
# cat ~/gst/1.10/gstreamer/docs/plugins/inspect/plugin-* >> core.xml; \
# echo '</plugins>' >> core.xml
#
# for m in base good ugly bad; do \
# echo '<plugins module_name="gst-plugins-'$m'">' > $m.xml; \
# cat ~/gst/1.10/gst-plugins-$m/docs/plugins/inspect/plugin-* >> $m.xml; \
# echo '</plugins>' >> $m.xml; \
# done
import xml.etree.ElementTree as xmltree
import http.client as httpclient
import urllib.parse as urlparse
import pickle
import sys
import os
allow_offline = False
is_offline = False
modules = {}
all_elements = {}
all_plugins = {}
url_cache = {}
url_conn = None
# check if an url exists or not
def check_url(url):
global url_conn
if is_offline and allow_offline:
return True
if url in url_cache:
return url_cache[url]
r = urlparse.urlparse(url)
# Reuse existing conn if possible
is_gst_fdo = url.startswith('https://gstreamer.freedesktop.org')
if is_gst_fdo and url_conn is not None:
connection = url_conn
else:
connection = httpclient.HTTPSConnection(r.netloc)
if is_gst_fdo:
url_conn = connection
connection.request('HEAD', r.path)
response = connection.getresponse()
response.read()
exists = response.status < 400
url_cache[url] = exists
sys.stderr.write('Checking if {0} exists: {1}\n'.format(url,exists))
return exists
# load url cache
def load_url_cache():
global url_cache
try:
with open('cache/url_cache.pkl', 'rb') as f:
url_cache = pickle.load(f)
except:
url_cache = {}
# save url cache
def save_url_cache():
global url_cache
if not os.path.exists('cache'):
os.makedirs('cache')
with open('cache/url_cache.pkl', 'wb') as f:
pickle.dump(url_cache, f)
def parse_plugin_element(element_node):
element = {}
for detail in element_node:
if detail.tag in ['pads']:
pass
elif detail.text:
element[detail.tag] = detail.text
return element
def parse_plugin_elements(elements_node):
element_list = []
for enode in elements_node:
element = parse_plugin_element(enode)
element_list.append(element)
return element_list
def parse_plugin(plugin_node):
plugin = {}
for detail in plugin_node:
if detail.tag == 'elements':
plugin['elements'] = parse_plugin_elements(detail)
elif detail.text:
plugin[detail.tag] = detail.text
return plugin
def parse_plugins(xml_fn):
plugin_list = []
tree = xmltree.parse(xml_fn)
root = tree.getroot()
for pnode in root:
plugin = parse_plugin(pnode)
plugin_list.append(plugin)
return plugin_list
def process_plugins(short_name):
module = {}
elements = []
plugins = parse_plugins(short_name + '.xml')
module['plugins'] = plugins
for p in plugins:
p['module_name'] = short_name
elist = p['elements']
for e in elist:
e['plugin_name'] = p['name']
e['module_name'] = short_name
elements.append(e)
name = e['name']
if name in all_elements:
print('Element {0} already exists in element list! {1}'.format(name, all_elements[name]))
else:
all_elements[name] = e
if p['name'] in all_plugins:
print('Plugin {0} already exists in plugin list! {1}'.format(name, all_plugins[p['name']]))
else:
all_plugins[p['name']] = p
module['elements'] = elements
modules[short_name] = module
# __main__
load_url_cache()
if not check_url('https://www.google.com'):
if not allow_offline:
raise Exception('URL checking does not seem to work, are you online?')
else:
print ('URL checking does not seem to work, continuing in offline mode')
is_offline = True
for m in ['core', 'base', 'good', 'bad', 'ugly']:
process_plugins(m)
plugins_page = '''# List of Elements and Plugins
<!-- WARNING: This page is generated! Any modifications will be overwritten -->
Note: this list is not complete! It does not contain OS-specific plugins
for Android, Windows, macOS, iOS, or wrapper plugins (gst-libav, gst-omx),
nor gst-rtsp-server or gstreamer-vaapi elements.
There may be links to pages that don't exist, this means that the element or
plugin does not have documentation yet or the documentation is not hooked up
properly (help welcome!).
| Element | Description | Plugin | Module |
|---------|-------------|---------|--------|
'''
plugin_names = []
element_links = []
plugin_links = []
element_names = []
for e in all_elements:
element_names.append(e)
element_names.sort()
for e in element_names:
element_name = e
element_desc = all_elements[e]['description']
plugin_name = all_elements[e]['plugin_name']
module_nick = all_elements[e]['module_name']
if module_nick == 'core':
module_name = 'gstreamer'
else:
module_name = 'gst-plugins-' + module_nick
# column 1: element name
edoc_url = 'https://gstreamer.freedesktop.org/data/doc/gstreamer/head/' + \
'{1}-plugins/html/{1}-plugins-{0}.html'.format(element_name, module_name)
if check_url(edoc_url):
element_links.append('[element-{0}]: {1}\n'.format(element_name, edoc_url))
plugins_page += '|[{0}][element-{0}]'.format(element_name)
else:
plugins_page += '|{0}'.format(element_name)
# column 2: element description
element_desc.replace('\n', ' ')
element_desc.replace('|', ' ')
if len(element_desc) > 150:
element_desc = '(too long)'
plugins_page += '|{0}'.format(element_desc)
# column 3: plugin name
pdoc_url = 'https://gstreamer.freedesktop.org/data/doc/gstreamer/head/' + \
'{1}-plugins/html/{1}-plugins-plugin-{0}.html'.format(plugin_name,module_name)
if check_url(pdoc_url):
plugins_page += '|[{0}][{0}]'.format(plugin_name)
else:
plugins_page += '|{0}'.format(plugin_name)
if plugin_name not in plugin_names:
plugin_names.append(plugin_name)
if check_url(pdoc_url):
plugin_links.append('[{0}]: {1}\n'.format(plugin_name,pdoc_url))
# column 4: module name
plugins_page += '|[{0}][{1}]'.format(module_name, module_nick)
# end of row
plugins_page += '|\n'
# Write module shortcuts list
plugins_page += '''
[core]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/
[base]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-plugins/html/
[good]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-plugins/html/
[ugly]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-ugly-plugins/html/
[bad]: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad-plugins/html/
'''
# Write element shortcuts list
element_links.sort()
for elink in element_links:
plugins_page += elink
plugins_page += '\n'
# Write plugin shortcuts list
plugin_links.sort()
for plink in plugin_links:
plugins_page += plink
# Output page to stdout
print(plugins_page)
save_url_cache()

File diff suppressed because one or more lines are too long

View file

@ -1,57 +0,0 @@
update-plugin-list:
@cd plugins-introspection; \
./create_plugin_list.py > ../markdown/plugins.md ; \
cd ..
CHECKOUT_DIR = $(top_builddir)/plugins-introspection/cache
checkoutdir:
@mkdir -p $(CHECKOUT_DIR) || { \
echo "Failed to create $(CHECKOUT_DIR)"; \
exit 1; \
}
update-xml: checkoutdir
@for m in gstreamer gst-plugins-base gst-plugins-good gst-plugins-ugly gst-plugins-bad; do \
moduledir=$(CHECKOUT_DIR)/$$m; \
branch=$(BRANCH); \
if [ -d $$moduledir ] ; then \
cd $$moduledir; \
echo "$$m checkout: cleaning"; \
git fetch --tags; \
git clean --dry-run -f -d -x || { \
echo "Cleaning $$m checkout failed"; exit 1; \
} ; \
echo "$$m checkout: updating..."; \
git checkout -q $$branch && git pull -q || { \
echo "Updating $$m checkout failed"; exit 1; \
} ; \
else \
echo "$$m checkout: creating (cloning)"; \
git clone -b $$branch https://gitlab.freedesktop.org/gstreamer/$$m.git $$moduledir || { \
echo "git clone failed"; exit 1; \
} ; \
cd ../../ ; \
fi; \
done
@cd $(CHECKOUT_DIR)/gstreamer; \
echo '<plugins module_name="gstreamer">' > ../../core.xml; \
git ls-files docs/plugins/inspect/ | sort | xargs cat >> ../../core.xml; \
echo '</plugins>' >> ../../core.xml
@for m in base good ugly bad; do \
cd $(CHECKOUT_DIR)/gst-plugins-$$m; \
echo '<plugins module_name="gst-plugins-'$$m'">' > ../../$$m.xml; \
git ls-files docs/plugins/inspect/ | sort | xargs cat >> ../../$$m.xml; \
echo '</plugins>' >> ../../$$m.xml; \
done
foo:
@for m in base good ugly bad; do \
echo '<plugins module_name="gst-plugins-'$$m'">' > plugins-introspection/$$m.xml; \
cat $(CHECKOUT_DIR)/gst-plugins-$$m/docs/plugins/inspect/plugin-* >> plugins-introspection/$$m.xml; \
echo '</plugins>' >> plugins-introspection/$$m.xml; \
done
clean-url-cache:
@rm -f plugins-introspection/cache/url_cache.pkl

View file

@ -1,734 +0,0 @@
<plugins module_name="gst-plugins-ugly">
<plugin>
<name>a52dec</name>
<description>Decodes ATSC A/52 encoded audio streams</description>
<filename>../../ext/a52dec/.libs/libgsta52dec.so</filename>
<basename>libgsta52dec.so</basename>
<version>1.10.1</version>
<license>GPL</license>
<source>gst-plugins-ugly</source>
<package>GStreamer Ugly Plug-ins source release</package>
<origin>Unknown package origin</origin>
<elements>
<element>
<name>a52dec</name>
<longname>ATSC A/52 audio decoder</longname>
<class>Codec/Decoder/Audio</class>
<description>Decodes ATSC A/52 encoded audio streams</description>
<author>David I. Lehn &lt;dlehn@users.sourceforge.net&gt;</author>
<pads>
<caps>
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>audio/x-ac3; audio/ac3; audio/x-private1-ac3</details>
</caps>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>audio/x-raw, format=(string)F32LE, layout=(string)interleaved, rate=(int)[ 4000, 96000 ], channels=(int)[ 1, 6 ]</details>
</caps>
</pads>
</element>
</elements>
</plugin><plugin>
<name>amrnb</name>
<description>Adaptive Multi-Rate Narrow-Band</description>
<filename>../../ext/amrnb/.libs/libgstamrnb.so</filename>
<basename>libgstamrnb.so</basename>
<version>1.10.1</version>
<license>unknown</license>
<source>gst-plugins-ugly</source>
<package>GStreamer Ugly Plug-ins source release</package>
<origin>Unknown package origin</origin>
<elements>
<element>
<name>amrnbdec</name>
<longname>AMR-NB audio decoder</longname>
<class>Codec/Decoder/Audio</class>
<description>Adaptive Multi-Rate Narrow-Band audio decoder</description>
<author>GStreamer maintainers &lt;gstreamer-devel@lists.freedesktop.org&gt;</author>
<pads>
<caps>
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>audio/AMR, rate=(int)8000, channels=(int)1</details>
</caps>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)8000, channels=(int)1</details>
</caps>
</pads>
</element>
<element>
<name>amrnbenc</name>
<longname>AMR-NB audio encoder</longname>
<class>Codec/Encoder/Audio</class>
<description>Adaptive Multi-Rate Narrow-Band audio encoder</description>
<author>Wim Taymans &lt;wim.taymans@gmail.com&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, channels=(int)1</details>
</caps>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>audio/AMR, rate=(int)8000, channels=(int)1</details>
</caps>
</pads>
</element>
</elements>
</plugin><plugin>
<name>amrwbdec</name>
<description>Adaptive Multi-Rate Wide-Band Decoder</description>
<filename>../../ext/amrwbdec/.libs/libgstamrwbdec.so</filename>
<basename>libgstamrwbdec.so</basename>
<version>1.10.1</version>
<license>unknown</license>
<source>gst-plugins-ugly</source>
<package>GStreamer Ugly Plug-ins source release</package>
<origin>Unknown package origin</origin>
<elements>
<element>
<name>amrwbdec</name>
<longname>AMR-WB audio decoder</longname>
<class>Codec/Decoder/Audio</class>
<description>Adaptive Multi-Rate Wideband audio decoder</description>
<author>Renato Araujo &lt;renato.filho@indt.org.br&gt;</author>
<pads>
<caps>
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>audio/AMR-WB, rate=(int)16000, channels=(int)1</details>
</caps>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)16000, channels=(int)1</details>
</caps>
</pads>
</element>
</elements>
</plugin><plugin>
<name>asf</name>
<description>Demuxes and muxes audio and video in Microsofts ASF format</description>
<filename>../../gst/asfdemux/.libs/libgstasf.so</filename>
<basename>libgstasf.so</basename>
<version>1.10.1</version>
<license>LGPL</license>
<source>gst-plugins-ugly</source>
<package>GStreamer Ugly Plug-ins source release</package>
<origin>Unknown package origin</origin>
<elements>
<element>
<name>asfdemux</name>
<longname>ASF Demuxer</longname>
<class>Codec/Demuxer</class>
<description>Demultiplexes ASF Streams</description>
<author>Owen Fraser-Green &lt;owen@discobabe.net&gt;</author>
<pads>
<caps>
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>video/x-ms-asf</details>
</caps>
<caps>
<name>audio_%u</name>
<direction>source</direction>
<presence>sometimes</presence>
<details>ANY</details>
</caps>
<caps>
<name>video_%u</name>
<direction>source</direction>
<presence>sometimes</presence>
<details>ANY</details>
</caps>
</pads>
</element>
<element>
<name>rtpasfdepay</name>
<longname>RTP ASF packet depayloader</longname>
<class>Codec/Depayloader/Network</class>
<description>Extracts ASF streams from RTP</description>
<author>Tim-Philipp Müller &lt;tim centricular net&gt;, Wim Taymans &lt;wim.taymans@gmail.com&gt;</author>
<pads>
<caps>
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rtp, media=(string){ application, video, audio }, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)X-ASF-PF</details>
</caps>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>video/x-ms-asf</details>
</caps>
</pads>
</element>
<element>
<name>rtspwms</name>
<longname>WMS RTSP Extension</longname>
<class>Network/Extension/Protocol</class>
<description>Extends RTSP so that it can handle WMS setup</description>
<author>Wim Taymans &lt;wim.taymans@gmail.com&gt;</author>
<pads>
</pads>
</element>
</elements>
</plugin><plugin>
<name>cdio</name>
<description>Read audio from audio CDs</description>
<filename>../../ext/cdio/.libs/libgstcdio.so</filename>
<basename>libgstcdio.so</basename>
<version>1.10.1</version>
<license>GPL</license>
<source>gst-plugins-ugly</source>
<package>GStreamer Ugly Plug-ins source release</package>
<origin>Unknown package origin</origin>
<elements>
<element>
<name>cdiocddasrc</name>
<longname>CD audio source (CDDA)</longname>
<class>Source/File</class>
<description>Read audio from CD using libcdio</description>
<author>Tim-Philipp Müller &lt;tim centricular net&gt;</author>
<pads>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)44100, channels=(int)2</details>
</caps>
</pads>
</element>
</elements>
</plugin><plugin>
<name>dvdlpcmdec</name>
<description>Decode DVD LPCM frames into standard PCM</description>
<filename>../../gst/dvdlpcmdec/.libs/libgstdvdlpcmdec.so</filename>
<basename>libgstdvdlpcmdec.so</basename>
<version>1.10.1</version>
<license>LGPL</license>
<source>gst-plugins-ugly</source>
<package>GStreamer Ugly Plug-ins source release</package>
<origin>Unknown package origin</origin>
<elements>
<element>
<name>dvdlpcmdec</name>
<longname>DVD LPCM Audio decoder</longname>
<class>Codec/Decoder/Audio</class>
<description>Decode DVD LPCM frames into standard PCM audio</description>
<author>Jan Schmidt &lt;jan@noraisin.net&gt;, Michael Smith &lt;msmith@fluendo.com&gt;</author>
<pads>
<caps>
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>audio/x-private1-lpcm; audio/x-private2-lpcm; audio/x-lpcm, width=(int){ 16, 20, 24 }, rate=(int){ 32000, 44100, 48000, 96000 }, channels=(int)[ 1, 8 ], dynamic_range=(int)[ 0, 255 ], emphasis=(boolean){ true, false }, mute=(boolean){ true, false }</details>
</caps>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>audio/x-raw, format=(string){ S16BE, S24BE }, layout=(string)interleaved, rate=(int){ 32000, 44100, 48000, 96000 }, channels=(int)[ 1, 8 ]</details>
</caps>
</pads>
</element>
</elements>
</plugin><plugin>
<name>dvdread</name>
<description>Access a DVD with dvdread</description>
<filename>../../ext/dvdread/.libs/libgstdvdread.so</filename>
<basename>libgstdvdread.so</basename>
<version>1.10.1</version>
<license>GPL</license>
<source>gst-plugins-ugly</source>
<package>GStreamer Ugly Plug-ins source release</package>
<origin>Unknown package origin</origin>
<elements>
<element>
<name>dvdreadsrc</name>
<longname>DVD Source</longname>
<class>Source/File/DVD</class>
<description>Access a DVD title/chapter/angle using libdvdread</description>
<author>Erik Walthinsen &lt;omega@cse.ogi.edu&gt;</author>
<pads>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>video/mpeg, mpegversion=(int)2, systemstream=(boolean)true</details>
</caps>
</pads>
</element>
</elements>
</plugin><plugin>
<name>dvdsub</name>
<description>DVD subtitle parser and decoder</description>
<filename>../../gst/dvdsub/.libs/libgstdvdsub.so</filename>
<basename>libgstdvdsub.so</basename>
<version>1.10.1</version>
<license>LGPL</license>
<source>gst-plugins-ugly</source>
<package>GStreamer Ugly Plug-ins source release</package>
<origin>Unknown package origin</origin>
<elements>
<element>
<name>dvdsubdec</name>
<longname>DVD subtitle decoder</longname>
<class>Codec/Decoder/Video</class>
<description>Decodes DVD subtitles into AYUV video frames</description>
<author>Wim Taymans &lt;wim.taymans@gmail.com&gt;, Jan Schmidt &lt;thaytan@mad.scientist.com&gt;</author>
<pads>
<caps>
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>subpicture/x-dvd</details>
</caps>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>video/x-raw, format=(string){ AYUV, ARGB }, width=(int)720, height=(int)576, framerate=(fraction)0/1</details>
</caps>
</pads>
</element>
<element>
<name>dvdsubparse</name>
<longname>DVD subtitle parser</longname>
<class>Codec/Parser/Subtitle</class>
<description>Parses and packetizes DVD subtitle streams</description>
<author>Mark Nauwelaerts &lt;mnauw@users.sourceforge.net&gt;</author>
<pads>
<caps>
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>subpicture/x-dvd</details>
</caps>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>subpicture/x-dvd, parsed=(boolean)true</details>
</caps>
</pads>
</element>
</elements>
</plugin><plugin>
<name>lame</name>
<description>Encode MP3s with LAME</description>
<filename>../../ext/lame/.libs/libgstlame.so</filename>
<basename>libgstlame.so</basename>
<version>1.10.1</version>
<license>LGPL</license>
<source>gst-plugins-ugly</source>
<package>GStreamer Ugly Plug-ins source release</package>
<origin>Unknown package origin</origin>
<elements>
<element>
<name>lamemp3enc</name>
<longname>L.A.M.E. mp3 encoder</longname>
<class>Codec/Encoder/Audio</class>
<description>High-quality free MP3 encoder</description>
<author>Sebastian Dröge &lt;sebastian.droege@collabora.co.uk&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 }, channels=(int)1; audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 }, channels=(int)2, channel-mask=(bitmask)0x0000000000000003</details>
</caps>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>audio/mpeg, mpegversion=(int)1, layer=(int)3, rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 }, channels=(int)[ 1, 2 ]</details>
</caps>
</pads>
</element>
</elements>
</plugin><plugin>
<name>mad</name>
<description>mp3 decoding based on the mad library</description>
<filename>../../ext/mad/.libs/libgstmad.so</filename>
<basename>libgstmad.so</basename>
<version>1.10.1</version>
<license>GPL</license>
<source>gst-plugins-ugly</source>
<package>GStreamer Ugly Plug-ins source release</package>
<origin>Unknown package origin</origin>
<elements>
<element>
<name>mad</name>
<longname>mad mp3 decoder</longname>
<class>Codec/Decoder/Audio</class>
<description>Uses mad code to decode mp3 streams</description>
<author>Wim Taymans &lt;wim.taymans@gmail.com&gt;</author>
<pads>
<caps>
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>audio/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ], rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 }, channels=(int)[ 1, 2 ]</details>
</caps>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>audio/x-raw, format=(string)S32LE, layout=(string)interleaved, rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 }, channels=(int)[ 1, 2 ]</details>
</caps>
</pads>
</element>
</elements>
</plugin><plugin>
<name>mpeg2dec</name>
<description>LibMpeg2 decoder</description>
<filename>../../ext/mpeg2dec/.libs/libgstmpeg2dec.so</filename>
<basename>libgstmpeg2dec.so</basename>
<version>1.10.1</version>
<license>GPL</license>
<source>gst-plugins-ugly</source>
<package>GStreamer Ugly Plug-ins source release</package>
<origin>Unknown package origin</origin>
<elements>
<element>
<name>mpeg2dec</name>
<longname>mpeg1 and mpeg2 video decoder</longname>
<class>Codec/Decoder/Video</class>
<description>Uses libmpeg2 to decode MPEG video streams</description>
<author>Wim Taymans &lt;wim.taymans@chello.be&gt;</author>
<pads>
<caps>
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>video/mpeg, mpegversion=(int)[ 1, 2 ], systemstream=(boolean)false</details>
</caps>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>video/x-raw, format=(string){ YV12, I420, Y42B, Y444 }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
</caps>
</pads>
</element>
</elements>
</plugin><plugin>
<name>mpg123</name>
<description>mp3 decoding based on the mpg123 library</description>
<filename>../../ext/mpg123/.libs/libgstmpg123.so</filename>
<basename>libgstmpg123.so</basename>
<version>1.10.1</version>
<license>LGPL</license>
<source>gst-plugins-ugly</source>
<package>GStreamer Ugly Plug-ins source release</package>
<origin>Unknown package origin</origin>
<elements>
<element>
<name>mpg123audiodec</name>
<longname>mpg123 mp3 decoder</longname>
<class>Codec/Decoder/Audio</class>
<description>Decodes mp3 streams using the mpg123 library</description>
<author>Carlos Rafael Giani &lt;dv@pseudoterminal.org&gt;</author>
<pads>
<caps>
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>audio/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ], rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 }, channels=(int)[ 1, 2 ], parsed=(boolean)true</details>
</caps>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>audio/x-raw, format=(string){ S16LE, U16LE, S32LE, U32LE, S24LE, U24LE, F32LE }, rate=(int){ 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 }, channels=(int)[ 1, 2 ], layout=(string)interleaved</details>
</caps>
</pads>
</element>
</elements>
</plugin><plugin>
<name>realmedia</name>
<description>RealMedia support plugins</description>
<filename>../../gst/realmedia/.libs/libgstrmdemux.so</filename>
<basename>libgstrmdemux.so</basename>
<version>1.10.1</version>
<license>LGPL</license>
<source>gst-plugins-ugly</source>
<package>GStreamer Ugly Plug-ins source release</package>
<origin>Unknown package origin</origin>
<elements>
<element>
<name>pnmsrc</name>
<longname>PNM packet receiver</longname>
<class>Source/Network</class>
<description>Receive data over the network via PNM</description>
<author>Wim Taymans &lt;wim.taymans@gmail.com&gt;</author>
<pads>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>application/vnd.rn-realmedia</details>
</caps>
</pads>
</element>
<element>
<name>rademux</name>
<longname>RealAudio Demuxer</longname>
<class>Codec/Demuxer</class>
<description>Demultiplex a RealAudio file</description>
<author>Tim-Philipp Müller &lt;tim centricular net&gt;</author>
<pads>
<caps>
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-pn-realaudio</details>
</caps>
<caps>
<name>src</name>
<direction>source</direction>
<presence>sometimes</presence>
<details>ANY</details>
</caps>
</pads>
</element>
<element>
<name>rdtdepay</name>
<longname>RDT packet parser</longname>
<class>Codec/Depayloader/Network</class>
<description>Extracts RealMedia from RDT packets</description>
<author>Lutz Mueller &lt;lutz at topfrose dot de&gt;, Wim Taymans &lt;wim@fluendo.com&gt;</author>
<pads>
<caps>
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-rdt, media=(string)application, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)X-REAL-RDT</details>
</caps>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>application/vnd.rn-realmedia</details>
</caps>
</pads>
</element>
<element>
<name>rdtmanager</name>
<longname>RTP Decoder</longname>
<class>Codec/Parser/Network</class>
<description>Accepts raw RTP and RTCP packets and sends them forward</description>
<author>Wim Taymans &lt;wim.taymans@gmail.com&gt;</author>
<pads>
<caps>
<name>recv_rtcp_sink_%u</name>
<direction>sink</direction>
<presence>request</presence>
<details>application/x-rtcp</details>
</caps>
<caps>
<name>recv_rtp_sink_%u</name>
<direction>sink</direction>
<presence>request</presence>
<details>application/x-rdt</details>
</caps>
<caps>
<name>recv_rtp_src_%u_%u_%u</name>
<direction>source</direction>
<presence>sometimes</presence>
<details>application/x-rdt</details>
</caps>
<caps>
<name>rtcp_src_%u</name>
<direction>source</direction>
<presence>request</presence>
<details>application/x-rtcp</details>
</caps>
</pads>
</element>
<element>
<name>rmdemux</name>
<longname>RealMedia Demuxer</longname>
<class>Codec/Demuxer</class>
<description>Demultiplex a RealMedia file into audio and video streams</description>
<author>David Schleef &lt;ds@schleef.org&gt;</author>
<pads>
<caps>
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/vnd.rn-realmedia</details>
</caps>
<caps>
<name>audio_%u</name>
<direction>source</direction>
<presence>sometimes</presence>
<details>ANY</details>
</caps>
<caps>
<name>video_%u</name>
<direction>source</direction>
<presence>sometimes</presence>
<details>ANY</details>
</caps>
</pads>
</element>
<element>
<name>rtspreal</name>
<longname>RealMedia RTSP Extension</longname>
<class>Network/Extension/Protocol</class>
<description>Extends RTSP so that it can handle RealMedia setup</description>
<author>Wim Taymans &lt;wim.taymans@gmail.com&gt;</author>
<pads>
</pads>
</element>
</elements>
</plugin><plugin>
<name>siddec</name>
<description>Uses libsidplay to decode .sid files</description>
<filename>../../ext/sidplay/.libs/libgstsid.so</filename>
<basename>libgstsid.so</basename>
<version>1.10.1</version>
<license>GPL</license>
<source>gst-plugins-ugly</source>
<package>GStreamer Ugly Plug-ins source release</package>
<origin>Unknown package origin</origin>
<elements>
<element>
<name>siddec</name>
<longname>Sid decoder</longname>
<class>Codec/Decoder/Audio</class>
<description>Use libsidplay to decode SID audio tunes</description>
<author>Wim Taymans &lt;wim.taymans@gmail.com&gt;</author>
<pads>
<caps>
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>audio/x-sid</details>
</caps>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>audio/x-raw, format=(string){ S16LE, U16LE, S8, U8 }, layout=(string)interleaved, rate=(int)[ 8000, 48000 ], channels=(int)[ 1, 2 ]</details>
</caps>
</pads>
</element>
</elements>
</plugin><plugin>
<name>twolame</name>
<description>Encode MP2s with TwoLAME</description>
<filename>../../ext/twolame/.libs/libgsttwolame.so</filename>
<basename>libgsttwolame.so</basename>
<version>1.10.1</version>
<license>LGPL</license>
<source>gst-plugins-ugly</source>
<package>GStreamer Ugly Plug-ins source release</package>
<origin>Unknown package origin</origin>
<elements>
<element>
<name>twolamemp2enc</name>
<longname>TwoLAME mp2 encoder</longname>
<class>Codec/Encoder/Audio</class>
<description>High-quality free MP2 encoder</description>
<author>Sebastian Dröge &lt;sebastian.droege@collabora.co.uk&gt;</author>
<pads>
<caps>
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>audio/x-raw, format=(string){ F32LE, S16LE }, layout=(string)interleaved, rate=(int){ 16000, 22050, 24000, 32000, 44100, 48000 }, channels=(int)1; audio/x-raw, format=(string){ F32LE, S16LE }, layout=(string)interleaved, rate=(int){ 16000, 22050, 24000, 32000, 44100, 48000 }, channels=(int)2, channel-mask=(bitmask)0x0000000000000003</details>
</caps>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>audio/mpeg, mpegversion=(int)1, layer=(int)2, rate=(int){ 16000, 22050, 24000, 32000, 44100, 48000 }, channels=(int)[ 1, 2 ]</details>
</caps>
</pads>
</element>
</elements>
</plugin><plugin>
<name>x264</name>
<description>libx264-based H264 plugins</description>
<filename>../../ext/x264/.libs/libgstx264.so</filename>
<basename>libgstx264.so</basename>
<version>1.10.1</version>
<license>GPL</license>
<source>gst-plugins-ugly</source>
<package>GStreamer Ugly Plug-ins source release</package>
<origin>Unknown package origin</origin>
<elements>
<element>
<name>x264enc</name>
<longname>x264enc</longname>
<class>Codec/Encoder/Video</class>
<description>H264 Encoder</description>
<author>Josef Zlomek &lt;josef.zlomek@itonis.tv&gt;, Mark Nauwelaerts &lt;mnauw@users.sf.net&gt;</author>
<pads>
<caps>
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>video/x-raw, format=(string){ I420, YV12, Y42B, Y444, NV12, I420_10LE, I422_10LE, Y444_10LE }, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 16, 2147483647 ], height=(int)[ 16, 2147483647 ]</details>
</caps>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>video/x-h264, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], stream-format=(string){ avc, byte-stream }, alignment=(string)au, profile=(string){ high-4:4:4, high-4:2:2, high-10, high, main, baseline, constrained-baseline, high-4:4:4-intra, high-4:2:2-intra, high-10-intra }</details>
</caps>
</pads>
</element>
</elements>
</plugin><plugin>
<name>xingmux</name>
<description>Add XING tags to mpeg audio files</description>
<filename>../../gst/xingmux/.libs/libgstxingmux.so</filename>
<basename>libgstxingmux.so</basename>
<version>1.10.1</version>
<license>LGPL</license>
<source>gst-plugins-ugly</source>
<package>GStreamer Ugly Plug-ins source release</package>
<origin>Unknown package origin</origin>
<elements>
<element>
<name>xingmux</name>
<longname>MP3 Xing muxer</longname>
<class>Formatter/Muxer/Metadata</class>
<description>Adds a Xing header to the beginning of a VBR MP3 file</description>
<author>Christophe Fergeau &lt;teuf@gnome.org&gt;</author>
<pads>
<caps>
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>audio/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ]</details>
</caps>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>audio/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ]</details>
</caps>
</pads>
</element>
</elements>
</plugin></plugins>

View file

@ -133,7 +133,6 @@ doc_index.md
plugin-development/appendix/checklist-element.md
plugin-development/appendix/porting.md
plugin-development/appendix/licensing-advisory.md
plugins.md
splitup.md
licensing.md
rtp.md