# HG changeset patch # User reimar # Date 1302210529 0 # Node ID 1cad23803d9463c2bb53538678f862f8f2e3a70c # Parent 3aa60275d74f671b0e451de44aa0be80c2852076 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. diff -r 3aa60275d74f -r 1cad23803d94 sub/spudec.c --- 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; }