mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 20:21:24 +00:00
abdafb0d64
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
155 lines
5.8 KiB
XML
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>
|