diff options
author | Niklas Haas <git@nand.wakku.to> | 2016-04-16 18:14:32 +0200 |
---|---|---|
committer | Niklas Haas <git@nand.wakku.to> | 2016-05-15 20:42:02 +0200 |
commit | 070edd73000ca273289d1538c5513509b1b034b7 (patch) | |
tree | 32ff8157c7312a5ae238d19e1abdddcd8b3c9e58 /DOCS | |
parent | 3d4889e91e7ae519e7fc44911974a52d1770e249 (diff) | |
download | mpv-070edd73000ca273289d1538c5513509b1b034b7.tar.bz2 mpv-070edd73000ca273289d1538c5513509b1b034b7.tar.xz |
vo_opengl: add hooks and rework pass_read_video
The hook mechanism allows arbitrary processing stages to get dispatched
whenever certain named textures have been "finalized" by the code.
This is mostly meant to serve as a change that opens up the internal
processing in pass_read_video to user scripts, but as a side benefit all
of the code dealing with offsets and plane alignment and other such
confusing things has been rewritten.
This hook mechanism is powerful enough to cover the needs of both
debanding and prescaling (and more), so as a result they can be removed
from pass_read_video entirely and implemented through hooks.
Some avenues for optimization:
- The prescale hook is currently somewhat distributed code-wise. It might be
cleaner to split it into superxbr and NNEDI3 hooks which can each be
self-contained.
- It might be possible to move a large part of the hook code out to an
external file (including the hook definitions for debanding and
prescaling), which would be very much desired.
- Currently, some stages (chroma merging, integer conversion) will
*always* run even if unnecessary. I'm planning another series of
refactors (deferred img_tex) to allow dropping unnecessary shader
stages like these, but that's probably some ways away. In the meantime
it would be doable to re-add some of the logic to skip these stages if
we know we don't need them.
- More hook locations could be added (?)
Diffstat (limited to 'DOCS')
0 files changed, 0 insertions, 0 deletions