From 4e1993625f02df97feb9a28e6545a0adc24d78c3 Mon Sep 17 00:00:00 2001 From: Richard Boulton Date: Sun, 7 Jan 2001 02:23:40 +0000 Subject: [PATCH] More updates: now have headings for the second section too, and some text for it... ;-) Original commit message from CVS: More updates: now have headings for the second section too, and some text for it... ;-) --- docs/fwg/Makefile.am | 5 +- docs/fwg/concepts.sgml | 82 ++++++++++++++++++++ docs/fwg/gst-filter-writers-guide.sgml | 41 +++------- docs/fwg/intro.sgml | 102 ++++++++++++------------- 4 files changed, 146 insertions(+), 84 deletions(-) create mode 100644 docs/fwg/concepts.sgml diff --git a/docs/fwg/Makefile.am b/docs/fwg/Makefile.am index eaedbefef7..bf3d21e695 100644 --- a/docs/fwg/Makefile.am +++ b/docs/fwg/Makefile.am @@ -1,7 +1,10 @@ manualname = gst-filter-writers-guide htmlname = index.html -sgml_files = gst-filter-writers-guide.sgml +sgml_files = gst-filter-writers-guide.sgml \ + titlepage.sgml \ + intro.sgml \ + concepts.sgml fig_files = eps_files = diff --git a/docs/fwg/concepts.sgml b/docs/fwg/concepts.sgml new file mode 100644 index 0000000000..b50e9e8b4f --- /dev/null +++ b/docs/fwg/concepts.sgml @@ -0,0 +1,82 @@ + + Plugins + + Extensions to GStreamer can be made using a plugin mechanism. This is + used extensively in GStreamer even if only the standard package is + being used: a few very basic functions reside in the core library, and + all others are in a standard set of plugins. + + + Plugins are only loaded when needed: a plugin registry is used to + store the details of the plugins so that it is not neccessary to load + all plugins to determine which are needed. + This registry needs to be updated when a new plugin is added to the + system: see the gstreamer-register utility and the + documentation in the GStreamer Application Development + Manual for more details. + + + User extensions to GStreamer can be installed in the main plugin + directory, and will immediately be available for use in applications. + gstreamer-register should be run to update + the repository: but the system will work correctly even if it hasn't + been - it will just load the correct plugin faster. + + + User specific plugin directories and registries will be available in future + versions of GStreamer. + + + + + Elements + + Elements are at the core of GStreamer. Without elements, GStreamer is just + a bunch of pipe fittings with nothing to connect. A large number of + elements (filters, sources and sinks) ship with GStreamer, but extra + elements can also be written. + + + An element may be constructed in several different ways, but all must + conform to the same basic rules. A simple filter may be built with the + FilterFactory, where the only code that need be written is the actual + filter code. A more complex filter, or a source or sink, will need to be + written out fully for complete access to the features and performance + possible with GStreamer. + + + The implementation of a new element will be contained in a plugin: + a single plugin may contain the implementation of several elements, or + just a single one. + + + + + Buffers + + + + + + Scheduling + + + + + + Chain vs Loop Elements + + + + + + Typing and Properties + + + + + + Metadata + + + diff --git a/docs/fwg/gst-filter-writers-guide.sgml b/docs/fwg/gst-filter-writers-guide.sgml index 5a2d2e39ef..c09af4e613 100644 --- a/docs/fwg/gst-filter-writers-guide.sgml +++ b/docs/fwg/gst-filter-writers-guide.sgml @@ -2,11 +2,8 @@ - - - - - + + ]> @@ -14,9 +11,13 @@ - Overview + Introduction + GStreamer is a framework for creating + streaming media applications. It is extremely powerful and versatile, + and this versatility stems in part from its modularity, and its ability + to incorporate new modules seamlessly into its framework. This document describes how to extend the capabilities of GStreamer by creating new plugins. @@ -40,34 +41,14 @@ Basic concepts - Filters are at the core of what GStreamer is. Without filters, - GStreamer is just a bunch of pipe fittings with nothing to - connect. A large number of filters (known as elements) ship with - GStreamer, but they are only capable of so much. If you wish to - extend it beyond these standard capabilities, you must write - filters. - - - A filter may be constructed in several different ways, but all must - conform to the same basic rules. A simple filter may be built - with the FilterFactory, where the only code that need be written - is the actual filter code. A more complex filter may need to be - written out fully for complete access to the features and - performance possible with GStreamer. This guide will explain all - the steps necessary for both methods. + This section introduces the basic concepts required to understand the + issues involved in extending GStreamer + - &ELEMENTPADS; - - &BUFFERS; - - &CHAINVSLOOP; - - &SCHEDULING; - - &TYPING; + &CONCEPTS; diff --git a/docs/fwg/intro.sgml b/docs/fwg/intro.sgml index 7a0d280dab..6c2883c406 100644 --- a/docs/fwg/intro.sgml +++ b/docs/fwg/intro.sgml @@ -1,56 +1,52 @@ - - Introduction + + Do I care? - GStreamer is a framework for creating - streaming media applications. It is extremely powerful and versatile, - and this versatility stems in part from its modularity, and its ability - to incorporate new modules seamlessly into its framework. + This guide explains how to write new modules for GStreamer. It is + relevant to: + + + + + Anyone who wants to add support for new input and output + devices, often called sources and sinks. For example, + adding the ability to write to a new video output system + could be done by writing an appropriate sink plugin. + + + + + Anyone who wants to add support for new ways of processing + data in GStreamer, often called + filters. For example, a new data format converter could be + created. + + + + + Anyone who wants to extend GStreamer in + any way: you need to have an understanding of how the plugin system + works before you can understand the constraints it places on the + rest of the code. And you might be surprised at how much can be + done with plugins. + + + + + This guide is not relevant to you if you only want to use the existing + functionality of GStreamer, or use an application which uses GStreamer. + You lot can go away. Shoo... (You might find the GStreamer + Application Development Manual helpful though.) + + + + + Preliminary reading + + The reader should be familiar with the basic workings of + GStreamer. For a gentle introduction to + GStreamer, you may wish to read the GStreamer Application + Development Manual. Since GStreamer + adheres to the GTK+ programming model, the reader is also assumed to + understand the basics of GTK+. - - - Do I care? - - This guide explains how to write new modules for GStreamer. It is - relevant to: - - - Anyone who wants to add support for new input and output - devices, often called sources and sinks. For example, - adding the ability to write to a new video output system - could be done by writing an appropriate sink plugin. - - - Anyone who wants to add support for new ways of processing - data in GStreamer, often called - filters. For example, a new data format converter could be - created. - - - Anyone who wants to extend GStreamer in - any way: you need to have an understanding of how the plugin system - works before you can understand the constraints it places on the - rest of the code. And you might be surprised at how much can be - done with plugins. - - - - - This guide is not relevant to you if you only want to use the existing - functionality of GStreamer, or use an application which uses GStreamer. - You lot can go away. Shoo... (You might find the GStreamer - Application Development Manual helpful though.) - - - - - Preliminary reading - - The reader should be familiar with the basic workings of - GStreamer. For a gentle introduction to - GStreamer, you may wish to read the GStreamer Application - Development Manual. Since - GStreamer adheres to the GTK+ programming - model, the reader is also assumed to understand the basics of GTK+. - -