</sect2>
</sect1>
- <sect1 id="section-data-manager">
- <title>Embedding static elements in your application</title>
- <para>
- The <ulink type="http"
- url="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/pwg/html/index.html">Plugin
- Writer's Guide</ulink> describes in great detail how to write elements
- for the &GStreamer; framework. In this section, we will solely discuss
- how to embed such elements statically in your application. This can be
- useful for application-specific elements that have no use elsewhere in
- &GStreamer;.
- </para>
- <para>
- Dynamically loaded plugins contain a structure that's defined using
- <function>GST_PLUGIN_DEFINE ()</function>. This structure is loaded
- when the plugin is loaded by the &GStreamer; core. The structure
- contains an initialization function (usually called
- <function>plugin_init</function>) that will be called right after that.
- It's purpose is to register the elements provided by the plugin with
- the &GStreamer; framework.
- If you want to embed elements directly in
- your application, the only thing you need to do is to replace
- <function>GST_PLUGIN_DEFINE ()</function> with a call to
- <function>gst_plugin_register_static ()</function>. As soon as you
- call <function>gst_plugin_register_static ()</function>, the elements
- will from then on be available like any other element, without them
- having to be dynamically loadable libraries. In the example below, you
- would be able to call <function>gst_element_factory_make
- ("my-element-name", "some-name")</function> to create an instance of the
- element.
- </para>
-
- <programlisting>
-<![CDATA[
-/*
- * Here, you would write the actual plugin code.
- */
-
-[..]
-
-static gboolean
-register_elements (GstPlugin *plugin)
-{
- return gst_element_register (plugin, "my-element-name",
- GST_RANK_NONE, MY_PLUGIN_TYPE);
-}
-
-static
-my_code_init (void)
-{
- ...
-
- gst_plugin_register_static (
- GST_VERSION_MAJOR,
- GST_VERSION_MINOR,
- "my-private-plugins",
- "Private elements of my application",
- register_elements,
- VERSION,
- "LGPL",
- "my-application-source",
- "my-application",
- "http://www.my-application.net/")
-
- ...
-}
-]]>
- </programlisting>
- </sect1>
</chapter>
--- /dev/null
+<chapter id="chapter-compiling">
+ <title>Compiling</title>
+ <para>
+ This section talks about the different things you can do when building
+ and shipping your applications and plugins.
+ </para>
+
+ <sect1 id="section-compiling-embedding">
+ <title>Embedding static elements in your application</title>
+ <para>
+ The <ulink type="http"
+ url="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/pwg/html/index.html">Plugin
+ Writer's Guide</ulink> describes in great detail how to write elements
+ for the &GStreamer; framework. In this section, we will solely discuss
+ how to embed such elements statically in your application. This can be
+ useful for application-specific elements that have no use elsewhere in
+ &GStreamer;.
+ </para>
+ <para>
+ Dynamically loaded plugins contain a structure that's defined using
+ <function>GST_PLUGIN_DEFINE ()</function>. This structure is loaded
+ when the plugin is loaded by the &GStreamer; core. The structure
+ contains an initialization function (usually called
+ <function>plugin_init</function>) that will be called right after that.
+ It's purpose is to register the elements provided by the plugin with
+ the &GStreamer; framework.
+ If you want to embed elements directly in
+ your application, the only thing you need to do is to replace
+ <function>GST_PLUGIN_DEFINE ()</function> with a call to
+ <function>gst_plugin_register_static ()</function>. As soon as you
+ call <function>gst_plugin_register_static ()</function>, the elements
+ will from then on be available like any other element, without them
+ having to be dynamically loadable libraries. In the example below, you
+ would be able to call <function>gst_element_factory_make
+ ("my-element-name", "some-name")</function> to create an instance of the
+ element.
+ </para>
+
+ <programlisting>
+<![CDATA[
+/*
+ * Here, you would write the actual plugin code.
+ */
+
+[..]
+
+static gboolean
+register_elements (GstPlugin *plugin)
+{
+ return gst_element_register (plugin, "my-element-name",
+ GST_RANK_NONE, MY_PLUGIN_TYPE);
+}
+
+static
+my_code_init (void)
+{
+ ...
+
+ gst_plugin_register_static (
+ GST_VERSION_MAJOR,
+ GST_VERSION_MINOR,
+ "my-private-plugins",
+ "Private elements of my application",
+ register_elements,
+ VERSION,
+ "LGPL",
+ "my-application-source",
+ "my-application",
+ "http://www.my-application.net/")
+
+ ...
+}
+]]>
+ </programlisting>
+ </sect1>
+</chapter>