mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-19 06:46:38 +00:00
4f92facc79
Original commit message from CVS: patch by: Luc Pionchon <luc.pionchon@nokia.com> * docs/manual/advanced-autoplugging.xml: * docs/manual/advanced-threads.xml: * docs/manual/basics-bins.xml: * docs/manual/basics-elements.xml: * docs/manual/basics-helloworld.xml: * docs/manual/basics-pads.xml: Add scale factor for pdf output. * docs/manual/intro-basics.xml: Switched sections "pads" and "bins" and added a pipeline diagram. * docs/manual/intro-gstreamer.xml: Added more info on gstreamer. * docs/manual/intro-motivation.xml: Commented out the whole section "current problem", which sounds historical and somehow osolete; it could be turned in a positive way and reused to improve the design principles. * docs/manual/intro-preface.xml: - Update URLs to library.gnome.org. - Do not mention GTK+ in preliminary reading (irrelevant). - Mention Plugin Writer's Manual and further reading only in the previous section. - Added a list of most relevant GObject/glib topics. * docs/manual/Makefile.am: * docs/manual/bin-element-ghost.fig: * docs/manual/bin-element-ghost.png: * docs/manual/bin-element-noghost.fig: * docs/manual/bin-element-noghost.png: * docs/manual/bin-element.fig: * docs/manual/bin-element.png: * docs/manual/filter-element-multi.fig: * docs/manual/filter-element-multi.png: * docs/manual/filter-element.fig: * docs/manual/filter-element.png: * docs/manual/gstreamer-overview.png: * docs/manual/hello-world.fig: * docs/manual/hello-world.png: * docs/manual/linked-elements.fig: * docs/manual/linked-elements.png: * docs/manual/mime-world.fig: * docs/manual/mime-world.png: * docs/manual/queue.fig: * docs/manual/queue.png: * docs/manual/simple-player.png: * docs/manual/sink-element.fig: * docs/manual/sink-element.png: * docs/manual/src-element.fig: * docs/manual/src-element.png: * docs/manual/diagrams-general.svg: * docs/manual/diagrams-pipelines.svg: Removed .fig, added .png counterpart. Fixes: #539137
98 lines
4.3 KiB
XML
98 lines
4.3 KiB
XML
<chapter id="chapter-gstreamer">
|
|
<title>What is &GStreamer;?</title>
|
|
|
|
<!-- ############ sect1 ############# -->
|
|
|
|
<!-- <sect1 id="section-intro-what"> --><!-- synchronize with PWG -->
|
|
<para>
|
|
&GStreamer; is a framework for creating streaming media applications.
|
|
The fundamental design comes from the video pipeline at Oregon Graduate
|
|
Institute, as well as some ideas from DirectShow.
|
|
</para>
|
|
|
|
<para>
|
|
&GStreamer;'s development framework makes it possible to write any
|
|
type of streaming multimedia application. The &GStreamer; framework
|
|
is designed to make it easy to write applications that handle audio
|
|
or video or both. It isn't restricted to audio and video, and can
|
|
process any kind of data flow.
|
|
The pipeline design is made to have little overhead above what the
|
|
applied filters induce. This makes &GStreamer; a good framework for
|
|
designing even high-end audio applications which put high demands on
|
|
latency.
|
|
</para>
|
|
|
|
<para>
|
|
One of the the most obvious uses of &GStreamer; is using it to build
|
|
a media player. &GStreamer; already includes components for building a
|
|
media player that can support a very wide variety of formats, including
|
|
MP3, Ogg/Vorbis, MPEG-1/2, AVI, Quicktime, mod, and more. &GStreamer;,
|
|
however, is much more than just another media player. Its main advantages
|
|
are that the pluggable components can be mixed and matched into arbitrary
|
|
pipelines so that it's possible to write a full-fledged video or audio
|
|
editing application.
|
|
</para>
|
|
|
|
<para>
|
|
The framework is based on plugins that will provide the various codec
|
|
and other functionality. The plugins can be linked and arranged in
|
|
a pipeline. This pipeline defines the flow of the data. Pipelines can
|
|
also be edited with a GUI editor and saved as XML so that pipeline
|
|
libraries can be made with a minimum of effort.
|
|
</para>
|
|
|
|
<para>
|
|
The &GStreamer; core function is to provide a framework for plugins,
|
|
data flow and media type handling/negotiation. It also provides an
|
|
API to write applications using the various plugins.
|
|
</para>
|
|
|
|
|
|
<para>
|
|
Specifically, &GStreamer; provides
|
|
<itemizedlist>
|
|
<listitem><para>an API for multimedia applications</para></listitem>
|
|
<listitem><para>a plugin architecture</para></listitem>
|
|
<listitem><para>a pipeline architecture</para></listitem>
|
|
<listitem><para>a mechanism for media type handling/negociation</para></listitem>
|
|
<listitem><para>over 150 plug-ins</para></listitem>
|
|
<listitem><para>a set of tools</para></listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
|
|
<para>
|
|
&GStreamer; plug-ins could be classified into
|
|
<itemizedlist>
|
|
<listitem><para>protocols handling</para></listitem>
|
|
<listitem><para>sources: for audio and video (involves protocol plugins)</para></listitem>
|
|
<listitem><para>formats: parsers, formaters, muxers, demuxers, metadata, subtitles</para></listitem>
|
|
<listitem><para>codecs: coders and decoders</para></listitem>
|
|
<listitem><para>filters: converters, mixers, effects, ...</para></listitem>
|
|
<listitem><para>sinks: for audio and video (involves protocol plugins)</para></listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
|
|
<figure float="1" id="section-gstreamer-img">
|
|
<title>Gstreamer overview</title>
|
|
<mediaobject>
|
|
<imageobject>
|
|
<imagedata scale="75" fileref="images/gstreamer-overview.ℑ" format="&IMAGE;" />
|
|
</imageobject>
|
|
</mediaobject>
|
|
</figure>
|
|
|
|
<para>
|
|
&GStreamer; is packaged into
|
|
<itemizedlist>
|
|
<listitem><para>gstreamer: the core package</para></listitem>
|
|
<listitem><para>gst-plugins-base: an essential exemplary set of elements</para></listitem>
|
|
<listitem><para>gst-plugins-good: a set of good-quality plug-ins under LGPL</para></listitem>
|
|
<listitem><para>gst-plugins-ugly: a set of good-quality plug-ins that might pose distribution problems</para></listitem>
|
|
<listitem><para>gst-plugins-bad: a set of plug-ins that need more quality</para></listitem>
|
|
<listitem><para>gst-python: the python bindings</para></listitem>
|
|
<listitem><para>a few others packages</para></listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
|
|
|
|
</chapter>
|