diff options
author | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2011-04-07 21:08:49 +0000 |
---|---|---|
committer | Uoti Urpala <uau@mplayer2.org> | 2011-05-02 00:36:20 +0300 |
commit | dbde82d0f27819f707a6b35f8c9424653a9dd544 (patch) | |
tree | c1aefbaf8dff67ca667fa5bb8963bc1b37ac1f14 | |
parent | e617653265aeb63cc555761b685ca98a6e2cb80f (diff) | |
download | mpv-dbde82d0f27819f707a6b35f8c9424653a9dd544.tar.bz2 mpv-dbde82d0f27819f707a6b35f8c9424653a9dd544.tar.xz |
sub/spudec: fix artefacts at right border of subtitles
Fix artefacts at right border of scaled bitmap subtitles by clearing
the destination to 0 first if the width is not a multiple of 8.
This is necessary because some of the optimized sub drawing functions
always draw pixels in multiples of 8, so we cannot rely on any "dirt"
in the "unused" borders being ignored.
Note that due to the way rendering works, both alpha and the image need
to be cleared.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@33230 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r-- | sub/spudec.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sub/spudec.c b/sub/spudec.c index f48d47fd2a..dbf956bb25 100644 --- a/sub/spudec.c +++ b/sub/spudec.c @@ -920,6 +920,10 @@ void spudec_draw_scaled(void *me, unsigned int dxs, unsigned int dys, void (*dra } if (spu->scaled_image) { unsigned int x, y; + // needs to be 0-initialized because draw_alpha draws always a + // multiple of 8 pixels. TODO: optimize + if (spu->scaled_width & 7) + memset(spu->scaled_image, 0, 2 * spu->scaled_image_size); if (spu->scaled_width <= 1 || spu->scaled_height <= 1) { goto nothing_to_do; } |