GNOME and GStreamer



Hi people,

I wanted to send a mail to discuss something that probably is not very
clear from the outside.  Kjartan prompted me to do so because he didn't
know what the status was and we haven't really presented any "official"
opinion yet.

As you all know GStreamer long ago switched to a system where different
stable branches are parallel-installable.  We did this because we knew
we were going to change API around a bit before reaching something we
want to call 1.0, and because it would help in the future when bigger
projects start relying on GStreamer.

By this time, pretty much everything that GNOME uses GStreamer for has
ports and patches for 0.10 - some of them in bugzilla, some already
commited.  Tim has done pretty much all of this work.

The advantage of GStreamer 0.10 is its stability, improved framework, correct
(finally) threading behaviour (which requires a recent enough Glib, because
we supplied some patches for it),
and has all of the developer impetus atm.  The disadvantage is that some
plugins aren't ported yet (some of which I consider outside the scope of
interest for GNOME as a project, like asfdemux - though tim tells me he
has a port of that ready to commit after he's done with GNOME patching),
but they can still be ported to 0.10 releases easily.

It is our (Tim/GStreamer/Fluendo) goal to have GNOME 2.14 use GStreamer
0.10, because the core reworking of GStreamer has shown itself to be
very good and solves most of the issues people had that were rooted in
core.  Also, 0.8 is not actively supported by most GStreamer developers
atm, because 0.10 is considered stable.

For a quick overview of modules affected:
- gnome-media: http://bugzilla.gnome.org/show_bug.cgi?id=324508
  the current patch uses only 0.10, and no 0.8.  Putting in 0.8
compatibility would make the code very ugly, Tim says, and I see no real
value in it.  The gnome-2-12 branch of gnome-media is almost exactly the
same as HEAD, modulo some string-changing patches I applied to HEAD, so
in the worst case GNOME could still choose to ship with a 2.12 version
of gnome-media.  gnome-cd is not yet in the patch (will be this week),
but other than that it is complete.  Also, all of the plugins used by
gnome-media are ported to 0.10
I don't think it would make sense in this case, though - 0.10 is, as far as
gnome-media uses it, feature-and-plugin-complete, so supporting an older
backend is just a maintenance burden that seems unnecessary.

- totem: was the first to get ported, is working very well with 0.10 (I
just had the pleasure of trying it on a 78-hour long file on someone's
Gentoo install, the scrubbing is a definite improvement :))
Features that do not work yet are:
  - DVD playback: specific GStreamer elements are not ported.  Since DVD
decoding is patented, and as we discussed for 2.12, this isn't a feature
GNOME can advertise anyway.  For the previous release, we discussed this
topic and it was agreed to have the DVD support added on the agreement
that this wouldn't count as a feature regression
It doesn't mean it won't get done - Tim's personal project is thoggen, a dvd-to-ogg
converter, so he has a vested interest in getting DVD support going.
But the DVD backend in 0.8 was experimental, and the combo shipped by for
example livna for FC4 seems to not be able to play DVD's for most users.
In any case, it's not going to get done before the feature freeze.
  - text subtitles: do not work yet either.  Since the only way to have
subtitles from text in totem is to either specify it on the command line
with a non-obvious syntax, or have your subtitle files named according
to a special heuristic, I don't know if this was a widely used feature
yet.  It will get addressed in the future, but probably not this week :)

- sound-juicer: not done yet, should be straightforward.  I guess Tim
and Ross are passing the buck between them atm :)

- gnome-control-center: patch in #326257

- gnome-applets: #326285

So, that's the status.  Basically, things have come together now and we
all need to decide how to proceed from there.

Technically it is possible to ship both GStreamer 0.8 and 0.10 with
GNOME 2.14.  There are a number of valid reasons not to do so, though -
including:
- gstreamer-properties would only handle configuration for whatever
backend it was linked to
- two sets of gconf keys control the different backends, so it might be
confusing to end users
- pretty much all developers of GStreamer are working on 0.10 now that it
is released.  The difference between GStreamer 0.10 and 0.8 is a lot more
fundamental than, say, the last two GLib stable series.

The recommendation from the GStreamer team is to go ahead and ship with
0.10 as the default - or in some cases, only - choice, and not ship
GStreamer 0.8 as part of the tarballs.

Let the flames begin :)

Thanks,
Thomas

Dave/Dina : future TV today ! - http://www.davedina.org/
<-*- thomas (dot) apestaart (dot) org -*->
de laatste tijd
heb ik gedacht
het is niet meer
zoals het was
<-*- thomas (at) apestaart (dot) org -*->
URGent, best radio on the net - 24/7 ! - http://urgent.fm/






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