diff options
Diffstat (limited to 'DOCS/man/options.rst')
-rw-r--r-- | DOCS/man/options.rst | 64 |
1 files changed, 39 insertions, 25 deletions
diff --git a/DOCS/man/options.rst b/DOCS/man/options.rst index 067cbcdb13..5b25361c9c 100644 --- a/DOCS/man/options.rst +++ b/DOCS/man/options.rst @@ -958,6 +958,29 @@ Video Whether hardware decoding is actually done depends on the video codec. If hardware decoding is not possible, mpv will fall back on software decoding. + Hardware decoding is not enabled by default, because it is typically an + additional source of errors. It is worth using only if your CPU is too + slow to decode a specific video. + + .. note:: + + Use the ``Ctrl+h`` shortcut to toggle hardware decoding at runtime. It + toggles this option between ``auto`` and ``no``. + + Always enabling HW decoding by putting it into the config file is + discouraged. If you use the Ubuntu package, delete ``/etc/mpv.conf``, + as the package tries to enable HW decoding by default. + + Use one of the auto modes if you want to enable hardware decoding. + Explicitly selecting the mode is mostly meant for testing and debugging. + It's a bad idea to put explicit selection into the config file if you + want thing to just keep working after updates and so on. + + .. note:: + + Even if enabled, hardware decoding is still only white-listed for some + codecs. See ``--hwdec-codecs`` to enable hardware decoding in more cases. + ``<api>`` can be one of the following: :no: always use software decoding (default) @@ -999,12 +1022,24 @@ Video ``auto-copy`` selects only modes that copy the video data back to system memory after decoding. This selects modes like ``vaapi-copy`` (and so on). - If none of these work, hardware decoding is disabled. This mode is always - guaranteed to incur no additional loss compared to software decoding, and - will allow CPU processing with video filters. + If none of these work, hardware decoding is disabled. This mode is usually + guaranteed to incur no additional quality loss compared to software + decoding (assuming modern codecs and an error free video stream), and will + allow CPU processing with video filters. This mode works with all video + filters and VOs. + + Because these copy the decoded video back to system RAM, they're often less + less efficient than the direct modes, and may not help too much over + software decoding. + + .. note:: + + Most non-copy methods only work with the OpenGL GPU backend. Currently, + only the ``nvdec`` and ``cuda`` methods work with Vulkan. The ``vaapi`` mode, if used with ``--vo=gpu``, requires Mesa 11 and most - likely works with Intel GPUs only. It also requires the opengl EGL backend. + likely works with Intel and AMD GPUs only. It also requires the opengl EGL + backend. The ``cuda`` and ``cuda-copy`` modes provides deinterlacing in the decoder which is useful as there is no other deinterlacing mechanism in the gpu @@ -1020,27 +1055,6 @@ Video is not supported. Since this uses FFmpeg's codec parsers, it is expected that this generally causes fewer issues than ``cuda``. - Most video filters will not work with hardware decoding as they are - primarily implemented on the CPU. Some exceptions are ``vdpaupp``, - ``vdpaurb`` and ``vavpp``. See `VIDEO FILTERS`_ for more details. - - The ``...-copy`` modes (e.g. ``dxva2-copy``) allow you to use hardware - decoding with any VO, backend or filter. Because these copy the decoded - video back to system RAM, they're likely less efficient than the direct - modes (like e.g. ``dxva2``), and probably not more efficient than software - decoding except for some codecs (e.g. HEVC). - - .. note:: - - When using this switch, hardware decoding is still only done for some - codecs. See ``--hwdec-codecs`` to enable hardware decoding for more - codecs. - - .. note:: - - Most non-copy methods only work with the OpenGL GPU backend. Currently, - only the ``nvdec`` and ``cuda`` methods work with Vulkan. - .. admonition:: Quality reduction with hardware decoding In theory, hardware decoding does not reduce video quality (at least |