[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [42017] trunk/blender/source/blender/imbuf /intern/anim_movie.c: Fix #29295: Problem with Alpha Channel video in Sequencer and textures

Sergey Sharybin sergey.vfx at gmail.com
Sun Nov 20 17:26:37 CET 2011


Revision: 42017
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42017
Author:   nazgul
Date:     2011-11-20 16:26:37 +0000 (Sun, 20 Nov 2011)
Log Message:
-----------
Fix #29295: Problem with Alpha Channel video in Sequencer and textures

Bug was caused by workaround for old versions of FFmpeg which aren't supported
anymore due to pts stuff.

Removing workarounds for alpha channels.

Modified Paths:
--------------
    trunk/blender/source/blender/imbuf/intern/anim_movie.c

Modified: trunk/blender/source/blender/imbuf/intern/anim_movie.c
===================================================================
--- trunk/blender/source/blender/imbuf/intern/anim_movie.c	2011-11-20 16:21:49 UTC (rev 42016)
+++ trunk/blender/source/blender/imbuf/intern/anim_movie.c	2011-11-20 16:26:37 UTC (rev 42017)
@@ -658,10 +658,6 @@
 		          dst2,
 		          dstStride2);
 		
-		/* workaround: sws_scale bug
-		   sets alpha = 0 and compensate
-		   for altivec-bugs and flipy... */
-		
 		bottom = (unsigned char*) ibuf->rect;
 		top = bottom + ibuf->x * (ibuf->y-1) * 4;
 		
@@ -672,17 +668,17 @@
 			unsigned char tmp[4];
 			unsigned int * tmp_l =
 				(unsigned int*) tmp;
-			tmp[3] = 0xff;
 			
 			for (x = 0; x < w; x++) {
 				tmp[0] = bottom[0];
 				tmp[1] = bottom[1];
 				tmp[2] = bottom[2];
+				tmp[3] = bottom[3];
 				
 				bottom[0] = top[0];
 				bottom[1] = top[1];
 				bottom[2] = top[2];
-				bottom[3] = 0xff;
+				bottom[3] = top[3];
 				
 				*(unsigned int*) top = *tmp_l;
 				
@@ -698,7 +694,6 @@
 		uint8_t* dst2[4]  = { dst[0] + (anim->y - 1)*dstStride[0],
 				      0, 0, 0 };
 		int i;
-		unsigned char* r;
 		
 		sws_scale(anim->img_convert_ctx,
 		          (const uint8_t * const *)input->data,
@@ -707,17 +702,6 @@
 		          anim->pCodecCtx->height,
 		          dst2,
 		          dstStride2);
-		
-		r = (unsigned char*) ibuf->rect;
-		
-		/* workaround sws_scale bug: older version of 
-		   sws_scale set alpha = 0... */
-		if (r[3] == 0) {
-			for (i = 0; i < ibuf->x * ibuf->y; i++) {
-				r[3] = 0xff;
-				r += 4;
-			}
-		}
 	}
 
 	if (filter_y) {




More information about the Bf-blender-cvs mailing list