gl OpenGL video output driver, simple version.  Video size must be smaller than the maximum texture size of your OpenGL implementation.  Intended to work even with the most basic OpenGL implementations, but also makes use of newer extensions, which allow support for more colorspaces and direct rendering.  For optimal speed try adding the options -dr -noslices The code performs very few checks, so if a feature does not work, this might be because it is not supported by your card/OpenGL implementation even if you do not get any error message.  Use glxinfo or a similar tool to display the supported OpenGL extensions. backend=<n> Select the backend/OpenGL implementation to use (default: -1). -1: Autoselect 0: Win32/WGL 1: X11/GLX 2: SDL 3: X11/EGL (highly experimental) 4: OSX/Cocoa 5: Android (very bad hack, only for testing) (no)ati-hack ATI drivers may give a corrupted image when PBOs are used (when using -dr or force-pbo).  This option fixes this, at the expense of using a bit more memory. (no)force-pbo Always uses PBOs to transfer textures even if this involves an extra copy.  Currently this gives a little extra speed with NVidia drivers and a lot more speed with ATI drivers.  May need -noslices and the ati-hack suboption to work correctly. (no)scaled-osd Changes the way the OSD behaves when the size of the window changes (default: disabled).  When enabled behaves more like the other video output drivers, which is better for fixed-size fonts.  Disabled looks much better with FreeType fonts and uses the borders in fullscreen mode. Does not work correctly with ass subtitles (see -ass), you can instead render them without OpenGL support via -vf ass. osdcolor=<0xAARRGGBB> Color for OSD (default: 0x00ffffff, corresponds to non- transparent white). rectangle=<0,1,2> Select usage of rectangular textures which saves video RAM, but often is slower (default: 0). 0: Use power-of-two textures (default). 1: Use the GL_ARB_texture_rectangle extension. 2: Use the GL_ARB_texture_non_power_of_two extension. In some cases only supported in software and thus very slow. swapinterval=<n> Minimum interval between two buffer swaps, counted in displayed frames (default: 1).  1 is equivalent to enabling VSYNC, 0 to disabling VSYNC.  Values below 0 will leave it at the system default.  This limits the framerate to (horizontal refresh rate / n).  Requires GLX_SGI_swap_control support to work.  With some (most/all?) implementations this only works in fullscreen mode. ycbcr Use the GL_APPLE_ycbcr_422 extension to convert YUV to RGB.  Default is disabled if yuv= is specified, auto- detected otherwise.  Note that this will enable a few special settings to get into a special driver fast-path. yuv=<n> Select the type of YUV to RGB conversion.  The default is auto-detection deciding between values 0 and 2. 0: Use software conversion.  Compatible with all OpenGL versions.  Provides brightness, contrast and saturation control. 1: Use register combiners.  This uses an nVidia- specific extension (GL_NV_register_combiners).  At least three texture units are needed.  Provides saturation and hue control.  This method is fast but inexact. 2: Use a fragment program using the POW instruction. Needs the GL_ARB_fragment_program extension and at least three texture units.  Provides brightness, contrast, saturation, hue and gamma control.  Gamma can also be set independently for red, green and blue. Method 4 is usually faster. 3: Same as 2.  They exist as distinct values for legacy reasons, MPlayer now inserts the extra instructions for gamma control on-demand. 4: Use a fragment program with additional lookup. Needs the GL_ARB_fragment_program extension and at least four texture units.  Provides brightness, contrast, saturation, hue and gamma control.  Gamma can also be set independently for red, green and blue. 5: Use ATI-specific method (for older cards).  This uses an ATI-specific extension (GL_ATI_fragment_shader - not GL_ARB_fragment_shader!).  At least three texture units are needed.  Provides saturation and hue control. This method is fast but inexact. 6: Use a 3D texture to do conversion via lookup.  Needs the GL_ARB_fragment_program extension and at least four texture units.  Extremely slow (software emulation) on some (all?) ATI cards since it uses a texture with border pixels.  Provides brightness, contrast, saturation, hue and gamma control.  Gamma can also be set independently for red, green and blue.  Speed depends more on GPU memory bandwidth than other methods. colorspace Select the color space for YUV to RGB conversion. 0    Use the formula used normally by MPlayer (default). 1    Use ITU-R BT.601 color space. 2    Use ITU-R BT.709 color space. 3    Use SMPTE-240M color space. levelconv=<n> Select the brightness level conversion to use for the YUV to RGB conversion 0    Convert TV to PC levels (default). 1    Convert PC to TV levels. 2    Do not do any conversion. lscale=<n> Select the scaling function to use for luminance scaling. Only valid for yuv modes 2, 3, 4 and 6. 0    Use simple linear filtering (default). 1    Use bicubic B-spline filtering (better quality). Needs one additional texture unit.  Older cards will not be able to handle this for chroma at least in fullscreen mode. 2    Use cubic filtering in horizontal, linear filtering in vertical direction.  Works on a few more cards than method 1. 3    Same as 1 but does not use a lookup texture. Might be faster on some cards. 4    Use experimental unsharp masking with 3x3 support and a default strength of 0.5 (see filter- strength). 5    Use experimental unsharp masking with 5x5 support and a default strength of 0.5 (see filter- strength). 64   Use nearest-neighbor scaling. cscale=<n> Select the scaling function to use for chrominance scaling.  For details see lscale. filter-strength=<value> Set the effect strength for the lscale/cscale filters that support it. noise-strength=<value> Set how much noise to add. 0 to disable (default), 1.0 for level suitable for dithering to 6 bit. stereo=<value> Select a method for stereo display.  You may have to use -aspect to fix the aspect value.  Add 32 to swap left and right side.  Experimental, do not expect too much from it. 0    normal 2D display 1    Convert side by side input to full-color red-cyan stereo. 2    Convert side by side input to full-color green- magenta stereo. 3    Convert side by side input to quadbuffered stereo. Only supported by very few OpenGL cards. 4    Mix left and right in a pixel pattern.  Pattern is given by stipple option. stipple=<bit Lowest 16 bit give the 4x4 pattern to use (default: 0x0f0f).  Examples to try: 0x0f0f, 0xf0f0: horizontal lines; 0xaaaa, 0x5555: vertical lines; 0xa5a5, 0x5a5a: checkerboard pattern