diff options
author | wm4 <wm4@mplayer2.org> | 2011-12-17 07:48:36 +0100 |
---|---|---|
committer | Uoti Urpala <uau@mplayer2.org> | 2011-12-19 21:56:00 +0200 |
commit | 827faa38436f55fbb15b7dce4abcc5c6608a428b (patch) | |
tree | ab9f08a21cbeedf71c52c2618374d831790dea20 /bstr.h | |
parent | 4478acd618e0500a6a81ab893a23280824420a57 (diff) | |
download | mpv-827faa38436f55fbb15b7dce4abcc5c6608a428b.tar.bz2 mpv-827faa38436f55fbb15b7dce4abcc5c6608a428b.tar.xz |
vf_expand: always clear the added borders
Using the "expand" filter makes the image area larger by adding
borders to the video frame. These borders are supposed to be always
black. The filter relied on the borders in its output buffer staying
black without redrawing them for each frame. However, when using
direct rendering, a video filter inserted after vf_expand can draw
into these borders, for example the "unsharp" and "ass" filters. These
changes incorrectly stayed visible in the the following video frames.
Fix this by always clearing the borders in vf_expand. In some cases,
this might be more work than necessary, but vf_expand has no way of
detecting whether a subsequent filter draws into the borders or not,
and this avoids fragile assumptions about the existing contents of the
output buffer(s).
This also deals with frame size changes when config() is called again.
Before this commit, remains of the old video were visible if the new
video frame size was smaller than before.
Since we now always clear the borders, there's no more need for the
complicated code that cleared only the regions that were covered by the
OSD. Delete that.
Diffstat (limited to 'bstr.h')
0 files changed, 0 insertions, 0 deletions