diff options
author | wm4 <wm4@nowhere> | 2015-11-09 20:49:30 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2015-11-09 20:51:57 +0100 |
commit | 3dc0f2ecf033718a3a5d4b7acc41d144839fb7dc (patch) | |
tree | b15f1ef53801fbcdb6819cd460f7217bf84127d1 /DOCS | |
parent | eeb5f987585b47b2d5828cac0f2d90e0c503ce4c (diff) |
vo_opengl_cb: make operation more similar to normal VOs
vo_opengl_cb is a special case, because we somehow have to render video
asynchronously, all while "trusting" the API user to do it correctly.
This didn't quite work, and a while ago a compromise using a timeout to
prevent theoretically possible deadlocks was added.
Make it even more synchronous. Basically, go all the way, and
synchronize rendering between VO and user renderer thread to the
full extent possible.
This means the silly frame queue is dropped, and we event attempt to
synchronize the GL SwapBuffer call (via mpv_opengl_cb_report_flip()).
The changes introduced with commit dc33eb56 are effectively dropped. I
don't even remember if they mattered.
In the future, we might make all VOs fetch asynchronously from a frame
queue, which would mostly remove the differences between vo_opengl and
vo_opengl_cb, but this will take a while (if it will even be done).
Diffstat (limited to 'DOCS')
-rw-r--r-- | DOCS/interface-changes.rst | 2 | ||||
-rw-r--r-- | DOCS/man/vo.rst | 21 |
2 files changed, 2 insertions, 21 deletions
diff --git a/DOCS/interface-changes.rst b/DOCS/interface-changes.rst index fa041fc534..b81312f8e9 100644 --- a/DOCS/interface-changes.rst +++ b/DOCS/interface-changes.rst @@ -19,6 +19,8 @@ Interface changes :: + --- mpv 0.13.0 --- + - remove VO opengl-cb frame queue suboptions (no replacement) --- mpv 0.12.0 --- - remove --use-text-osd (useless; fontconfig isn't a requirement anymore, and text rendering is also lazily initialized) diff --git a/DOCS/man/vo.rst b/DOCS/man/vo.rst index 6d90046ea2..f59b9cbea7 100644 --- a/DOCS/man/vo.rst +++ b/DOCS/man/vo.rst @@ -1089,27 +1089,6 @@ Available video output drivers are: ``opengl-cb`` For use with libmpv direct OpenGL embedding; useless in any other contexts. (See ``<mpv/opengl_cb.h>``.) - Usually, ``opengl-cb`` renders frames asynchronously by client and this - can cause some frame drops. In order to provide a way to handle this - situation, ``opengl-cb`` has its own frame queue and calls update callback - more frequently if the queue is not empty regardless of existence of new frame. - Once the queue is filled, ``opengl-cb`` drops frames automatically. - - With default options, ``opengl-cb`` renders only the latest frame and drops - all frames handed over while waiting render function after update callback. - - ``frame-queue-size=<1..100>`` - The maximum count of frames which the frame queue can hold (default: 1) - - ``frame-drop-mode=<pop|clear|block>`` - Select the behavior when the frame queue is full. - - pop - Drop the oldest frame in the frame queue. - clear - Drop all frames in the frame queue. - block - Wait for a short time, behave like ``clear`` on timeout. (default) This also supports many of the suboptions the ``opengl`` VO has. Run ``mpv --vo=opengl-cb:help`` for a list. |