summaryrefslogtreecommitdiffstats
path: root/DOCS/man
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2014-05-14 20:41:31 +0200
committerwm4 <wm4@nowhere>2014-05-14 20:42:04 +0200
commitbc6959c35d4a421c920e1d7ce22fb9f339a9a8fb (patch)
tree67d895d0ba16cb450f86842e5c628ea7046161cd /DOCS/man
parentd6774515a73f06a6c9b9780c3ba911aa5bd3e907 (diff)
downloadmpv-bc6959c35d4a421c920e1d7ce22fb9f339a9a8fb.tar.bz2
mpv-bc6959c35d4a421c920e1d7ce22fb9f339a9a8fb.tar.xz
vf_vapoursynth: allow parallel processing
VapourSynth won't just filter multiple frames at once on its own. You have to request multiple frames at once manually. This is what this commit introduces: a sub-option controls how many frames will be requested at once. This also changes the semantics of the maxbuffer sub- option, now renamed to buffered-frames.
Diffstat (limited to 'DOCS/man')
-rw-r--r--DOCS/man/en/vf.rst28
1 files changed, 20 insertions, 8 deletions
diff --git a/DOCS/man/en/vf.rst b/DOCS/man/en/vf.rst
index f3701f04f9..7c5c3a0893 100644
--- a/DOCS/man/en/vf.rst
+++ b/DOCS/man/en/vf.rst
@@ -840,19 +840,19 @@ Available filters are:
``a3=<string>``
Specify the fourth parameter to pass to the library.
-``vapoursynth=file:maxbuffer``
+``vapoursynth=file:buffered-frames:concurrent-frames``
Loads a VapourSynth filter script. This is intended for streamed
processing: mpv actually provides a source filter, instead of using a
native VapourSynth video source. The mpv source will answer frame
requests only within a small window of frames (the size of this window
- is controlled with the ``maxbuffer`` parameter), and requests outside of
- that will return errors. As such, you can't use the full power of
+ is controlled with the ``buffered-frames`` parameter), and requests outside
+ of that will return errors. As such, you can't use the full power of
VapourSynth, but you can use certain filters.
If you just want to play video generated by a VapourSynth (i.e. using
a native VapourSynth video source), it's better to use ``vspipe`` and a
FIFO to feed the video to mpv. The same applies if the filter script
- requires random frame access (see ``maxbuffer`` parameter).
+ requires random frame access (see ``buffered-frames`` parameter).
This filter is experimental. If it turns out that it works well and is
used, it will be ported to libavfilter. Otherwise, it will be just removed.
@@ -879,19 +879,31 @@ Available filters are:
The script will be reloaded on every seek. This is done to reset
the filter properly on discontinuities.
- ``maxbuffer``
+ ``buffered-frames``
Maximum number of decoded video frames that should be buffered before
- the filter (default: 5). This specifies the maximum number of frames
- the script can requests backwards. E.g. if ``maxbuffer=5``, and the
- script just requested frame 15, it can still request frame 10, but
+ the filter (default: 4). This specifies the maximum number of frames
+ the script can requests backwards. E.g. if ``buffered-frames=5``, and
+ the script just requested frame 15, it can still request frame 10, but
frame 9 is not available anymore. If it requests frame 30, mpv will
decode 15 more frames, and keep only frames 25-30.
+ The actual number of buffered frames also depends on the value of the
+ ``concurrent-frames`` option. Currently, both option values are
+ multiplied to get the final buffer size.
+
(Normally, VapourSynth source filters must provide random access, but
mpv was made for playback, and does not provide frame-exact random
access. The way this video filter works is a compromise to make simple
filters work anyway.)
+ ``concurrent-frames``
+ Number of frames that should be requested in parallel (default: 2). The
+ level of concurrency depends on the filter and how quickly mpv can
+ decode video to feed the filter. This value should probably be
+ proportional to the number of cores on your machine. Most time,
+ making it higher than the number of cores can actually make it
+ slower.
+
``vavpp``
VA-AP-API video post processing. Works with ``--vo=vaapi`` and ``--vo=opengl``
only. Currently deinterlaces. This filter is automatically inserted if