<p>What output formats are you planning to support? What I would love to see is mainly playback of side-by-side files in quad-buffered opengl (nvidia quadro/3dvision output to 120hz monitor, active glasses) and horizontal interlaced (Zalman monitor, circular polarized passive glasses)  format.</p>

<p><blockquote type="cite">2010/05/23 0:51 &quot;David Schleef&quot; &lt;<a href="mailto:ds@entropywave.com">ds@entropywave.com</a>&gt;:<br><br><p><font color="#500050">On Tue, May 18, 2010 at 07:12:26AM +0000, Martin Bisson wrote:<br>
&gt; My work is based on the proposal ma...</font></p>The goal, imo, is to define how GStreamer handles stereo video<br>
*natively*, that is, elements can automatically differentiate<br>
between normal and stereo video, caps negotiation works as one<br>
would expect, playback of a stereo video on a normal monitor<br>
would allow for the option of viewing in mono or with red/green<br>
glasses, etc.  A lower goal would be to create elements that<br>
manipulate stereo video, but entirely manually.  I&#39;m only<br>
concerned with the former.<br>
<br>
There are two main options: Use pairs of well-known raw image<br>
layouts (i.e., I420, YUY2, UYVY, etc.), probably consecutive<br>
in memory, for the left and right images.  Or, define a bunch<br>
of new fourccs that mean &quot;stereo video&quot; that correspond to<br>
existing layouts, but enhanced for stereo.<br>
<br>
Using existing layouts: I recommend packing the two pictures<br>
consecutively in memory, left then right.  The main rationale is<br>
that conversion to a normal picture is simply changing the size<br>
and/or pointer of the buffer and changing caps.  Other packing<br>
arrangements might be important in the future, so having a<br>
manditory caps field marking the packing would be a good idea.<br>
<br>
I recommend using a new caps type, perhaps video/x-raw-yuv-stereo<br>
or some such, instead of using video/x-raw-yuv,stereo=true.  Using<br>
video/x-raw-yuv leads to endless compatibility problems: elements<br>
that currently handle video/x-raw-yuv would silently do the wrong<br>
thing with stereo video.  Using x-raw-yuv would mean width/height<br>
in the caps would be double the *actual* width/height of the mono<br>
video, which is hacky.  Also, converting from stereo to mono in<br>
many cases would require copying.<br>
<br>
Defining new fourccs:  This has the obvious disadvantage that<br>
we&#39;d either need to keep these internal to GStreamer, or make them<br>
well-known enough for other people to use them.  Integrating with<br>
existing elements (and libgstvideo) is straightfoward.  Adding<br>
new layouts (side-by-side, top-bottom, memory consecutive, etc.)<br>
is simple, although adds *lots* more fourccs.<br>
<br>
I think that overall, using new fourccs would involve writing<br>
less code and be less prone to bugs.  It is my preference.<br>
<br>
Oh yeah, other methods such as dual pads for left/right, or buffer<br>
flags, are non-starters: our attempts at dual pads for float audio<br>
failed miserably, and we don&#39;t have any buffer flags available.<br>
And there are other reasons which I don&#39;t feel like enumerating<br>
right now.<br>
<br>
<br>
<br>
dave...<br>
<p><font color="#500050"><br><br>------------------------------------------------------------------------------<br><br>__________________...</font></p></blockquote></p>