gstreamer/docs/gst/gstreamer-docs.sgml
Alex Ashley abdafb0d64 protection: add GstProtectionMeta to support protected content
In order to support some types of protected streams (such as those
protected using DASH Common Encryption) some per-buffer information
needs to be passed between elements.

This commit adds a GstMeta type called GstProtectionMeta that allows
protection specific information to be added to a GstBuffer. An example
of its usage is qtdemux providing information to each output sample
that enables a downstream element to decrypt it.

This commit adds a utility function to select a supported protection
system from the installed Decryption elements found in the registry.
The gst_protection_select_system function that takes an array of
identifiers and searches the registry for a element of klass Decryptor that
supports one or more of the supplied identifiers. If multiple elements
are found, the one with the highest rank is selected.

This commit adds a unit test for the gst_protection_select_system
function that adds a fake Decryptor element to the registry and then
checks that it can correctly be selected by the utility function.

This commit adds a unit test for GstProtectionMeta that creates
GstProtectionMeta and adds & removes it from a buffer and performs some
simple reference count checks.

API: gst_buffer_add_protection_meta()
API: gst_buffer_get_protection_meta()
API: gst_protection_select_system()
API: gst_protection_meta_api_get_type()
API: gst_protection_meta_get_info()

https://bugzilla.gnome.org/show_bug.cgi?id=705991
2015-04-18 12:24:06 +01:00

155 lines
5.8 KiB
XML

<?xml version="1.0"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
<!ENTITY % version-entities SYSTEM "version.entities">
%version-entities;
<!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'">
<!ENTITY hash "#">
]>
<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude">
<bookinfo>
<title>GStreamer &GST_API_VERSION; Core Reference Manual</title>
<releaseinfo>
for GStreamer Core &GST_API_VERSION; (&GST_VERSION;)
The latest version of this documentation can be found on-line at
<ulink role="online-location" url="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/</ulink>.
</releaseinfo>
</bookinfo>
<chapter id="gstreamer">
<title>GStreamer Overview</title>
<para>
GStreamer is a streaming media framework.
It uses graphs of elements which operate on data.
The functionality to process media is provided by plug-ins which provide
features like elements, typefinding, and so on.
This allows new functionality to be added simply by installing new plug-ins.
</para>
<para>
GStreamer is cross-platform and works on most UNIX-like platforms as well as
Windows. It is released under the GNU Library General Public License
(GNU LGPL).
</para>
<mediaobject>
<imageobject>
<imagedata fileref="gst-universe.svg" format="SVG"/>
</imageobject>
<caption>
<para>Relation between gstreamer core objects.</para>
</caption>
</mediaobject>
<xi:include href="building.xml" />
<xi:include href="running.xml" />
</chapter>
<chapter id="libgstreamer">
<title>GStreamer Core Library</title>
<para>
libgstreamer-&GST_API_VERSION;.so provides all the core GStreamer services,
including initialization, plugin management and types,
as well as the object hierarchy that defines elements and bins,
along with some more specialized elements.
</para>
<xi:include href="xml/gst.xml" />
<xi:include href="xml/gstallocator.xml" />
<xi:include href="xml/gstatomicqueue.xml" />
<xi:include href="xml/gstbin.xml" />
<xi:include href="xml/gstbuffer.xml" />
<xi:include href="xml/gstbufferlist.xml" />
<xi:include href="xml/gstbufferpool.xml" />
<xi:include href="xml/gstbus.xml" />
<xi:include href="xml/gstcaps.xml" />
<xi:include href="xml/gstcapsfeatures.xml" />
<xi:include href="xml/gstsample.xml" />
<xi:include href="xml/gstchildproxy.xml" />
<xi:include href="xml/gstclock.xml" />
<xi:include href="xml/gstconfig.xml" />
<xi:include href="xml/gstcontext.xml" />
<xi:include href="xml/gstcontrolbinding.xml" />
<xi:include href="xml/gstcontrolsource.xml" />
<xi:include href="xml/gstdatetime.xml" />
<xi:include href="xml/gstelement.xml" />
<xi:include href="xml/gstelementfactory.xml" />
<xi:include href="xml/gsterror.xml" />
<xi:include href="xml/gstevent.xml" />
<xi:include href="xml/gstformat.xml" />
<xi:include href="xml/gstghostpad.xml" />
<xi:include href="xml/gstiterator.xml" />
<xi:include href="xml/gstmemory.xml" />
<xi:include href="xml/gstmessage.xml" />
<xi:include href="xml/gstmeta.xml" />
<xi:include href="xml/gstminiobject.xml" />
<xi:include href="xml/gstobject.xml" />
<xi:include href="xml/gstpad.xml" />
<xi:include href="xml/gstpadtemplate.xml" />
<xi:include href="xml/gstparamspec.xml" />
<xi:include href="xml/gstparse.xml" />
<xi:include href="xml/gstpipeline.xml" />
<xi:include href="xml/gstplugin.xml" />
<xi:include href="xml/gstpluginfeature.xml" />
<xi:include href="xml/gstpoll.xml" />
<xi:include href="xml/gstpreset.xml" />
<xi:include href="xml/gstprotection.xml" />
<xi:include href="xml/gstquery.xml" />
<xi:include href="xml/gstregistry.xml" />
<xi:include href="xml/gstsegment.xml" />
<xi:include href="xml/gststructure.xml" />
<xi:include href="xml/gstsystemclock.xml" />
<xi:include href="xml/gsttaglist.xml" />
<xi:include href="xml/gsttagsetter.xml" />
<xi:include href="xml/gsttask.xml" />
<xi:include href="xml/gsttaskpool.xml" />
<xi:include href="xml/gsttoc.xml" />
<xi:include href="xml/gsttocsetter.xml" />
<xi:include href="xml/gsttypefind.xml" />
<xi:include href="xml/gsttypefindfactory.xml" />
<xi:include href="xml/gsturi.xml" />
<xi:include href="xml/gsturihandler.xml" />
<xi:include href="xml/gstutils.xml" />
<xi:include href="xml/gstvalue.xml" />
<xi:include href="xml/gstversion.xml" />
</chapter>
<chapter id="gstreamer-device-probing">
<title>GStreamer Device Discovery and Device Probing</title>
<xi:include href="xml/gstdevicemonitor.xml" />
<xi:include href="xml/gstdevice.xml" />
<xi:include href="xml/gstdeviceprovider.xml" />
<xi:include href="xml/gstdeviceproviderfactory.xml" />
</chapter>
<chapter id="gstreamer-support">
<title>GStreamer Core Support</title>
<para>
Theses modules support the gstreamer core and plugin development.
Application developers will rarely need to know about it.
</para>
<xi:include href="xml/gstinfo.xml" />
</chapter>
<chapter id="gstreamer-hierarchy">
<title>Object Hierarchy</title>
<xi:include href="xml/tree_index.sgml"/>
</chapter>
<index id="api-index-full">
<title>API Index</title>
<xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
</index>
<index id="api-index-deprecated" role="deprecated">
<title>Index of deprecated API</title>
<xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include>
</index>
<xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
</book>