summaryrefslogtreecommitdiffstats
path: root/DOCS/man/vo.rst
diff options
context:
space:
mode:
authorNiklas Haas <git@nand.wakku.to>2015-03-26 01:55:32 +0100
committerNiklas Haas <git@nand.wakku.to>2015-04-04 15:36:14 +0200
commit068ff812e4f958a83098e9ed27b2b96ffcab1eb2 (patch)
treeaf06b926adf3981b35055f378b18546681506dad /DOCS/man/vo.rst
parent586dc5574f519a336fda0e8c1d3c94e0c1df38b2 (diff)
downloadmpv-068ff812e4f958a83098e9ed27b2b96ffcab1eb2.tar.bz2
mpv-068ff812e4f958a83098e9ed27b2b96ffcab1eb2.tar.xz
vo_opengl: refactor scaler configuration
This merges all of the scaler-related options into a single configuration struct, and also cleans up the way they're passed through the code. (For example, the scaler index is no longer threaded through pass_sample, just the scaler configuration itself, and there's no longer duplication of the params etc.) In addition, this commit makes scale-down more principled, and turns it into a scaler in its own right - so there's no longer an ugly separation between scale and scale-down in the code. Finally, the radius stuff has been made more proper - filters always have a radius now (there's no more radius -1), and get a new .resizable attribute instead for when it's tunable. User-visible changes: 1. scale-down has been renamed dscale and now has its own set of config options (dscale-param1, dscale-radius) etc., instead of reusing scale-param1 (which was arguably a bug). 2. The default radius is no longer fixed at 3, but instead uses that filter's preferred radius by default. (Scalers with a default radius other than 3 include sinc, gaussian, box and triangle) 3. scale-radius etc. now goes down to 0.5, rather than 1.0. 0.5 is the smallest radius that theoretically makes sense, and indeed it's used by at least one filter (nearest). Apart from that, it should just be internal changes only. Note that this sets up for the refactor discussed in #1720, which would be to merge scaler and window configurations (include parameters etc.) into a single, simplified string. In the code, this would now basically just mean getting rid of all the OPT_FLOATRANGE etc. lines related to scalers and replacing them by a single function that parses a string and updates the struct scaler_config as appropriate.
Diffstat (limited to 'DOCS/man/vo.rst')
-rw-r--r--DOCS/man/vo.rst23
1 files changed, 11 insertions, 12 deletions
diff --git a/DOCS/man/vo.rst b/DOCS/man/vo.rst
index da59a2a7c4..2e07b55530 100644
--- a/DOCS/man/vo.rst
+++ b/DOCS/man/vo.rst
@@ -329,7 +329,7 @@ Available video output drivers are:
``mitchell``
Mitchell-Netravali. The ``B`` and ``C`` parameters can be set with
``scale-param1`` and ``scale-param2``. This filter is very good at
- downscaling (see ``scale-down``).
+ downscaling (see ``dscale``).
``oversample``
A version of nearest neighbour that (naively) oversamples pixels,
@@ -373,8 +373,8 @@ Available video output drivers are:
recommended to stick to values between 0.8 and 1.2.
``scale-radius=<value>``
- Set radius for filters listed below, must be a float number between 1.0
- and 16.0. Defaults to be 3.0 if not specified.
+ Set radius for filters listed below, must be a float number between 0.5
+ and 16.0. Defaults to the filter's preferred radius if not specified.
``sinc`` and derivatives, ``jinc`` and derivatives, ``gaussian``, ``box`` and ``triangle``
@@ -470,16 +470,14 @@ Available video output drivers are:
also lead to bad results, as can missing or incorrect display FPS
information (see ``--display-fps``).
+ ``dscale=<filter>``
+ Like ``scale``, but apply these filters on downscaling instead. If this
+ option is unset, the filter implied by ``scale`` will be applied.
+
``cscale=<filter>``
As ``scale``, but for interpolating chroma information. If the image
is not subsampled, this option is ignored entirely.
- ``scale-down=<filter>``
- Like ``scale``, but apply these filters on downscaling instead. If this
- option is unset, the filter implied by ``scale`` will be applied. Note
- that this is also affected by the other options related to ``scale``,
- ie. there is no ``scale-down-param1`` or similar.
-
``tscale=<filter>``
The filter used for interpolating the temporal axis (frames). This is
only used if ``interpolation`` is enabled. The only valid choices
@@ -491,8 +489,9 @@ Available video output drivers are:
framestepping, proportional to the radius used. It is recommended to
stick to a radius of 1 or 2.
- ``cscale-radius``, ``tscale-radius``, ``cscale-blur``, ``tscale-blur``, etc.
- Set filter parameters for ``cscale`` and ``tscale``, respectively.
+ ``dscale-radius``, ``cscale-radius``, ``tscale-radius``, etc.
+ Set filter parameters for ``dscale``, ``cscale`` and ``tscale``,
+ respectively.
See the corresponding options for ``scale``.
@@ -706,7 +705,7 @@ Available video output drivers are:
This is equivalent to::
- --vo=opengl:scale=spline36:cscale=spline36:scale-down=mitchell:dither-depth=auto:fbo-format=rgba16:fancy-downscaling:sigmoid-upscaling
+ --vo=opengl:scale=spline36:cscale=spline36:dscale=mitchell:dither-depth=auto:fbo-format=rgba16:fancy-downscaling:sigmoid-upscaling
Note that some cheaper LCDs do dithering that gravely interferes with
``opengl``'s dithering. Disabling dithering with ``dither-depth=no`` helps.