Sophie

Sophie

distrib > Mageia > 4 > x86_64 > by-pkgid > d620e9f76c810e9fbdaebc304909c8fc > files > 134

lib64gstreamer0.10-devel-0.10.36-7.mga4.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>What is GStreamer?</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79;charset=UTF-8"><LINK
REL="HOME"
TITLE="GStreamer Application Development Manual (0.10.36)"
HREF="index.html"><LINK
REL="UP"
TITLE="About GStreamer"
HREF="part-introduction.html"><LINK
REL="PREVIOUS"
TITLE="About GStreamer"
HREF="part-introduction.html"><LINK
REL="NEXT"
TITLE="Design principles"
HREF="chapter-motivation.html"></HEAD
><BODY
CLASS="chapter"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
><SPAN
CLASS="application"
>GStreamer</SPAN
> Application Development Manual (0.10.36)</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="part-introduction.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="chapter-motivation.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="chapter"
><H1
><A
NAME="chapter-gstreamer"
></A
>Chapter 1. What is <SPAN
CLASS="application"
>GStreamer</SPAN
>?</H1
><P
> 
      <SPAN
CLASS="application"
>GStreamer</SPAN
> 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.  
    </P
><P
>&#13;      <SPAN
CLASS="application"
>GStreamer</SPAN
>'s development framework makes it possible to write any
      type of streaming multimedia application. The <SPAN
CLASS="application"
>GStreamer</SPAN
> 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 <SPAN
CLASS="application"
>GStreamer</SPAN
> a good framework for
      designing even high-end audio applications which put high demands on
      latency. 
    </P
><P
>&#13;      One of the most obvious uses of <SPAN
CLASS="application"
>GStreamer</SPAN
> is using it to build
      a media player. <SPAN
CLASS="application"
>GStreamer</SPAN
> 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. <SPAN
CLASS="application"
>GStreamer</SPAN
>,
      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.
    </P
><P
>&#13;      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.
    </P
><P
>&#13;      The <SPAN
CLASS="application"
>GStreamer</SPAN
> 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.
    </P
><P
>&#13;      Specifically, <SPAN
CLASS="application"
>GStreamer</SPAN
> provides
      <P
></P
><UL
><LI
><P
>an API for multimedia applications</P
></LI
><LI
><P
>a plugin architecture</P
></LI
><LI
><P
>a pipeline architecture</P
></LI
><LI
><P
>a mechanism for media type handling/negotiation</P
></LI
><LI
><P
>over 150 plug-ins</P
></LI
><LI
><P
>a set of tools</P
></LI
></UL
>
    </P
><P
>&#13;      <SPAN
CLASS="application"
>GStreamer</SPAN
> plug-ins could be classified into
      <P
></P
><UL
><LI
><P
>protocols handling</P
></LI
><LI
><P
>sources: for audio and video (involves protocol plugins)</P
></LI
><LI
><P
>formats: parsers, formaters, muxers, demuxers, metadata, subtitles</P
></LI
><LI
><P
>codecs: coders and decoders</P
></LI
><LI
><P
>filters: converters, mixers, effects, ...</P
></LI
><LI
><P
>sinks: for audio and video (involves protocol plugins)</P
></LI
></UL
>
    </P
><DIV
CLASS="figure"
><A
NAME="section-gstreamer-img"
></A
><P
><B
>Figure 1-1. Gstreamer overview</B
></P
><DIV
CLASS="mediaobject"
><P
><IMG
SRC="images/gstreamer-overview.png"></P
></DIV
></DIV
><P
>&#13;      <SPAN
CLASS="application"
>GStreamer</SPAN
> is packaged into
      <P
></P
><UL
><LI
><P
>gstreamer: the core package</P
></LI
><LI
><P
>gst-plugins-base: an essential exemplary set of elements</P
></LI
><LI
><P
>gst-plugins-good: a set of good-quality plug-ins under LGPL</P
></LI
><LI
><P
>gst-plugins-ugly: a set of good-quality plug-ins that might pose distribution problems</P
></LI
><LI
><P
>gst-plugins-bad: a set of plug-ins that need more quality</P
></LI
><LI
><P
>gst-python: the python bindings</P
></LI
><LI
><P
>a few others packages</P
></LI
></UL
>
    </P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="part-introduction.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="chapter-motivation.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>About GStreamer</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="part-introduction.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Design principles</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>