[MPlayer-dev-eng] New stereo output mode for OpenGL video driver

Reimar Döffinger Reimar.Doeffinger at gmx.de
Fri Dec 23 23:37:02 CET 2011


On Fri, Dec 23, 2011 at 11:25:05PM +0100, Reimar Döffinger wrote:
> On Sun, Dec 18, 2011 at 11:53:54PM +0100, Wolfgang Draxinger wrote:
> > +    case GL_3D_ROWINTERLACE_ODD: 
> 
> Trailing space.
> 
> > +    	mpglEnable(GL_POLYGON_STIPPLE);
> > +	mpglPixelStorei(GL_UNPACK_ALIGNMENT,1);
> > +	mpglPixelStorei(GL_UNPACK_ROW_LENGTH,0);
> > +    	mpglPolygonStipple(stipple_row_odd);
> > +    	break;
> > +    case GL_3D_ROWINTERLACE_EVEN:
> > +    	mpglEnable(GL_POLYGON_STIPPLE);
> > +	mpglPixelStorei(GL_UNPACK_ALIGNMENT,1);
> > +	mpglPixelStorei(GL_UNPACK_ROW_LENGTH,0);
> > +    	mpglPolygonStipple(stipple_row_even);
> > +    	break;
> > +    case GL_3D_COLUMNINTERLACE_ODD:
> > +    	mpglEnable(GL_POLYGON_STIPPLE);
> > +	mpglPixelStorei(GL_UNPACK_ALIGNMENT,1);
> > +	mpglPixelStorei(GL_UNPACK_ROW_LENGTH,0);
> > +    	mpglPolygonStipple(stipple_column_odd);
> > +    	break;
> > +    case GL_3D_COLUMNINTERLACE_EVEN:
> > +    	mpglEnable(GL_POLYGON_STIPPLE);
> > +	mpglPixelStorei(GL_UNPACK_ALIGNMENT,1);
> > +	mpglPixelStorei(GL_UNPACK_ROW_LENGTH,0);
> > +    	mpglPolygonStipple(stipple_column_even);
> > +    	break;
> 
> You shouldn't be using tabs in this code.
> Also using the glAdjustAlignment function instead of GL_UNPACK_ALIGNMENT
> directly is more consistent with the rest of the code, even if it
> is a bit overkill.
> However, by using uint64_t type for the arrays you should save some
> typing and you should have no need to set this up at all, since any
> value should work.

That last part is maybe a bad idea, due to mismatching types then.

> > +    case GL_3D_ROWINTERLACE_ODD: 
> > +    case GL_3D_ROWINTERLACE_EVEN:
> > +    case GL_3D_COLUMNINTERLACE_ODD:
> > +    case GL_3D_COLUMNINTERLACE_EVEN:
> > +    	glDisable(GL_POLYGON_STIPPLE);
> > +    	mpglPolygonStipple(NULL);
> 
> Passing NULL to glPolygonStipple is not allowed by my understanding.
> 
> > diff --git a/libvo/gl_common.h b/libvo/gl_common.h
> > index 52b8999..f0fec03 100644
> > --- a/libvo/gl_common.h
> > +++ b/libvo/gl_common.h
> > @@ -389,6 +389,10 @@ void glDisableYUVConversion(GLenum target, int type);
> >  #define GL_3D_RED_CYAN        1
> >  #define GL_3D_GREEN_MAGENTA   2
> >  #define GL_3D_QUADBUFFER      3
> > +#define GL_3D_ROWINTERLACE_ODD 4
> > +#define GL_3D_ROWINTERLACE_EVEN 5
> > +#define GL_3D_COLUMNINTERLACE_ODD 6
> > +#define GL_3D_COLUMNINTERLACE_EVEN 7
> 
> You should only need 2 and a way to swap left and right, that should
> simplify this a good bit.

I implemented a way to swap left and right.
The documentation in vo_gl.c and DOCS/man/en/mplayer.1 should be
updated, too.


More information about the MPlayer-dev-eng mailing list