Re: The GNOME Journal, February Edition



So we should probably improve on this next time so people's work
doesn't get dropped.

Any suggestions other than pestering? :)

sri


On Wed, Feb 22, 2006 at 09:47:21AM -0500, Scott Bronson wrote:
> 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]