[Theora-dev] & [ogg-dev] OggYUV

Arc arc at Xiph.org
Tue Nov 8 15:13:27 PST 2005

On Tue, Nov 08, 2005 at 02:29:28PM -0500, John Koleszar wrote:
> >
> My argument is that that application shouldn't have to convert to a 
> fixed format. It should be able to say here's some YUY2 data and 
> OggStream could figure out how to encode that to Theora by using an 
> intermediate filter.

I'm leaning towards wanting packed + planar, too, after recent comments 
on the subject.  See my last email as I proposed how to do it.
> >[Theora] -> Theora plugin -> [OggYUV:420] -> Colorspace Plugin -> 
> >[OggYUV:444] -> Media Player
> Agreed. I'm focusing on the encode side:
> [Opaque] -> Import plugin -> [Arbitrary raw format] -> Colorconvert 
> Plugin -> [OggYUV:420] -> Theora plugin
> What I think you're proposing is
> [Opaque] -> Import plugin -> [OggYUV:420] -> Theora plugin

No, but I'm not proposing your chain either.  "Arbitrary raw format" (I 
read this as: arbitrary codec) isn't something a generic colorspace 
plugin could reasonably handle, which is why we need an interchange 
codec such as OggYUV...

So alternativly, I assume Opaque is a file format..

[Opaque] -> Opaque plugin -> [OggYUV:xxx] -> Colorconvert Plugin -> 
[OggYUV:420] -> Theora plugin

Whereas, OggYUV:xxx is any colorspace, whatever the Opaque plugin 

OggYUV isn't something that OggStream will treat as special, it's just 
another codec to it, it's just what we'll use as a standard for plugins 
to be able to interchange.

OggRGB (I still think they need to be kept seperate, even though there's 
some overlap, as they're different enough to make this reasonable) could 
also be in this chain.. consider a JPEG-exporting webcam, a JPEG plugin 
which only outputs RGB, going to an interlaced YUV format we'll call 
"Spectra" to be streamed to Icecast via libshout:

Webcam -> Video4Linux -> Application (converts JPEG frames to OggJPEG)
-> [OggJPEG] -> JPEG Plugin -> [OggRGB:0888] -> RGB to YUV Plugin 
-> [YUV:444] -> Interlace Plugin -> [YUV:i444] -> Colorspace Plugin 
-> [YUV:i420] -> Spectra Plugin -> Application (packets->pages->libshout)


The recognition of individual possibility,
 to allow each to be what she and he can be,
  rests inherently upon the availability of knowledge;
 The perpetuation of ignorance is the beginning of slavery.

from "Die Gedanken Sind Frei": Free Software and the Struggle for Free Thought
 by Eben Moglen, General council of the Free Software Foundation

More information about the ogg-dev mailing list