summaryrefslogtreecommitdiffstats
path: root/DOCS
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2012-09-23 16:10:00 +0200
committerwm4 <wm4@nowhere>2012-10-03 03:17:39 +0200
commit3611d1bf9ba6f34909108166aaa21deaffc72c57 (patch)
treecd7c2ee5c1a50140d417e7a1a761b6ac4f12cfd4 /DOCS
parent4ecb1b53debb54e5dccf460fb245416148afbfa8 (diff)
downloadmpv-3611d1bf9ba6f34909108166aaa21deaffc72c57.tar.bz2
mpv-3611d1bf9ba6f34909108166aaa21deaffc72c57.tar.xz
VO: actually rename VOs gl -> opengl-old, gl3 -> opengl
This renames vo_gl3 to vo_opengl, and makes it the default. The old vo_gl is still available under "opengl-old". We keep "gl3" as alias to "opengl" for short-term compatibility. For OSX/Cocoa, the autoprobe order changes (prefer the "opengl" over "opengl-old"). Remove "gl_nosw". This was a compatibility alias for "opengl-old", and there's no point in keeping it.
Diffstat (limited to 'DOCS')
-rw-r--r--DOCS/man/en/changes.rst2
-rw-r--r--DOCS/man/en/vo.rst415
-rw-r--r--DOCS/tech-overview.txt4
3 files changed, 212 insertions, 209 deletions
diff --git a/DOCS/man/en/changes.rst b/DOCS/man/en/changes.rst
index c4fc3a0812..cdbfb8f0ab 100644
--- a/DOCS/man/en/changes.rst
+++ b/DOCS/man/en/changes.rst
@@ -52,7 +52,7 @@ General changes for mplayer2 to mplayer3
* Cleaned up terminal output (nicer status line, less useless noise)
* Support for playing URLs of popular streaming sites directly
(e.g. ``mplayer3 https://www.youtube.com/watch?v=...``)
-* Improved OpenGL output (``vo_gl3``)
+* Improved OpenGL output (``vo_opengl``)
* Make ``--softvol`` default (**mplayer3** is not a mixer control panel)
* Improved support for .cue files
* Screenshot improvements (can save screenshots as JPG, configurable filenames)
diff --git a/DOCS/man/en/vo.rst b/DOCS/man/en/vo.rst
index 34b547c4bc..93fc480977 100644
--- a/DOCS/man/en/vo.rst
+++ b/DOCS/man/en/vo.rst
@@ -16,8 +16,8 @@ in the list. Suboptions are optional and can mostly be omitted.
*EXAMPLE*:
- ``--vo=gl,xv,``
- Try the gl driver, then the Xv driver, then others.
+ ``--vo=opengl,xv,``
+ Try the OpenGL driver, then the Xv driver, then others.
Available video output drivers are:
@@ -225,215 +225,20 @@ direct3d (Windows only)
corevideo (Mac OS X 10.6 and later)
Mac OS X CoreVideo video output driver. Uses the CoreVideo APIs to fill
PixelBuffers and generate OpenGL textures from them (useful as a fallback
- for vo_gl_).
+ for vo_opengl_).
-.. _vo_gl:
-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.
-
- 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.
-
- (no-)ati-hack
- ATI drivers may give a corrupted image when PBOs are used (when using
- `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 ``--no-slices`` 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_MESA_ycbcr_texture`` extension to convert YUV to RGB. In
- most cases this is probably slower than doing software conversion to
- RGB.
- 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
- Same as 2. This used to use nVidia-specific extensions, which
- didn't provide any advantages over using fragment programs, except
- possibly on very ancient graphic cards. It produced a gray-ish
- output, which is why it has been removed.
- 2
- Use a fragment program. Needs the ``GL_ARB_fragment_program``
- extension and at least three texture units. Provides brightness,
- contrast, saturation and hue control.
- 3
- 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.
- 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.
-
- 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`).
-
- 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.
- stereo=<value>
- Select a method for stereo display. You may have to use ``--aspect`` to
- fix the aspect value. 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.
-
- The following options are only useful if writing your own fragment
- programs.
-
- customprog=<filename>
- Load a custom fragment program from <filename>. See
- ``TOOLS/edgedect.fp`` for an example.
- customtex=<filename>
- Load a custom "gamma ramp" texture from <filename>. This can be used
- in combination with yuv=4 or with the customprog option.
- (no-)customtlin
- If enabled (default) use ``GL_LINEAR`` interpolation, otherwise use
- ``GL_NEAREST`` for customtex texture.
- (no-)customtrect
- If enabled, use texture_rectangle for customtex texture. Default is
- disabled.
- (no-)mipmapgen
- If enabled, mipmaps for the video are automatically generated. This
- should be useful together with the customprog and the TXB instruction
- to implement blur filters with a large radius. For most OpenGL
- implementations this is very slow for any non-RGB formats. Default is
- disabled.
-
- Normally there is no reason to use the following options, they mostly
- exist for testing purposes.
-
- (no-)glfinish
- Call ``glFinish()`` before swapping buffers. Slower but in some cases
- more correct output (default: disabled).
- (no-)manyfmts
- Enables support for more (RGB and BGR) color formats (default:
- enabled). Needs OpenGL version >= 1.2.
- slice-height=<0-...>
- Number of lines copied to texture in one piece (default: 0). 0 for
- whole image.
-
- *NOTE*: If YUV colorspace is used (see `yuv` suboption), special rules
- apply: If the decoder uses slice rendering (see ``--no-slices``), this
- setting has no effect, the size of the slices as provided by the
- decoder is used. If the decoder does not use slice rendering, the
- default is 16.
- (no-)osd
- Enable or disable support for OSD rendering via OpenGL (default:
- enabled). This option is for testing; to disable the OSD use
- ``--osdlevel=0`` instead.
-
- sw
- Continue even if a software renderer is detected.
-
- backend=<sys>
- auto
- auto-select (default)
- cocoa
- Cocoa/OSX
- win
- Win32/WGL
- x11
- X11/GLX
-
-gl3
- OpenGL video output driver, extended version.
+.. _vo_opengl:
+opengl
+ OpenGL video output driver.
It supports extended scaling methods, dithering and color management.
It tries to use sane defaults for good quality output.
Note that some cheaper LCDs do dithering that gravely interferes with
- vo_gl3's dithering. Disabling dithering with ``dither-depth=-1`` helps.
+ vo_opengl's dithering. Disabling dithering with ``dither-depth=-1`` helps.
+
+ Requires at least OpenGL 2.1 and the GL_ARB_texture_rg extension. For older
+ drivers, ``opengl-old`` may work.
Some features are available with OpenGL 3 capable graphics drivers only.
@@ -544,7 +349,7 @@ gl3
Note that the depth of the connected video display device can not be
detected. Often, LCD panels will do dithering on their own, which
- conflicts with vo_gl3's dithering, and leads to ugly output.
+ conflicts with vo_opengl's dithering, and leads to ugly output.
debug
Check for OpenGL errors, i.e. call glGetError(). Also request a
@@ -638,6 +443,204 @@ gl3
dimension. Default is 128x256x64.
Sizes must be a power of two, and 256 at most.
+opengl-old
+ OpenGL video output driver, old 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.
+
+ 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.
+
+ (no-)ati-hack
+ ATI drivers may give a corrupted image when PBOs are used (when using
+ `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 ``--no-slices`` 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_MESA_ycbcr_texture`` extension to convert YUV to RGB. In
+ most cases this is probably slower than doing software conversion to
+ RGB.
+ 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
+ Same as 2. This used to use nVidia-specific extensions, which
+ didn't provide any advantages over using fragment programs, except
+ possibly on very ancient graphic cards. It produced a gray-ish
+ output, which is why it has been removed.
+ 2
+ Use a fragment program. Needs the ``GL_ARB_fragment_program``
+ extension and at least three texture units. Provides brightness,
+ contrast, saturation and hue control.
+ 3
+ 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.
+ 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.
+
+ 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`).
+
+ 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.
+ stereo=<value>
+ Select a method for stereo display. You may have to use ``--aspect`` to
+ fix the aspect value. 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.
+
+ The following options are only useful if writing your own fragment
+ programs.
+
+ customprog=<filename>
+ Load a custom fragment program from <filename>. See
+ ``TOOLS/edgedect.fp`` for an example.
+ customtex=<filename>
+ Load a custom "gamma ramp" texture from <filename>. This can be used
+ in combination with yuv=4 or with the customprog option.
+ (no-)customtlin
+ If enabled (default) use ``GL_LINEAR`` interpolation, otherwise use
+ ``GL_NEAREST`` for customtex texture.
+ (no-)customtrect
+ If enabled, use texture_rectangle for customtex texture. Default is
+ disabled.
+ (no-)mipmapgen
+ If enabled, mipmaps for the video are automatically generated. This
+ should be useful together with the customprog and the TXB instruction
+ to implement blur filters with a large radius. For most OpenGL
+ implementations this is very slow for any non-RGB formats. Default is
+ disabled.
+
+ Normally there is no reason to use the following options, they mostly
+ exist for testing purposes.
+
+ (no-)glfinish
+ Call ``glFinish()`` before swapping buffers. Slower but in some cases
+ more correct output (default: disabled).
+ (no-)manyfmts
+ Enables support for more (RGB and BGR) color formats (default:
+ enabled). Needs OpenGL version >= 1.2.
+ slice-height=<0-...>
+ Number of lines copied to texture in one piece (default: 0). 0 for
+ whole image.
+
+ *NOTE*: If YUV colorspace is used (see `yuv` suboption), special rules
+ apply: If the decoder uses slice rendering (see ``--no-slices``), this
+ setting has no effect, the size of the slices as provided by the
+ decoder is used. If the decoder does not use slice rendering, the
+ default is 16.
+ (no-)osd
+ Enable or disable support for OSD rendering via OpenGL (default:
+ enabled). This option is for testing; to disable the OSD use
+ ``--osdlevel=0`` instead.
+
+ sw
+ Continue even if a software renderer is detected.
+
+ backend=<sys>
+ auto
+ auto-select (default)
+ cocoa
+ Cocoa/OSX
+ win
+ Win32/WGL
+ x11
+ X11/GLX
+
null
Produces no video output. Useful for benchmarking.
diff --git a/DOCS/tech-overview.txt b/DOCS/tech-overview.txt
index 7faffec616..9acfe846cf 100644
--- a/DOCS/tech-overview.txt
+++ b/DOCS/tech-overview.txt
@@ -160,13 +160,13 @@ libvo/:
Video output. They also create GUI windows and handle user input. In most
cases, the windowing code is shared among VOs, like x11_common.c for X11 and
w32_common.c for Windows. The VOs stand between frontend and windowing code.
- vo_gl can pick a windowing system at runtime, e.g. the same binary can
+ vo_opengl can pick a windowing system at runtime, e.g. the same binary can
provide both X11 and Cocoa support on OSX.
VOs can be reconfigured at runtime. A config() call can change the video
resolution and format, without destroying the window.
- vo_vdpau and vo_gl3 should be taken as reference.
+ vo_vdpau and vo_opengl should be taken as reference.
libaf/:
Audio filter chain. format.h/format.c define the audio formats.