summaryrefslogtreecommitdiffstats
path: root/DOCS
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2019-10-31 16:45:28 +0100
committerwm4 <wm4@nowhere>2019-10-31 16:51:12 +0100
commita7230dfed0bf563fd9f4673c3020d1cf8461febf (patch)
treed34d333e6f627842aa55e4737a441710d700820d /DOCS
parent2c43d2b75a88b8e0e8f0a715f993ffc1c8977d13 (diff)
downloadmpv-a7230dfed0bf563fd9f4673c3020d1cf8461febf.tar.bz2
mpv-a7230dfed0bf563fd9f4673c3020d1cf8461febf.tar.xz
sws_utils, zimg: destroy vo_x11 and vo_drm performance
Raise swscale and zimg default parameters. This restores screenshot quality settings (maybe) unset in the commit before. Also expose some more libswscale and zimg options. Since these options are also used for VOs like x11 and drm, this will make x11/drm/etc. much slower. For compensation, provide a profile that sets the old option values: sw-fast. I'm also enabling zimg here, just as an experiment. The core problem is that we have a single set of command line options which control the settings used for most swscale/zimg uses. This was done in the previous commit. It cannot differentiate between the VOs, which need to be realtime and may accept/require lower quality options, and things like screenshots or vo_image, which can be slower, but should not sacrifice quality by default. Should this have two sets of options or something similar to do the right thing depending on the code which calls libswscale? Maybe. Or should I just ignore the problem, make it someone else's problem (users who want to use software conversion VOs), provide a sub-optimal solution, and call it a day? Definitely, sounds good, pushing to master, goodbye.
Diffstat (limited to 'DOCS')
-rw-r--r--DOCS/interface-changes.rst2
-rw-r--r--DOCS/man/options.rst41
-rw-r--r--DOCS/man/vo.rst12
3 files changed, 52 insertions, 3 deletions
diff --git a/DOCS/interface-changes.rst b/DOCS/interface-changes.rst
index a8eca8d629..c2543b4e1d 100644
--- a/DOCS/interface-changes.rst
+++ b/DOCS/interface-changes.rst
@@ -27,6 +27,8 @@ Interface changes
--- mpv 0.31.0 ---
- add `--d3d11-output-csp` to enable explicit selection of a D3D11
swap chain color space.
+ - add an builtin "sw-fast" profile, which restores performance settings
+ that were switched to higher quality since mpv 0.30.0
--- mpv 0.30.0 ---
- add `--d3d11-output-format` to enable explicit selection of a D3D11
swap chain format.
diff --git a/DOCS/man/options.rst b/DOCS/man/options.rst
index c8af27bcb7..76f39dc29f 100644
--- a/DOCS/man/options.rst
+++ b/DOCS/man/options.rst
@@ -3833,6 +3833,21 @@ Software Scaler
``--sws-cvs=<v>``
Software scaler chroma vertical shifting. See ``--sws-scaler``.
+``--sws-bitexact=<yes|no>``
+ Unknown functionality (default: no). Consult libswscale source code. The
+ primary purpose of this, as far as libswscale API goes), is to produce
+ exactly the same output for the same input on all platforms (output has the
+ same "bits" everywhere, thus "bitexact"). Typically disables optimizations.
+
+``--sws-fast=<yes|no>``
+ Allow optimizations that help with performance, but reduce quality (default:
+ no).
+
+ VOs like ``drm`` and ``x11`` will benefit a lot from using ``--sws-fast``.
+ You may need to set other options, like ``--sws-scaler``. The builtin
+ ``sws-fast`` profile sets this option and some others to gain performance
+ for reduced quality.
+
``--sws-allow-zimg=<yes|no>``
Allow using zimg (if the component using the internal swscale wrapper
explicitly allows so). In this case, zimg *may* be used, if the internal
@@ -3846,14 +3861,34 @@ Software Scaler
correctly, a verbose priority log message will indicate whether zimg is
being used.
- Currently, barely anything uses this.
+ Most things which need software conversion can make use of this.
-``--zimg--scaler=<point|bilinear|bicubic|spline16|lanczos>``
+``--zimg--scaler=<point|bilinear|bicubic|spline16|spline36|lanczos>``
Zimg luma scaler to use (default: bilinear).
+``--zimg-scaler-param-a=<default|float>``, ``--zimg-scaler-param-b=<default|float>``
+ Set scaler parameters. By default, these are set to the special string
+ ``default``, which maps to a scaler-specific default value. Ignored if the
+ scaler is not tunable.
+
+ ``lanczos``
+ ``--zimg-scaler-param-a`` is the number of taps.
+
+ ``bicubic``
+ a and b are the bicubic b and c parameters.
+
+``--zimg-scaler-chroma=...``
+ Same as ``--zimg--scaler``, for for chroma interpolation.
+
+``--zimg-scaler-chroma-param-a``, ``--zimg-scaler-chroma-param-b``
+ Same as ``--zimg-scaler-param-a`` / ``--zimg-scaler-param-b``, for chroma.
+
+``--zimg-dither=<no|ordered|random|error-diffusion>``
+ Dithering (default: random).
+
``--zimg-fast=<yes|no>``
Allow optimizations that help with performance, but reduce quality (default:
- yes). Currently, this may simplify gamma conversion operations.
+ no). Currently, this may simplify gamma conversion operations.
Audio Resampler
diff --git a/DOCS/man/vo.rst b/DOCS/man/vo.rst
index ea2d3ee645..50db983f06 100644
--- a/DOCS/man/vo.rst
+++ b/DOCS/man/vo.rst
@@ -71,6 +71,9 @@ Available video output drivers are:
Shared memory video output driver without hardware acceleration that works
whenever X11 is present.
+ Since mpv 0.30.0, you may need to use ``--profile=sw-fast`` to get decent
+ performance.
+
.. note:: This is a fallback only, and should not be normally used.
``vdpau`` (X11 only)
@@ -383,6 +386,9 @@ Available video output drivers are:
Depends on support of true color by modern terminals to display the images
at full color range. On Windows it requires an ansi terminal such as mintty.
+ Since mpv 0.30.0, you may need to use ``--profile=sw-fast`` to get decent
+ performance.
+
``--vo-tct-algo=<algo>``
Select how to write the pixels to the terminal.
@@ -482,6 +488,9 @@ Available video output drivers are:
environment (e.g. no X). Does not support hardware acceleration (if you
need this, check the ``drm`` backend for ``gpu`` VO).
+ Since mpv 0.30.0, you may need to use ``--profile=sw-fast`` to get decent
+ performance.
+
The following global options are supported by this video output:
``--drm-connector=[<gpu_number>.]<name>``
@@ -583,4 +592,7 @@ Available video output drivers are:
Shared memory video output driver without hardware acceleration that works
whenever Wayland is present.
+ Since mpv 0.30.0, you may need to use ``--profile=sw-fast`` to get decent
+ performance.
+
.. note:: This is a fallback only, and should not be normally used.