diff options
author | Niklas Haas <git@nand.wakku.to> | 2015-03-26 01:55:32 +0100 |
---|---|---|
committer | Niklas Haas <git@nand.wakku.to> | 2015-04-04 15:36:14 +0200 |
commit | 068ff812e4f958a83098e9ed27b2b96ffcab1eb2 (patch) | |
tree | af06b926adf3981b35055f378b18546681506dad /DOCS/man/vo.rst | |
parent | 586dc5574f519a336fda0e8c1d3c94e0c1df38b2 (diff) | |
download | mpv-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.rst | 23 |
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. |