[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [14240] trunk/blender/source/blender/imbuf /intern/anim.c: check for null data when using ffmpegs swscale (for corrupt /partially corrupt videos)

Campbell Barton ideasman42 at gmail.com
Tue Mar 25 21:31:11 CET 2008


Revision: 14240
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14240
Author:   campbellbarton
Date:     2008-03-25 21:30:33 +0100 (Tue, 25 Mar 2008)

Log Message:
-----------
check for null data when using ffmpegs swscale (for corrupt/partially corrupt videos)

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

Modified: trunk/blender/source/blender/imbuf/intern/anim.c
===================================================================
--- trunk/blender/source/blender/imbuf/intern/anim.c	2008-03-25 19:27:49 UTC (rev 14239)
+++ trunk/blender/source/blender/imbuf/intern/anim.c	2008-03-25 20:30:33 UTC (rev 14240)
@@ -784,25 +784,28 @@
 						0, 0, 0 };
 					int i;
 					unsigned char* r;
-
-					sws_scale(anim->img_convert_ctx,
-						  anim->pFrame->data,
-						  anim->pFrame->linesize,
-						  0,
-						  anim->pCodecCtx->height,
-						  dst2,
-						  dstStride2);
-				
-					/* workaround: sws_scale 
-					   sets alpha = 0... */
-				
-					r = (unsigned char*) ibuf->rect;
-
-					for (i = 0; i < ibuf->x * ibuf->y;i++){
-						r[3] = 0xff;
-						r+=4;
+					
+					/* This means the data wasnt read properly, this check stops crashing */
+					if (anim->pFrame->data[0]!=0 || anim->pFrame->data[1]!=0 || anim->pFrame->data[2]!=0 || anim->pFrame->data[3]!=0) {
+						
+						sws_scale(anim->img_convert_ctx,
+							  anim->pFrame->data,
+							  anim->pFrame->linesize,
+							  0,
+							  anim->pCodecCtx->height,
+							  dst2,
+							  dstStride2);
+					
+						/* workaround: sws_scale 
+						   sets alpha = 0... */
+					
+						r = (unsigned char*) ibuf->rect;
+	
+						for (i = 0; i < ibuf->x * ibuf->y;i++){
+							r[3] = 0xff;
+							r+=4;
+						}
 					}
-
 					av_free_packet(&packet);
 					break;
 				}





More information about the Bf-blender-cvs mailing list