mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-30 05:31:15 +00:00
inlined the last two docs files removed the tmpl directory from cvs (no more conflicts here!)
Original commit message from CVS: * docs/gst/.cvsignore: * docs/gst/tmpl/.cvsignore: * docs/gst/tmpl/gstpipeline.sgml: * docs/gst/tmpl/gstplugin.sgml: * gst/gstpipeline.c: * gst/gstplugin.c: * gst/gstplugin.h: inlined the last two docs files removed the tmpl directory from cvs (no more conflicts here!)
This commit is contained in:
parent
41aca72772
commit
788bac107d
8 changed files with 163 additions and 509 deletions
12
ChangeLog
12
ChangeLog
|
@ -1,3 +1,15 @@
|
||||||
|
2005-09-25 Stefan Kost <ensonic@users.sf.net>
|
||||||
|
|
||||||
|
* docs/gst/.cvsignore:
|
||||||
|
* docs/gst/tmpl/.cvsignore:
|
||||||
|
* docs/gst/tmpl/gstpipeline.sgml:
|
||||||
|
* docs/gst/tmpl/gstplugin.sgml:
|
||||||
|
* gst/gstpipeline.c:
|
||||||
|
* gst/gstplugin.c:
|
||||||
|
* gst/gstplugin.h:
|
||||||
|
inlined the last two docs files
|
||||||
|
removed the tmpl directory from cvs (no more conflicts here!)
|
||||||
|
|
||||||
2005-09-25 Stefan Kost <ensonic@users.sf.net>
|
2005-09-25 Stefan Kost <ensonic@users.sf.net>
|
||||||
|
|
||||||
* docs/gst/gstreamer-sections.txt:
|
* docs/gst/gstreamer-sections.txt:
|
||||||
|
|
1
docs/gst/.gitignore
vendored
1
docs/gst/.gitignore
vendored
|
@ -13,6 +13,7 @@ gstreamer.signals
|
||||||
|
|
||||||
html
|
html
|
||||||
sgml
|
sgml
|
||||||
|
tmpl
|
||||||
*.stamp
|
*.stamp
|
||||||
|
|
||||||
gstreamer.html
|
gstreamer.html
|
||||||
|
|
67
docs/gst/tmpl/.gitignore
vendored
67
docs/gst/tmpl/.gitignore
vendored
|
@ -1,67 +0,0 @@
|
||||||
*.bak
|
|
||||||
unused-build.stamp
|
|
||||||
gst.sgml
|
|
||||||
gstadapter.sgml
|
|
||||||
gstbasesink.sgml
|
|
||||||
gstbasesrc.sgml
|
|
||||||
gstbasetransform.sgml
|
|
||||||
gstbin.sgml
|
|
||||||
gstbuffer.sgml
|
|
||||||
gstbus.sgml
|
|
||||||
gstcaps.sgml
|
|
||||||
gstcheck.sgml
|
|
||||||
gstclock.sgml
|
|
||||||
gstchildproxy.sgml
|
|
||||||
gstcollectpads.sgml
|
|
||||||
gstcompat.sgml
|
|
||||||
gstconfig.sgml
|
|
||||||
gstelement.sgml
|
|
||||||
gstelementdetails.sgml
|
|
||||||
gstelementfactory.sgml
|
|
||||||
gstenumtypes.sgml
|
|
||||||
gstevent.sgml
|
|
||||||
gsterror.sgml
|
|
||||||
gstfakesrc.sgml
|
|
||||||
gstfakesink.sgml
|
|
||||||
gstfilesrc.sgml
|
|
||||||
gstfilesink.sgml
|
|
||||||
gstfilter.sgml
|
|
||||||
gstformat.sgml
|
|
||||||
gstghostpad.sgml
|
|
||||||
gstimplementsinterface.sgml
|
|
||||||
gstindex.sgml
|
|
||||||
gstindexfactory.sgml
|
|
||||||
gstinfo.sgml
|
|
||||||
gstiterator.sgml
|
|
||||||
gstmacros.sgml
|
|
||||||
gstmemchunk.sgml
|
|
||||||
gstmessage.sgml
|
|
||||||
gstminiobject.sgml
|
|
||||||
gstobject.sgml
|
|
||||||
gstpad.sgml
|
|
||||||
gstpadtemplate.sgml
|
|
||||||
gstparse.sgml
|
|
||||||
gstpluginfeature.sgml
|
|
||||||
gstpushsrc.sgml
|
|
||||||
gstqueue.sgml
|
|
||||||
gstquery.sgml
|
|
||||||
gstreamer-unused.sgml
|
|
||||||
gstregistry.sgml
|
|
||||||
gstregistrypool.sgml
|
|
||||||
gststructure.sgml
|
|
||||||
gstsystemclock.sgml
|
|
||||||
gsttaglist.sgml
|
|
||||||
gsttagsetter.sgml
|
|
||||||
gsttask.sgml
|
|
||||||
gsttrace.sgml
|
|
||||||
gsttrashstack.sgml
|
|
||||||
gsttypefind.sgml
|
|
||||||
gsttypefindfactory.sgml
|
|
||||||
gsttypes.sgml
|
|
||||||
gsturihandler.sgml
|
|
||||||
gsturitype.sgml
|
|
||||||
gstutils.sgml
|
|
||||||
gstvalue.sgml
|
|
||||||
gstversion.sgml
|
|
||||||
gstxml.sgml
|
|
||||||
gstxmlregistry.sgml
|
|
|
@ -1,125 +0,0 @@
|
||||||
<!-- ##### SECTION Title ##### -->
|
|
||||||
GstPipeline
|
|
||||||
|
|
||||||
<!-- ##### SECTION Short_Description ##### -->
|
|
||||||
Top-level bin with scheduling and pipeline management functionality.
|
|
||||||
|
|
||||||
<!-- ##### SECTION Long_Description ##### -->
|
|
||||||
<para>
|
|
||||||
In almost all cases, you'll want to use a GstPipeline when creating a
|
|
||||||
filter graph. The GstPipeline will manage all the scheduling issues,
|
|
||||||
including threading, as well as provide simple interfaces to common
|
|
||||||
functions, like 'Play'.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
gst_pipeline_new() is used to create a pipeline. when you are done with
|
|
||||||
the pipeline, use gst_object_unref() to free its resources.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<!-- ##### SECTION See_Also ##### -->
|
|
||||||
<para>
|
|
||||||
#GstBin
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<!-- ##### SECTION Stability_Level ##### -->
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### STRUCT GstPipeline ##### -->
|
|
||||||
<para>
|
|
||||||
|
|
||||||
</para>
|
|
||||||
|
|
||||||
@fixed_clock:
|
|
||||||
@stream_time:
|
|
||||||
@delay:
|
|
||||||
@play_timeout:
|
|
||||||
|
|
||||||
<!-- ##### ARG GstPipeline:delay ##### -->
|
|
||||||
<para>
|
|
||||||
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<!-- ##### ARG GstPipeline:play-timeout ##### -->
|
|
||||||
<para>
|
|
||||||
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<!-- ##### ENUM GstPipelineFlags ##### -->
|
|
||||||
<para>
|
|
||||||
|
|
||||||
</para>
|
|
||||||
|
|
||||||
@GST_PIPELINE_FLAG_FIXED_CLOCK:
|
|
||||||
@GST_PIPELINE_FLAG_LAST:
|
|
||||||
|
|
||||||
<!-- ##### FUNCTION gst_pipeline_new ##### -->
|
|
||||||
<para>
|
|
||||||
|
|
||||||
</para>
|
|
||||||
|
|
||||||
@name:
|
|
||||||
@Returns:
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### FUNCTION gst_pipeline_auto_clock ##### -->
|
|
||||||
<para>
|
|
||||||
|
|
||||||
</para>
|
|
||||||
|
|
||||||
@pipeline:
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### FUNCTION gst_pipeline_get_bus ##### -->
|
|
||||||
<para>
|
|
||||||
|
|
||||||
</para>
|
|
||||||
|
|
||||||
@pipeline:
|
|
||||||
@Returns:
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### FUNCTION gst_pipeline_get_clock ##### -->
|
|
||||||
<para>
|
|
||||||
|
|
||||||
</para>
|
|
||||||
|
|
||||||
@pipeline:
|
|
||||||
@Returns:
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### FUNCTION gst_pipeline_get_last_stream_time ##### -->
|
|
||||||
<para>
|
|
||||||
|
|
||||||
</para>
|
|
||||||
|
|
||||||
@pipeline:
|
|
||||||
@Returns:
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### FUNCTION gst_pipeline_set_clock ##### -->
|
|
||||||
<para>
|
|
||||||
|
|
||||||
</para>
|
|
||||||
|
|
||||||
@pipeline:
|
|
||||||
@clock:
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### FUNCTION gst_pipeline_set_new_stream_time ##### -->
|
|
||||||
<para>
|
|
||||||
|
|
||||||
</para>
|
|
||||||
|
|
||||||
@pipeline:
|
|
||||||
@time:
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### FUNCTION gst_pipeline_use_clock ##### -->
|
|
||||||
<para>
|
|
||||||
|
|
||||||
</para>
|
|
||||||
|
|
||||||
@pipeline:
|
|
||||||
@clock:
|
|
||||||
|
|
||||||
|
|
|
@ -1,304 +0,0 @@
|
||||||
<!-- ##### SECTION Title ##### -->
|
|
||||||
GstPlugin
|
|
||||||
|
|
||||||
<!-- ##### SECTION Short_Description ##### -->
|
|
||||||
Container for features loaded from a shared object module
|
|
||||||
|
|
||||||
<!-- ##### SECTION Long_Description ##### -->
|
|
||||||
<para>
|
|
||||||
GStreamer is extensible, so <classname>GstElements</classname> can be loaded at runtime.
|
|
||||||
A plugin system can provide one or more of the basic <application>GStreamer</application>
|
|
||||||
#GstPluginFeature subclasses.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
A plugin should export a symbol <symbol>plugin_desc</symbol> that is a struct of type #GstPluginDesc.
|
|
||||||
the plugin loader will check the version of the core library the plugin was linked against
|
|
||||||
and will create a new #GstPlugin. It will then call the #GstPluginInitFunc function
|
|
||||||
that was provided in the plugin_desc.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
Once you have a handle to a #GstPlugin (e.g. from the #GstRegistryPool), you can
|
|
||||||
add any object that subclasses #GstPluginFeature.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
Use gst_plugin_find_feature() and gst_plugin_get_feature_list() to find features in a plugin.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
Usually plugins are always automaticlly loaded so you don't need to call gst_plugin_load() explicitly
|
|
||||||
to bring it into memory. There are options to statically link plugins to an app or even
|
|
||||||
use GStreamer without a plugin repository in which case gst_plugin_load() can be needed
|
|
||||||
to bring the plugin into memory.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<!-- ##### SECTION See_Also ##### -->
|
|
||||||
<para>
|
|
||||||
#GstPluginFeature, #GstType, #GstAutoplug, #GstElementFactory
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<!-- ##### SECTION Stability_Level ##### -->
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### FUNCTION gst_plugin_error_quark ##### -->
|
|
||||||
<para>
|
|
||||||
Get the error quark
|
|
||||||
</para>
|
|
||||||
|
|
||||||
@Returns: The error quark used in GError messages
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### MACRO GST_PLUGIN_ERROR ##### -->
|
|
||||||
<para>
|
|
||||||
The error quark
|
|
||||||
</para>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### ENUM GstPluginError ##### -->
|
|
||||||
<para>
|
|
||||||
The plugin loading errors
|
|
||||||
</para>
|
|
||||||
|
|
||||||
@GST_PLUGIN_ERROR_MODULE: The plugin could not be loaded
|
|
||||||
@GST_PLUGIN_ERROR_DEPENDENCIES: The plugin has unresolved dependencies
|
|
||||||
@GST_PLUGIN_ERROR_NAME_MISMATCH: The plugin has already be loaded from a different file
|
|
||||||
|
|
||||||
<!-- ##### STRUCT GstPlugin ##### -->
|
|
||||||
<para>
|
|
||||||
The plugin object
|
|
||||||
</para>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### STRUCT GstPluginDesc ##### -->
|
|
||||||
<para>
|
|
||||||
A plugins should export a variable of this type called plugin_desc. This plugin
|
|
||||||
loaded will use this variable to initialize the plugin.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
@major_version: the major version number of core that plugin was compiled for
|
|
||||||
@minor_version: the minor version number of core that plugin was compiled for
|
|
||||||
@name: a unique name of the plugin
|
|
||||||
@description:
|
|
||||||
@plugin_init: The init function of this plugin.
|
|
||||||
@version: version of the plugin
|
|
||||||
@license: effective license of plugin
|
|
||||||
@source:
|
|
||||||
@package: package plugin belongs to
|
|
||||||
@origin: URL to provider of plugin
|
|
||||||
@_gst_reserved:
|
|
||||||
|
|
||||||
<!-- ##### USER_FUNCTION GstPluginInitFunc ##### -->
|
|
||||||
<para>
|
|
||||||
A plugin should provide a pointer to a function of this type in the plugin_desc struct.
|
|
||||||
It will be called by the loader at statup.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
@plugin: The plugin object that can be used to register stuff for this plugin.
|
|
||||||
@Returns: A boolean indicating success or failure.
|
|
||||||
<!-- # Unused Parameters # -->
|
|
||||||
@module: The <classname>GModule</classname> it was loaded from
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### MACRO GST_PLUGIN_DEFINE ##### -->
|
|
||||||
<para>
|
|
||||||
This macro needs to be used to define the entry point and meta data of a plugin.
|
|
||||||
One would use this macro to export a plugin, so that it can be used by other applications
|
|
||||||
</para>
|
|
||||||
|
|
||||||
@major: major version number of the gstreamer-core that plugin was compiled for
|
|
||||||
@minor: minor version number of the gstreamer-core that plugin was compiled for
|
|
||||||
@name: short, but unique name of the plugin
|
|
||||||
@description: information about the purpose of the plugin
|
|
||||||
@init: function pointer to the plugin_init method with the signature of <code>static gboolean plugin_init (GstPlugin * plugin)</code>.
|
|
||||||
@version: full version string (e.g. VERSION from config.h)
|
|
||||||
@license: under which licence the package has been released, e.g. GPL, LGPL.
|
|
||||||
@package: the package-name (e.g. PACKAGE_NAME from config.h)
|
|
||||||
@origin: a description from where the package comes from (e.g. the homepage URL)
|
|
||||||
<!-- # Unused Parameters # -->
|
|
||||||
@domain:
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### MACRO GST_PLUGIN_DEFINE_STATIC ##### -->
|
|
||||||
<para>
|
|
||||||
This macro needs to be used to define the entry point and meta data of a local plugin.
|
|
||||||
One would use this macro to define a local plugin that can only be used by the own application.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
@major: major version number of the gstreamer-core that plugin was compiled for
|
|
||||||
@minor: minor version number of the gstreamer-core that plugin was compiled for
|
|
||||||
@name: short, but unique name of the plugin
|
|
||||||
@description: information about the purpose of the plugin
|
|
||||||
@init: function pointer to the plugin_init method with the signature of <code>static gboolean plugin_init (GstPlugin * plugin)</code>.
|
|
||||||
@version: full version string (e.g. VERSION from config.h)
|
|
||||||
@license: under which licence the package has been released, e.g. GPL, LGPL.
|
|
||||||
@package: the package-name (e.g. PACKAGE_NAME from config.h)
|
|
||||||
@origin: a description from where the package comes from (e.g. the homepage URL)
|
|
||||||
<!-- # Unused Parameters # -->
|
|
||||||
@domain:
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### MACRO GST_LICENSE_UNKNOWN ##### -->
|
|
||||||
<para>
|
|
||||||
|
|
||||||
</para>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### USER_FUNCTION GstPluginFilter ##### -->
|
|
||||||
<para>
|
|
||||||
A function that can be used with e.g. gst_registry_plugin_filter()
|
|
||||||
to get a list of plugins that match certain criteria.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
@plugin: the plugin to check
|
|
||||||
@user_data: the user_data that has been passed on e.g. gst_registry_plugin_filter()
|
|
||||||
@Returns: TRUE for a positive match, FALSE otherwise
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### FUNCTION gst_plugin_get_name ##### -->
|
|
||||||
<para>
|
|
||||||
|
|
||||||
</para>
|
|
||||||
|
|
||||||
@plugin:
|
|
||||||
@Returns:
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### FUNCTION gst_plugin_get_description ##### -->
|
|
||||||
<para>
|
|
||||||
|
|
||||||
</para>
|
|
||||||
|
|
||||||
@plugin:
|
|
||||||
@Returns:
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### FUNCTION gst_plugin_get_filename ##### -->
|
|
||||||
<para>
|
|
||||||
|
|
||||||
</para>
|
|
||||||
|
|
||||||
@plugin:
|
|
||||||
@Returns:
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### FUNCTION gst_plugin_get_license ##### -->
|
|
||||||
<para>
|
|
||||||
|
|
||||||
</para>
|
|
||||||
|
|
||||||
@plugin:
|
|
||||||
@Returns:
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### FUNCTION gst_plugin_get_package ##### -->
|
|
||||||
<para>
|
|
||||||
|
|
||||||
</para>
|
|
||||||
|
|
||||||
@plugin:
|
|
||||||
@Returns:
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### FUNCTION gst_plugin_get_origin ##### -->
|
|
||||||
<para>
|
|
||||||
|
|
||||||
</para>
|
|
||||||
|
|
||||||
@plugin:
|
|
||||||
@Returns:
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### FUNCTION gst_plugin_get_source ##### -->
|
|
||||||
<para>
|
|
||||||
|
|
||||||
</para>
|
|
||||||
|
|
||||||
@plugin:
|
|
||||||
@Returns:
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### FUNCTION gst_plugin_get_version ##### -->
|
|
||||||
<para>
|
|
||||||
|
|
||||||
</para>
|
|
||||||
|
|
||||||
@plugin:
|
|
||||||
@Returns:
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### FUNCTION gst_plugin_get_module ##### -->
|
|
||||||
<para>
|
|
||||||
|
|
||||||
</para>
|
|
||||||
|
|
||||||
@plugin:
|
|
||||||
@Returns:
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### FUNCTION gst_plugin_is_loaded ##### -->
|
|
||||||
<para>
|
|
||||||
|
|
||||||
</para>
|
|
||||||
|
|
||||||
@plugin:
|
|
||||||
@Returns:
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### FUNCTION gst_plugin_name_filter ##### -->
|
|
||||||
<para>
|
|
||||||
|
|
||||||
</para>
|
|
||||||
|
|
||||||
@plugin:
|
|
||||||
@name:
|
|
||||||
@Returns:
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### FUNCTION gst_plugin_check_file ##### -->
|
|
||||||
<para>
|
|
||||||
|
|
||||||
</para>
|
|
||||||
|
|
||||||
@filename:
|
|
||||||
@error:
|
|
||||||
@Returns:
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### FUNCTION gst_plugin_load_file ##### -->
|
|
||||||
<para>
|
|
||||||
|
|
||||||
</para>
|
|
||||||
|
|
||||||
@filename:
|
|
||||||
@error:
|
|
||||||
@Returns:
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### FUNCTION gst_plugin_load ##### -->
|
|
||||||
<para>
|
|
||||||
|
|
||||||
</para>
|
|
||||||
|
|
||||||
@plugin:
|
|
||||||
@Returns:
|
|
||||||
<!-- # Unused Parameters # -->
|
|
||||||
@name:
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### FUNCTION gst_plugin_load_by_name ##### -->
|
|
||||||
<para>
|
|
||||||
|
|
||||||
</para>
|
|
||||||
|
|
||||||
@name:
|
|
||||||
@Returns:
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### FUNCTION gst_plugin_list_free ##### -->
|
|
||||||
<para>
|
|
||||||
|
|
||||||
</para>
|
|
||||||
|
|
||||||
@list:
|
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,20 @@
|
||||||
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
* Boston, MA 02111-1307, USA.
|
* Boston, MA 02111-1307, USA.
|
||||||
*/
|
*/
|
||||||
|
/**
|
||||||
|
* SECTION:gstpipeline
|
||||||
|
* @short_description: Top-level bin with scheduling and pipeline management functionality.
|
||||||
|
* @see_also: #GstBin
|
||||||
|
*
|
||||||
|
* In almost all cases, you'll want to use a GstPipeline when creating a filter
|
||||||
|
* graph. The GstPipeline will manage all the scheduling issues, including
|
||||||
|
* threading, as well as provide simple interfaces to common functions, like
|
||||||
|
* 'Play'.
|
||||||
|
*
|
||||||
|
* gst_pipeline_new() is used to create a pipeline. when you are done with
|
||||||
|
* the pipeline, use gst_object_unref() to free its resources including all
|
||||||
|
* added #GstElement objects (if not otherwiese referenced).
|
||||||
|
*/
|
||||||
|
|
||||||
#include "gst_private.h"
|
#include "gst_private.h"
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,30 @@
|
||||||
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
* Boston, MA 02111-1307, USA.
|
* Boston, MA 02111-1307, USA.
|
||||||
*/
|
*/
|
||||||
|
/**
|
||||||
|
* SECTION:gstplugin
|
||||||
|
* @short_description: Container for features loaded from a shared object module
|
||||||
|
* @see_also: #GstPluginFeature, #GstElementFactory
|
||||||
|
*
|
||||||
|
* GStreamer is extensible, so #GstElement instances can be loaded at runtime.
|
||||||
|
* A plugin system can provide one or more of the basic <application>GStreamer</application>
|
||||||
|
* #GstPluginFeature subclasses.
|
||||||
|
*
|
||||||
|
* A plugin should export a symbol <symbol>plugin_desc</symbol> that is a struct of type #GstPluginDesc.
|
||||||
|
* the plugin loader will check the version of the core library the plugin was linked against
|
||||||
|
* and will create a new #GstPlugin. It will then call the #GstPluginInitFunc function
|
||||||
|
* that was provided in the plugin_desc.
|
||||||
|
*
|
||||||
|
* Once you have a handle to a #GstPlugin (e.g. from the #GstRegistryPool), you can
|
||||||
|
* add any object that subclasses #GstPluginFeature.
|
||||||
|
*
|
||||||
|
* Use gst_plugin_find_feature() and gst_plugin_get_feature_list() to find features in a plugin.
|
||||||
|
*
|
||||||
|
* Usually plugins are always automaticlly loaded so you don't need to call gst_plugin_load() explicitly
|
||||||
|
* to bring it into memory. There are options to statically link plugins to an app or even
|
||||||
|
* use GStreamer without a plugin repository in which case gst_plugin_load() can be needed
|
||||||
|
* to bring the plugin into memory.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
#ifdef HAVE_CONFIG_H
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
125
gst/gstplugin.h
125
gst/gstplugin.h
|
@ -37,9 +37,29 @@ typedef struct _GstPlugin GstPlugin;
|
||||||
typedef struct _GstPluginClass GstPluginClass;
|
typedef struct _GstPluginClass GstPluginClass;
|
||||||
typedef struct _GstPluginDesc GstPluginDesc;
|
typedef struct _GstPluginDesc GstPluginDesc;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gst_plugin_error_quark:
|
||||||
|
*
|
||||||
|
* Get the error quark.
|
||||||
|
*
|
||||||
|
* Returns: The error quark used in GError messages
|
||||||
|
*/
|
||||||
GQuark gst_plugin_error_quark (void);
|
GQuark gst_plugin_error_quark (void);
|
||||||
|
/**
|
||||||
|
* GST_PLUGIN_ERROR:
|
||||||
|
*
|
||||||
|
* The error message category quark
|
||||||
|
*/
|
||||||
#define GST_PLUGIN_ERROR gst_plugin_error_quark ()
|
#define GST_PLUGIN_ERROR gst_plugin_error_quark ()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GstPluginError:
|
||||||
|
* @GST_PLUGIN_ERROR_MODULE: The plugin could not be loaded
|
||||||
|
* @GST_PLUGIN_ERROR_DEPENDENCIES: The plugin has unresolved dependencies
|
||||||
|
* @GST_PLUGIN_ERROR_NAME_MISMATCH: The plugin has already be loaded from a different file
|
||||||
|
*
|
||||||
|
* The plugin loading errors
|
||||||
|
*/
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
GST_PLUGIN_ERROR_MODULE,
|
GST_PLUGIN_ERROR_MODULE,
|
||||||
|
@ -47,25 +67,53 @@ typedef enum
|
||||||
GST_PLUGIN_ERROR_NAME_MISMATCH
|
GST_PLUGIN_ERROR_NAME_MISMATCH
|
||||||
} GstPluginError;
|
} GstPluginError;
|
||||||
|
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
GST_PLUGIN_FLAG_CACHED = (1<<0),
|
GST_PLUGIN_FLAG_CACHED = (1<<0),
|
||||||
} GstPluginFlags;
|
} GstPluginFlags;
|
||||||
|
|
||||||
/* Initialiser function: returns TRUE if plugin initialised successfully */
|
/**
|
||||||
|
* GstPluginInitFunc:
|
||||||
|
* @plugin: The plugin object that can be used to register #GstPluginFeatures for this plugin.
|
||||||
|
*
|
||||||
|
* A plugin should provide a pointer to a function of this type in the
|
||||||
|
* plugin_desc struct.
|
||||||
|
* This function will be called by the loader at startup.
|
||||||
|
*
|
||||||
|
* Returns: %TRUE if plugin initialised successfully
|
||||||
|
*/
|
||||||
typedef gboolean (*GstPluginInitFunc) (GstPlugin *plugin);
|
typedef gboolean (*GstPluginInitFunc) (GstPlugin *plugin);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GstPluginDesc:
|
||||||
|
* @major_version: the major version number of core that plugin was compiled for
|
||||||
|
* @minor_version: the minor version number of core that plugin was compiled for
|
||||||
|
* @name: a unique name of the plugin
|
||||||
|
* @description: description of plugin
|
||||||
|
* @plugin_init: pointer to the init function of this plugin.
|
||||||
|
* @version: version of the plugin
|
||||||
|
* @license: effective license of plugin
|
||||||
|
* @source: source module plugin belongs to
|
||||||
|
* @package: shipped package plugin belongs to
|
||||||
|
* @origin: URL to provider of plugin
|
||||||
|
* @_gst_reserved: private, for later expansion
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* A plugins should export a variable of this type called plugin_desc. This plugin
|
||||||
|
* loaded will use this variable to initialize the plugin.
|
||||||
|
*/
|
||||||
struct _GstPluginDesc {
|
struct _GstPluginDesc {
|
||||||
gint major_version; /* major version of core that plugin was compiled for */
|
gint major_version;
|
||||||
gint minor_version; /* minor version of core that plugin was compiled for */
|
gint minor_version;
|
||||||
gchar *name; /* unique name of plugin */
|
gchar *name;
|
||||||
gchar *description; /* description of plugin */
|
gchar *description;
|
||||||
GstPluginInitFunc plugin_init; /* pointer to plugin_init function */
|
GstPluginInitFunc plugin_init;
|
||||||
gchar *version; /* version of the plugin */
|
gchar *version;
|
||||||
gchar *license; /* effective license of plugin */
|
gchar *license;
|
||||||
gchar *source; /* source module plugin belongs to */
|
gchar *source;
|
||||||
gchar *package; /* shipped package plugin belongs to */
|
gchar *package;
|
||||||
gchar *origin; /* URL to provider of plugin */
|
gchar *origin;
|
||||||
|
|
||||||
gpointer _gst_reserved[GST_PADDING];
|
gpointer _gst_reserved[GST_PADDING];
|
||||||
};
|
};
|
||||||
|
@ -78,7 +126,11 @@ struct _GstPluginDesc {
|
||||||
#define GST_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_PLUGIN, GstPlugin))
|
#define GST_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_PLUGIN, GstPlugin))
|
||||||
#define GST_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_PLUGIN, GstPluginClass))
|
#define GST_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_PLUGIN, GstPluginClass))
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GstPlugin:
|
||||||
|
*
|
||||||
|
* The plugin object
|
||||||
|
*/
|
||||||
struct _GstPlugin {
|
struct _GstPlugin {
|
||||||
GstObject object;
|
GstObject object;
|
||||||
|
|
||||||
|
@ -105,7 +157,22 @@ struct _GstPluginClass {
|
||||||
/*< private >*/
|
/*< private >*/
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GST_PLUGIN_DEFINE:
|
||||||
|
* @major: major version number of the gstreamer-core that plugin was compiled for
|
||||||
|
* @minor: minor version number of the gstreamer-core that plugin was compiled for
|
||||||
|
* @name: short, but unique name of the plugin
|
||||||
|
* @description: information about the purpose of the plugin
|
||||||
|
* @init: function pointer to the plugin_init method with the signature of <code>static gboolean plugin_init (GstPlugin * plugin)</code>.
|
||||||
|
* @version: full version string (e.g. VERSION from config.h)
|
||||||
|
* @license: under which licence the package has been released, e.g. GPL, LGPL.
|
||||||
|
* @package: the package-name (e.g. PACKAGE_NAME from config.h)
|
||||||
|
* @origin: a description from where the package comes from (e.g. the homepage URL)
|
||||||
|
*
|
||||||
|
* This macro needs to be used to define the entry point and meta data of a
|
||||||
|
* plugin. One would use this macro to export a plugin, so that it can be used
|
||||||
|
* by other applications
|
||||||
|
*/
|
||||||
#define GST_PLUGIN_DEFINE(major,minor,name,description,init,version,license,package,origin) \
|
#define GST_PLUGIN_DEFINE(major,minor,name,description,init,version,license,package,origin) \
|
||||||
GST_PLUGIN_EXPORT GstPluginDesc gst_plugin_desc = { \
|
GST_PLUGIN_EXPORT GstPluginDesc gst_plugin_desc = { \
|
||||||
major, \
|
major, \
|
||||||
|
@ -121,6 +188,22 @@ GST_PLUGIN_EXPORT GstPluginDesc gst_plugin_desc = { \
|
||||||
GST_PADDING_INIT \
|
GST_PADDING_INIT \
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GST_PLUGIN_DEFINE_STATIC:
|
||||||
|
* @major: major version number of the gstreamer-core that plugin was compiled for
|
||||||
|
* @minor: minor version number of the gstreamer-core that plugin was compiled for
|
||||||
|
* @name: short, but unique name of the plugin
|
||||||
|
* @description: information about the purpose of the plugin
|
||||||
|
* @init: function pointer to the plugin_init method with the signature of <code>static gboolean plugin_init (GstPlugin * plugin)</code>.
|
||||||
|
* @version: full version string (e.g. VERSION from config.h)
|
||||||
|
* @license: under which licence the package has been released, e.g. GPL, LGPL.
|
||||||
|
* @package: the package-name (e.g. PACKAGE_NAME from config.h)
|
||||||
|
* @origin: a description from where the package comes from (e.g. the homepage URL)
|
||||||
|
*
|
||||||
|
* This macro needs to be used to define the entry point and meta data of a
|
||||||
|
* local plugin. One would use this macro to define a local plugin that can only
|
||||||
|
* be used by the own application.
|
||||||
|
*/
|
||||||
#define GST_PLUGIN_DEFINE_STATIC(major,minor,name,description,init,version,license,package,origin) \
|
#define GST_PLUGIN_DEFINE_STATIC(major,minor,name,description,init,version,license,package,origin) \
|
||||||
static void GST_GNUC_CONSTRUCTOR \
|
static void GST_GNUC_CONSTRUCTOR \
|
||||||
_gst_plugin_static_init__ ##init (void) \
|
_gst_plugin_static_init__ ##init (void) \
|
||||||
|
@ -141,10 +224,26 @@ _gst_plugin_static_init__ ##init (void) \
|
||||||
_gst_plugin_register_static (&plugin_desc_); \
|
_gst_plugin_register_static (&plugin_desc_); \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GST_LICENSE_UNKNOWN:
|
||||||
|
*
|
||||||
|
* To be used in GST_PLUGIN_DEFINE or GST_PLUGIN_DEFINE_STATIC if usure about
|
||||||
|
* the licence.
|
||||||
|
*/
|
||||||
#define GST_LICENSE_UNKNOWN "unknown"
|
#define GST_LICENSE_UNKNOWN "unknown"
|
||||||
|
|
||||||
|
|
||||||
/* function for filters */
|
/* function for filters */
|
||||||
|
/**
|
||||||
|
* GstPluginFilter:
|
||||||
|
* @plugin: the plugin to check
|
||||||
|
* @user_data: the user_data that has been passed on e.g. gst_registry_plugin_filter()
|
||||||
|
*
|
||||||
|
* A function that can be used with e.g. gst_registry_plugin_filter()
|
||||||
|
* to get a list of plugins that match certain criteria.
|
||||||
|
*
|
||||||
|
* Returns: TRUE for a positive match, FALSE otherwise
|
||||||
|
*/
|
||||||
typedef gboolean (*GstPluginFilter) (GstPlugin *plugin,
|
typedef gboolean (*GstPluginFilter) (GstPlugin *plugin,
|
||||||
gpointer user_data);
|
gpointer user_data);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue