From f8431e459f15b51d3f14f2228e8589c76c723f9b Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Sun, 20 Nov 2011 16:26:37 +0000 Subject: 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. --- source/blender/imbuf/intern/anim_movie.c | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) (limited to 'source/blender/imbuf') diff --git a/source/blender/imbuf/intern/anim_movie.c b/source/blender/imbuf/intern/anim_movie.c index 642b84f4897..8928774dcb4 100644 --- a/source/blender/imbuf/intern/anim_movie.c +++ b/source/blender/imbuf/intern/anim_movie.c @@ -658,10 +658,6 @@ static void ffmpeg_postprocess(struct anim * anim) 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 @@ static void ffmpeg_postprocess(struct anim * anim) 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 @@ static void ffmpeg_postprocess(struct anim * anim) 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 @@ static void ffmpeg_postprocess(struct anim * anim) 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) { -- cgit v1.2.3