Mercurial > mplayer.hg
changeset 33143:1cad23803d94
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.
author | reimar |
---|---|
date | Thu, 07 Apr 2011 21:08:49 +0000 |
parents | 3aa60275d74f |
children | a2a32138597b |
files | sub/spudec.c |
diffstat | 1 files changed, 4 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/sub/spudec.c Wed Apr 06 22:11:27 2011 +0000 +++ b/sub/spudec.c Thu Apr 07 21:08:49 2011 +0000 @@ -919,6 +919,10 @@ } 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; }