[vorbis-dev] Ogg MIDI proposal

Jack Moffitt jack at xiph.org
Sun Aug 26 21:09:19 PDT 2001



> But at the library level you solve those problems ONCE. Look at
> vorbisfile. Imagine that expanded to handle interleaved data. Of
> multiple codecs. Imagine expecting application writers to intergrate
> that big muck into their apps and keep up with changes. That's how it
> would have to be if it's not in a central library. Interleaved playing
> is a mess, especially at the level of generality we're hoping to
> achieve. Don't shove off the responsibility of doing it right to the
> apps. Ideally even encoding complex streams should be little more code
> than play_file in ogg123 right now, and it can be done.

IMO, this is not in the scope of the Ogg project per se.  Although it's
certainly in the scope of Xiphophorus.

There are at least two semi-worthwhile efforts to do what you want, and
I suspect whatever we end up doing on this front will be in cooperation
with these.

1) dmSDK a.k.a. OpenML (just ratified i believe)
2) gstreamer

gstreamer is too dependent on glib and other things for my tastes, and
is quite tied to the GNOME project, which IMO it shouldn't be.  They
also have made little Win32 progress last I checked.

dmSDK has the platforms covered (mostly) but is lacking implementation
of codecs like Vorbis, etc.

> Our obvious precursors are Quicktime and AVI, and to a lesser extent
> IFF and all the structured media formats following from it. They
> mostly have this concept down already, so I thought it would be
> obvious. Maybe it isn't, so I'll elaborate.

What are you talking about?  Quicktime the file format sayingi nothing
of an interface, and neither do IFF or it's decendants or AVI.

All these systems have a separate interface, albeit a _somewhat_ unified
one. Quicktime has it's own architecture/plugins/whatnot, AVI has it's
own in windows (via the ACM system) and WAV data is handled separately
to some degree from ACM.

e Take for example Windows Media Player. From the user's point of view,
> it can play just about anything. If it can't play whatever is thrown
> at it, but the data is in a structure it can understand
> (i.e. AVI/WAVE, but in our case it would be Ogg), it submits the
> infamous FOURCC code to some Microsoft server, and it gets a codec
> back, then happily starts playing the file. I envision that an Ogg
> format player should easily be able to at least do this. 

Note that the hard part here isn't the player, it's the plugin
infrastructure.  On windows, there are several common ones:

DirectShow (what WMP uses, and many new win32 native apps)
ACM (old precursor to directshow)
Winamp plugins
DirectX plugins (i don't believe these are the same as the DirectShow
ones, since they can also have GUIs in them, etc)
Cubase plugins

The mac has a few different kinds as well.

In the unix world, we don't have as many choices, but there are a few.
It's a complex problem, and it needs to be solved surely, but it should
IMO be solved at a level above Ogg since you'd want it to support MPEG,
WAV, and all other forms of files too.

It requires
> two general things to work -- a codec identifier and a library
> interface. 

You are oversimplifying.  Go read the APIs of DirectShow and gstreamer.
They aren't trivial, though they aren't extremely difficult either.
Codecs come in all shapes and sizes, as do filters and various other
parts of your media pipeline.  Limiting ourselves to a common interface
just for codecs will probably make us end up as useless as ACM.

> What about seeking? I don't know how vorbisfile does it for Vorbis
> streams, but it has been described to me as pretty much
> guess-and-check. What happens with interleaved streams? We'll probably
> need seeking hints in the metadata unless anyone has any better ideas
> (remember the problems frequently associated with AVIs, especially
> DivX but others also?).

Guess and check will still work.  It shouldn't be any more difficult
since the streams are synchronized.

> One thing is for sure -- thinking -- and doing -- as far as metadata
> must happen, and soon.
> 
> /me steps off soapbox

I don't get it.  Was this a rant on codec interfaces, or metadata, code
structure or project focus? :)

jack.

--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'vorbis-dev-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.



More information about the Vorbis-dev mailing list