Sophie

Sophie

distrib > Mandriva > 10.0-com > i586 > by-pkgid > f0a9f2b9c81d34eadc43f527947c0b70 > files > 114

libgstreamer0.7-devel-0.7.4-2mdk.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML
><HEAD
><TITLE
>Motivation</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="GStreamer Application Development Manual"
HREF="index.html"><LINK
REL="UP"
TITLE="Overview"
HREF="part-overview.html"><LINK
REL="PREVIOUS"
TITLE="Introduction"
HREF="chapter-intro.html"><LINK
REL="NEXT"
TITLE="Goals"
HREF="chapter-goals.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</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="chapter-intro.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="chapter-goals.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="chapter"
><H1
><A
NAME="chapter-motivation"
></A
>Chapter 2. Motivation</H1
><P
> 
    Linux has historically lagged behind other operating systems in the multimedia 
    arena. Microsoft's <SPAN
CLASS="trademark"
>Windows</SPAN
>&#8482; and Apple's <SPAN
CLASS="trademark"
>MacOS</SPAN
>&#8482; both have strong support 
    for multimedia devices, multimedia content creation,
    playback, and realtime processing. Linux, on the other hand, has a poorly integrated 
    collection of multimedia utilities and applications available, which can hardly compete 
    with the professional level of software available for MS Windows and MacOS.
  </P
><DIV
CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="section-motivation-problems"
>2.1. Current problems</A
></H1
><P
> 
      We describe the typical problems in today's media handling on Linux.
    </P
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="section-motivation-duplicate"
>2.1.1. Multitude of duplicate code</A
></H2
><P
> 
        The Linux user who wishes to hear a sound file must hunt through their collection of 
        sound file players in order to play the tens of sound file formats in wide use today. 
        Most of these players basically reimplement the same code over and over again.
      </P
><P
>&#13;        The Linux developer who wishes to embed a video clip in their application must use 
        crude hacks to run an external video player. There is no library available that a
        developer can use to create a custom media player.
      </P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="section-motivation-goal"
>2.1.2. 'One goal' media players/libraries</A
></H2
><P
>&#13;        Your typical MPEG player was designed to play MPEG video and audio. Most of
        these players have implemented a complete infrastructure focused on 
        achieving their only goal: playback. No provisions were made to add
        filters or special effects to the video or audio data.
      </P
><P
>&#13;        If you want to convert an MPEG2 video stream into an AVI file, your best
        option would be to take all of the MPEG2 decoding algorithms out
        of the player and duplicate them into your own AVI encoder. These 
        algorithms cannot easily be shared accross applications.
      </P
><P
>&#13;        Attempts have been made to create libraries for handling various media types.
	Because they focus on a very specific media type (avifile, libmpeg2, ...),
	significant work is needed to integrate them due to a lack of a common API.
	GStreamer allows you to wrap these libraries with a common API, which 
	significantly simplifies integration and reuse.
      </P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="section-motivation-plugin"
>2.1.3. Non unified plugin mechanisms</A
></H2
><P
> 
        Your typical media player might have a plugin for different media
        types. Two media players will typically implement their own plugin
        mechanism so that the codecs cannot be easily exchanged. The plugin system
	of the typical media player is also very tailored to the specific needs
	of the application.
      </P
><P
> 
        The lack of a unified plugin mechanism also seriously hinders the 
	creation of binary only codecs. No company is willing to port their
	code to all the different plugin mechanisms.
      </P
><P
> 
        While GStreamer also uses it own plugin system it offers a very rich
	framework for the plugin developper and ensures the plugin can be used
	in a wide range of applications, transparently interacting with other
	plugins. The framework that GStreamer provides for the plugins is
	flexible enough to host even the most demanding plugins.
      </P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="section-motivation-network"
>2.1.4. Provision for network transparency</A
></H2
><P
> 
        No infrastructure is present to allow network transparent media
        handling. A distributed MPEG encoder will typically duplicate the
        same encoder algorithms found in a non-distributed encoder.
      </P
><P
> 
        No provisions have been made for emerging technologies such as
        the <A
HREF="http://developer.gnome.org/arch/component/bonobo.html"
TARGET="_top"
>GNOME object embedding using Bonobo</A
>.
      </P
><P
> 
        The GStreamer core does not use network transparent technologies at the
	lowest level as it only adds overhead for the local case. 
	That said, it shouldn't be hard to create a wrapper around the
	core components. 
      </P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="section-motivation-catchup"
>2.1.5. Catch up with the <SPAN
CLASS="trademark"
>Windows</SPAN
>&#8482; world</A
></H2
><P
> 
        We need solid media handling if we want to see Linux succeed on
	the desktop.
      </P
><P
> 
        We must clear the road for commercially backed codecs and multimedia 
	applications so that Linux can become an option for doing multimedia.
      </P
></DIV
></DIV
></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="chapter-intro.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-goals.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Introduction</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="part-overview.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Goals</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>