[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