future of ABIs (was Re: [gst-devel] amarok)

Benjamin Otte in7y118 at public.uni-hamburg.de
Tue Mar 16 07:50:13 CET 2004


Disclaimer: Everything said below is my personal viewpoint and does not in any 
way represent the opinion of GStreamer as a project.

I don't think GStreamer is ready for primetime. It's very far, but it's not 
done. This if nicely shown by the release number, which is still smaller than 
one and indicating a beta release. I would even say it's still quite far away 
from done. We have clocking issues to figure out, our thread safety is flaky 
at best, autoplugging is breaking left and right and schedulers don't even 
know themselves what they are doing. And that's only the core issues.

If anybody asked me when GStreamer will be ready, I'd answer it'll probably 
take a considerable amount of time given the current workforce. Keep in mind 
that a media framework requires a lot of work - I like to compare it to widget 
sets, and we're certainly understaffed for something like that.
I guess people will focus on bringing stability in media playback to GStreamer 
in the next months and probably won't work on the issues outlined above. (I've 
recently mailed the list about the stuff I intend to hack on.) So I guess 
we'll focus on bringing media players like Totem and Rhythmbox in a workable 
state for the Gnome 2.8 release. After that we'll probably start hacking on 
the core again and do the missing stuff. If I look back at the transition from 
0.6 to 0.8 - which everyone agrees was too short - it took a bit longer than a 
year. But I wouldn't bet that the resulting API is already release quality. 
That depends on how much people get done in that timeframe. Anyway, even if it 
is ready and everything works well, I'd bet it's more than two years and not 
less.

I'm not very enthusiastic about maintaining stuff I don't work with in my free 
time, especially not if I consider them beta quality or worse. API/ABI 
stability issues certainly are part of stuff I don't work with. And if I look 
back, there weren't many people working on 0.6 after we started 0.7. So I 
wouldn't bet anyone being committed to a API/ABI stable release the moment 
it's no longer cvs HEAD.
And underlining David's comment: I don't think media framework APIs are 
researched well enough to request API stability for 3 years either.

Now there's another thing to think about:
What are KDE/GNOME really looking for? A media framework or a media playback 
engine? The way I see it all multimedia features required right now that are 
considered to be part of a DE's release are playback of audio/video and event 
sounds. In fact there's not even a "serious" application I know of that uses 
much of GStreamer's feature set - apart from some small apps like gst-editor, 
marlin or Andy's Guile hacking. Without a video editor, composing program, a 
streaming server or anything that really pushes GStreamer more than just "play 
this file", how will we ever find out if the APIs we invented are good enough 
for the stuff we imagined they do?
I think all the DEs want is a playback engine. Inventing a playback engine 
(like GstPlay or KDE's player) that can play a file sounds good enough for the 
next release. Maybe make it pluggable, so you're not even forced to stick to 
one framework. Wait for the apps that really push the frameworks before you 
decide on one.

Benjamin



Quoting Scott Wheeler <wheeler at kde.org>:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> On Tuesday 16 March 2004 0:09, David Schleef wrote:
> 
> > What is a major release cycle?  3.2->3.3, or 3.0->4.0?  If it's
> > the latter, I don't think there's much possibility in GStreamer
> > actively maintaining the stable branch that would be used in 4.0
> > until 5.0 comes out.
> 
> It's the latter.
> 
> > That could be potentially be several years. 
> > Given the current state of multimedia frameworks, I don't think
> > it's wise to even _want_ a stable ABI for that long.
> 
> Yes, it would be years.  It looks like the time from KDE 3.0 -> KDE 4.0 that
> 
> will be roughly of 3 years.  Both KDE and GNOME regularly keep ABI stability
> 
> for that time frame.
> 
> aRts -- for all of its faults has kept a stable ABI since KDE 2.0.  (And 
> during some of that time development actually was active.)
> 
> > That being said, I hope GStreamer in 1 year is in the state where
> > we can be comfortable with a long-term ABI.
> 
> Well, we're probably 15-18 months from a KDE 4.0 release.
> 
> I guess there are a few notes here -- first, this *is* very important and
> does 
> take a long term commitment from the folks here.  This doesn't mean that the
> 
> current version has to stay with the same API for three years, but it does 
> mean that KDE will stick with a single API throughout a major release time 
> frame and there is the expectation that said release will be maintained.  
> "Fixed in HEAD, but it doesn't matter for you for 2 years..." won't work.
> 
> I've seen debates on this for Gst before.  But I'm really surprised that
> GNOME 
> doesn't have similar requirements for the 2.x series (though I would guess 
> that GNOME 3 is significantly closer than KDE 5).  My personal experience 
> with APIs is that sticking to an API can be annoying, but that it forces a 
> certain shift in mindset that brings about code maturity (when all of the 
> sudden you can't just redesign because you did the last iteration on a whim 
> and got it wrong).  Sometimes living with mistakes (and realizing that you'll
> 
> have to) can really help.
> 
> This decision of course isn't up to me, but it will be an important factor in
> 
> KDE or other large projects' adoption of GStreamer.
> 
> - -Scott
> 
> - -- 
> The three chief virtues of a programmer are: laziness, impatience and
> hubris.
> - --Larry Wall
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.2.1 (GNU/Linux)
> 
> iD8DBQFAVjxMQu0ByfY5QTkRAsZLAJ452z31M/JIlmdkmoKNXQ3Fzmzx0QCgr8PQ
> 28+oZKTxFr0/NncCVgFSsRA=
> =tKVl
> -----END PGP SIGNATURE-----
> 
> 
> -------------------------------------------------------
> This SF.Net email is sponsored by: IBM Linux Tutorials
> Free Linux tutorial presented by Daniel Robbins, President and CEO of
> GenToo technologies. Learn everything from fundamentals to system
> administration.http://ads.osdn.com/?ad_id70&alloc_id638&opÿick
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
> 
> 






More information about the gstreamer-devel mailing list