[gst-devel] Video 3D support
Martin Bisson
martin.bisson at gmail.com
Mon May 24 00:52:23 CEST 2010
David Schleef wrote:
> I recommend using a new caps type, perhaps video/x-raw-yuv-stereo
> or some such, instead of using video/x-raw-yuv,stereo=true. Using
> video/x-raw-yuv leads to endless compatibility problems: elements
> that currently handle video/x-raw-yuv would silently do the wrong
> thing with stereo video. Using x-raw-yuv would mean width/height
> in the caps would be double the *actual* width/height of the mono
> video, which is hacky. Also, converting from stereo to mono in
> many cases would require copying.
>
> Defining new fourccs: This has the obvious disadvantage that
> we'd either need to keep these internal to GStreamer, or make them
> well-known enough for other people to use them. Integrating with
> existing elements (and libgstvideo) is straightfoward. Adding
> new layouts (side-by-side, top-bottom, memory consecutive, etc.)
> is simple, although adds *lots* more fourccs.
>
This means that we would have something like :
- video/x-raw-yuv-stereo-side-by-side
- video/x-raw-yuv-stereo-top-bottom
- video/x-raw-yuv-stereo-row-interleaved
And the same thing for different layouts like yuy2 and uyvy? Planar
layouts like I420 might be problematic for row interleaving though,
because the u and v values spread to 2 lines...
So these caps would describe 3D streams that carry the 2 images. But
what about streams that actually are combinations of the 2 images, like
red/cyan streams? I guess since these would be displayed on normal
devices, they could just be normal streams, i.e. a
video/x-raw-yuv-stereo-side-by-side stream could be converted to
red/cyan stream with caps video/x-raw-yuv.
I think this caps approach sounds like a good, simple approach that
would carry the information we need. I'm not sure how I would deal with
interlaced frames yet, I'll have to look into that.
Thanks for your reply,
Martin
More information about the gstreamer-devel
mailing list