diff options
author | Uoti Urpala <uau@glyph.nonexistent.invalid> | 2009-11-22 14:15:12 +0200 |
---|---|---|
committer | Uoti Urpala <uau@glyph.nonexistent.invalid> | 2009-11-22 14:15:12 +0200 |
commit | 4c552b2e420ba4cb6d888b12360c7bf63e7cd03a (patch) | |
tree | 0bbd2f0627a3abef249c9ad499cd84b1ad560384 /TOOLS/countquant.pl | |
parent | ac8e40b4ff9318c1d607f7158131e091897d07e7 (diff) | |
download | mpv-4c552b2e420ba4cb6d888b12360c7bf63e7cd03a.tar.bz2 mpv-4c552b2e420ba4cb6d888b12360c7bf63e7cd03a.tar.xz |
core: Do OSD/subtitle updates at a more accurate point
OSD contents such as video position and non-libass subtitles were
updated just before feeding a video frame through filters. The updates
were done at that point mainly for the benefit of vf_expand OSD
rendering functionality, which draws the OSD contents when the frame
passes through that filter. However this gave the wrong results for
VO-drawn OSD if the filter chain or VO had any delay or timestamp
manipulation: the OSD contents should reflect the most recent contents
that were _output_ after any filtering, not the last frame that was
fed _into_ the filtering machinery. This issue became more important
after vo_vdpau started buffering frames by default.
Move the OSD updates to be done just before the OSD is drawn, using
the most accurate available information. This fixes the common case
but worsens vf_expand OSD behavior (adding extra latency). A special
case could be added to fall back to the previous behavior when
vf_expand OSD is being used; however I don't consider that a high
priority at the moment especially when other problems with vf_expand
OSD would still remain.
This has little effect on libass-rendered subtitles either way,
because both vf_ass and VO libass rendering use timestamps from the
filter chain and do not rely on separate position updates.
Diffstat (limited to 'TOOLS/countquant.pl')
0 files changed, 0 insertions, 0 deletions