[Theora-dev] & [ogg-dev] OggYUV
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