Re: The GNOME Journal, February Edition



On Tue, 2006-02-21 at 20:06 -0800, Sri Ramkrishna wrote:
> I might have it.  Do we want to add these edits into the gstreamer
> article?

It's a little late now I suppose...  I'll defer to the decision of whoever has to make the edits.

It's too bad Christian's screen shots didn't make it either.  They would
have really spiced up the article.



On Tue, 2006-02-21 at 20:06 -0800, Sri Ramkrishna wrote:
> I might have it.  Do we want to add these edits into the gstreamer
> article?
> 
> sri 
> On Thu, 2006-02-16 at 08:27 -0500, Scott Bronson wrote:
> > I notice that the article that I edited didn't make the cut...  That's
> > OK, except that the one currently on the site has a number of grammar
> > and style issues...  It uses "0.8" five times in two sentences, bad
> > pluralization ("GStreamer being a library wether [sic.] many of the
> > improvements actually makes"), ...
> > 
> > In case it was lost, here's what I sent Sriram on the Jan 21st (with a
> > few minor fixups that I noticed just now).  NOTE: this doesn't have
> > the much better parting statement that Christian Schaller came up
> > with.  Sriram, do you still have that?
> > 
> > 
> > GStreamer 0.10 - What's in it for the users 
> >                                                  By Christian Schaller
> > 
> > The newest version of GStreamer, the Gnome multimedia framework, was
> > released just before Christmas.  Its release announcement described
> > the new features available to developers but neglected to talk about
> > its improved user experience.  This article will introduce the
> > improvements users will notice as they upgrade from 0.8 to 0.10 and
> > offer some background into what makes them possible.  Of course,
> > because GStreamer is a library, many applications will need to be
> > updated to benefit from these features.
> > 
> > 
> > 
> > 
> > Background
> > It became clear to the GStreamer development community that, after two
> > years of development, version 0.8 was suffering from a number of
> > fundamental design flaws  For instance, threading was added 0.8 almost
> > as an afterthought so it was predictable that it would suffer from a
> > number of threading issues.  Stressing the framework would easily lead
> > to crashes, especially on hyperthreaded or multi-CPU systems.  Also,
> > performance was bad when seeking or switching files, leading to a poor
> > user experience.  Fixing these flaws would require some rather large
> > changes.
> > 
> > Now that hyperthreaded and multithreaded systems are becoming popular,
> > it was clear that the project should create a strong threading model
> > and then write GStreamer to fit that model.  It was quite common for
> > an old GStreamer application to become unresponsive.  In fact, if you
> > ever tried moving the seeker bar in Totem back and forth at rapid
> > speed in GStreamer 0.8 you will probably see a segfault. The new
> > GStreamer should not crash and will even show the images blurring by
> > as you scan.  Even though 0.10's internals are very different from
> > 0.8's, care was taken to ensure that its API remains very compatible.
> > Sound Juicer was ported in one day.
> > 
> > 
> > 
> > 
> > Fixed Registry
> > Most of the support requests in the #gstreamer IRC channel came from
> > people whose GStreamer applications were refusing to use their
> > installed plugins. This was usually because the registry of usable
> > plugins, manually updated by the package installation system, was
> > updated wrong. While things improved during the lifetime of 0.8 as
> > distributions took more care to run gst-register, it still caused a
> > lot of grief. GStreamer 0.10 registers plugins automatically (when? at
> > app launch?  continually while the app is running?) so they
> > automatically made available and gst-register no longer exists.
> > 
> > 
> > 
> > 
> > Improved Packaging
> > Most distributions, for legal reasons, only ship a small subset of
> > GStreamer 0.8 plugins. Because GStreamer's plugins are built from the
> > same source module, each packager was forced to split it up to remove
> > components that were illegal or unwise to use in their particular area
> > of operation.  The amount of custom code caused a number of problems
> > for users.  To solve this, 0.10 has five plugin modules called base,
> > good, ugly, bad and ffmpeg. Base and good contain plugins that any
> > distribution can ship without fear of potential legal issues. Ugly
> > contains well-maintained plugins which may or may have legal issues of
> > some form, generally patent or license issues. Bad is an incubation
> > area where new plugins mature before moving to good or ugly.  If a
> > plugin never  matures, it may remain in bad for the rest of its life.
> > ffmpeg contains wrappers for all the codecs in the ffmpeg package.
> > This new scheme will allow downstream packagers to have more
> > consistent package naming and installation scripts, making it easier
> > for users to discover and install the plugins that they need.
> > 
> > The base package is not intended to contain all the plugins required
> > by a typical GStreamer setup. Instead, it contains one important
> > example of each type of GStreamer plugin. The code and documentation
> > for base plugins will remain current so developers will always be able
> > to create new plugins from a known working code base.
> > 
> > 
> > 
> > 
> > Better Playback System
> > While playback in 0.8 did become quite good, it would never meet the
> > high standards of the GStreamer team.  0.10 provides the
> > infrastructure required for a much better playback experience.
> > Switching tracks is very fast now, as close to instant as possible.
> > Seeking should be much more responsive and the return to playback
> > after seek is also very clean. A fun little feature of the new
> > architecture is that if you seek in an audio file (in Totem for
> > instance) and have a visualization active, you can watch the
> > visualization change along with the seeking.
> > 
> > 
> > 
> > 
> > Audio and Video Syncronisation
> > GStreamer 0.10 has functions that should ensure 100% A/V
> > syncronisation even for very long streams. For instance if you used
> > Thoggen to RIP DVD's with 0.8, you might have experienced that audio
> > and video slowly drifted apart as the movie played.  In 0.10, no
> > matter how long the stream is or how often you seek around in the
> > stream, the audio and video should stay locked together. GStreamer
> > also features a system allowing synchronized recording from multiple
> > sources, like a webcam and your soundcard microphone which will give a
> > better result for applications like Flumotion and video conferencing
> > systems like Farsight.
> > 
> > 
> > 
> > 
> > Improved Plugins
> > In 0.8, many plugins that should have worked together would somehow
> > fail. This was especially true for less-used plugins that lacked the
> > developer time required to shake out all the corner cases. For
> > instance, sending audio to to alsa, oss, esound, and artsd should be a
> > straightforward operation, yet each back-end had its own
> > idiosyncrasies that needed to be worked around. An operation that
> > would work perfectly for one person would fail horribly for another,
> > and it would be entirely unclear just where the difference was. To
> > solve this, 0.10 plugins now derive from a base class that handles the
> > common operations.  This allows all plugins to share a lot more code.
> > It's possible for work on the most important plugins to benefit those
> > with a smaller audience too.  Ultimately, this code sharing will
> > ensure that plugins will now behave much more consistently.
> > 
> > GStreamer 0.10 also makes it much easier to integrate applications
> > into the various desktop environments.  Old applications would link
> > against a tiny helper library to access the GStreamer gconf keys.  In
> > 0.10, GConf is supported by a set of plugins. Both a Gtk-only
> > application like bmpx or a Qt/KDE application like Amarok can use the
> > GConf plugins today.  This allows Amarok to integrate more tightly
> > with the Gnome desktop and, if the appropriate plugins are written,
> > could allow bmpx and other Gnome applications to integrate more
> > tightly with KDE.
> > 
> > Various plugins have also improved. GStreamer 0.10 comes with a fully
> > functional Real Media demuxer which, when used in conjunction with
> > ffmpeg or the Windows .dll loader plugin, can give support for Real
> > Media formats. An MMS plugin adds support for the mmsh protocol, so
> > Windows Media streaming audio (internet radio) should now work as
> > well.
> > 
> > 
> > 
> > 
> > Support for RTP
> > A lot of work has been put into Real Time Protocol (RTP) support for
> > GStreamer.  This makes it a much more suitable foundation for Voice
> > Over IP (VOIP) and videoconferencing applications.  There is even an
> > effort afoot to port Ekiga (formerly GNOME Meeting) to GStreamer this
> > year. The Farsight project is also working in this area, aiming to
> > support all instant messenger, VoIP and videoconferencing systems.
> > 
> > I hope this has been a useful introduction to the much improved user
> > experience of GStreamer 0.10.  And, of course, application developers
> > will continue to provide additional improvements and changes beyond
> > what exists in the GStreamer core. 
> > _______________________________________________
> > Gnome-journal-list mailing list
> > Gnome-journal-list gnome org
> > http://mail.gnome.org/mailman/listinfo/gnome-journal-list
> 




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]