[XviD-devel] Re: UCI : a open standard, x-platform VfW replacement ?

xvid-devel@xvid.org xvid-devel@xvid.org
Sun, 22 Sep 2002 05:21:27 -0700


Greetings all..

> > http://uci.sourceforge.net

Heh.. FYI, I'm the "Alex" behind the UCI thing..  I was planning on starting to
announce this project and solicit participation from everyone else out there
(including here) sometime in the next few days, after I'd updated some more of
the web site, but I see Christian's beating me to it..

I wanted to point out a couple of things for people who might be looking at the
above web site at this stage, to avoid confusion.

First, UCI is going to be undergoing a name change.. My initial goal with the
project was really just to make a "VfW" for linux/unix, to try to fix the mess
that's currently going on on those platforms with every different application
having to write its own distinct interface code for each codec it wants to
support, and codec developers having to go to each separate application and
persuade them that their brand-new-nifty-keen codec is worth building support
for into all the multimedia apps out there, etc, etc.

After talking with Christian and some of the other MCF folks, they've been
persuading me that there is perhaps some utility to making this a more
cross-platform API, so at least as a first step towards that I'm going to be
renaming the "Unix Codec Interface" to something probably more like "Unified
Codec Interface" or "Universal Codec Interface" (suggestions welcome, BTW), so
at least the name doesn't lock it into one particular (type of) platform in
people's minds..

As for the actual cross-platform-ness of everything, the details of that are
still seriously up in the air.  One of the questions, however, is:  If you guys
could have (pretty much) anything you want in a uniform codec API (since UCI is
currently being designed from scratch and I'm very open to input from current
codec developers like XviD), would it be worth making that API available on
platforms which already have a more-or-less-workable system (like VfW) already
in place, or is VfW "good enough" that the benefits that UCI could provide
aren't worth the extra coding involved for codec developers to support it?

In short, is there any point to offering a native UCI codec-interface under
Windows, or would you guys only be interested in making VfW-only codecs anyway
for that platform?

Anyway, regarding a couple of the other comments:

> currently there's way too many bloated media frameworks. e.g. video
> for windows, directshow (aka activemovie), direct media objects,
> gstreamer, and quicktime.

With reference to the "bloated" issue, I'm deliberately trying to make UCI as
thin as possible (within reason), partly because of that (Gstreamer, for
example, is a really interesting and potentially powerful framework, but
seriously overloaded for a lot of applications).

> with the exception of VfW, very few 3rd-
> party applications use these frameworks.instead 3rd party applications
> (such as winamp, xmmms, mplayer/encoder, transcoder, realone)
> generally provide their own plugin apis.

It doesn't apply for winamp as much, but regarding xmms, mplayer, and transcode
(if you mean the linux app, not sure), a good part of the reason each of these
projects have developed their own plugin APIs is because there simply is
nothing else to use currently (the platforms they're written for have no
standard codec plugin API, as I'm sure most here are already aware).  That's a
good part of what UCI is trying to fix.

> you should try and get support (ideas, comments, etc.) from the
> people most likely to use the api. eg. winamp, xmms, transcode,
> virtualdub, mplayer, xvid, ffmpeg, lame, faad, flac, etc.

That is very much the intent, actually.  I had wanted to spend a couple more
days getting some of the ideas I'd been discussing with folks written down and
posted (and some other stuff updated) for people to look at before I started
actually publicizing this whole effort, but the plan has been all along to
solicit as much feedback as possible from everyone out there who might be
interested in codec interfaces (both codec developers and application
developers).  I am very open to suggestions, ideas, submissions, and general
help with doing all of this right to support everyone's needs, both now and
down the line.

(FYI for anyone thinking of going off and reading up on UCI: right now, most of
what's posted as "specs" is really just a compilation of basic principles, some
things I discussed with some people once, and looking at what a couple of other
systems seem to do.  I'm fully aware that some of it may be thoroughly wrong or
backward, and am not averse to changing everything around if need be, so feel
free to tell me everything I've done wrong so far, or suggest new stuff.)

Anyone interested in all of this is welcome to join the UCI-Devel maillist
(there's a link from http://uci.sourceforge.net/) and start discussing things.
I will hopefully be putting out more formal invitations to participation to a
bunch of forums sometime in the next few days..

Anyway, sorry with such a long-winded post regarding all of this, but I wanted
to make sure people didn't get the wrong impression about any of this stuff..

-alex