summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Hellström <totte67@users.sourceforge.net>2005-05-04 04:30:09 +0000
committerThomas Hellström <totte67@users.sourceforge.net>2005-05-04 04:30:09 +0000
commit85970e40648817f9af62bf8562b6838897a840a4 (patch)
tree0800f9f28f2854519f8c44a39bfc760d5a76daa0
parent3bdb84af9ee2b4935d423306a30ca1d273d8207a (diff)
downloadxine-lib-85970e40648817f9af62bf8562b6838897a840a4.tar.gz
xine-lib-85970e40648817f9af62bf8562b6838897a840a4.tar.bz2
speed up xx44 alphablending of large transparent areas
CVS patchset: 7519 CVS date: 2005/05/04 04:30:09
-rw-r--r--ChangeLog3
-rw-r--r--src/video_out/alphablend.c5
2 files changed, 6 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index ec93aca7e..734c9fc17 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,11 +4,12 @@ xine-lib (1.0.2)
* fixed xxmc / xvmc mocomp / IDCT rendering errors caused by the big update.
* support --enable-fpic with recent versions of gcc
* clip goom fps value to >= 1 [bug #1193783]
- * fixed xvmc plugin segfault when it tried software blending on nonexistant xv image.
+ * fixed xvmc plugin segfault when it tried software blending on nonexistant xv image
* cleaned up libmpeg2 behaviour on xxmc plugin abrupt software fallback
* use -fno-inline-functions with gcc < 3.4.0 (bug known to be in 3.3.5)
* fix xxmc plugin wanting to change vld xvmc context when stream changes from
non-interlaced to interlaced [bug #1194350]
+ * speed up xx44 alphablending of large transparent areas
xine-lib (1.0.1)
* Big XvMC quality / correctness / cpu-usage fix. [bug #1114517]
diff --git a/src/video_out/alphablend.c b/src/video_out/alphablend.c
index b2ac9f2ac..2f840a31e 100644
--- a/src/video_out/alphablend.c
+++ b/src/video_out/alphablend.c
@@ -1639,7 +1639,10 @@ static int xx44_paletteIndex(xx44_palette_t *p, int color, uint32_t clut)
static void memblend_xx44(uint8_t *mem,uint8_t val, register size_t size, uint8_t mask)
{
- register uint8_t masked_val = val & mask;
+ register uint8_t
+ masked_val;
+
+ if (0 == (masked_val = val & mask)) return;
while(size--) {
if ((*mem & mask) <= masked_val ) *mem = val;