Revision: 15389
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15389
Author:   campbellbarton
Date:     2008-06-30 00:08:23 +0200 (Mon, 30 Jun 2008)

Log Message:
-----------
svn  merge  -r15360:HEAD 
https://svn.blender.org/svnroot/bf-blender/trunk/blender/

Modified Paths:
--------------
    branches/apricot/intern/iksolver/intern/IK_QTask.h
    branches/apricot/intern/moto/include/MT_random.h
    branches/apricot/intern/moto/intern/MT_random.cpp
    branches/apricot/source/blender/blenkernel/intern/image.c
    branches/apricot/source/blender/blenkernel/intern/ipo.c
    branches/apricot/source/blender/blenkernel/intern/text.c
    branches/apricot/source/blender/imbuf/intern/IMB_anim.h
    branches/apricot/source/blender/imbuf/intern/anim.c
    branches/apricot/source/blender/makesdna/DNA_actuator_types.h
    branches/apricot/source/blender/makesdna/DNA_userdef_types.h
    branches/apricot/source/blender/nodes/intern/CMP_nodes/CMP_math.c
    branches/apricot/source/blender/src/buttons_logic.c
    branches/apricot/source/blender/src/drawaction.c
    branches/apricot/source/blender/src/drawview.c
    branches/apricot/source/blender/src/editaction.c
    branches/apricot/source/blender/src/editfont.c
    branches/apricot/source/blender/src/poseobject.c
    branches/apricot/source/blender/src/space.c
    branches/apricot/source/blender/src/view.c
    branches/apricot/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
    branches/apricot/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp
    branches/apricot/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.h
    branches/apricot/source/gameengine/Converter/KX_ConvertActuators.cpp
    branches/apricot/source/gameengine/GameLogic/SCA_2DFilterActuator.cpp
    branches/apricot/source/gameengine/GameLogic/SCA_2DFilterActuator.h
    branches/apricot/source/gameengine/GameLogic/SCA_PythonController.cpp
    branches/apricot/source/gameengine/GameLogic/SCA_PythonController.h
    branches/apricot/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp
    branches/apricot/source/gameengine/GamePlayer/common/GPC_RenderTools.h
    branches/apricot/source/gameengine/GamePlayer/ghost/GPG_Application.cpp
    branches/apricot/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp
    branches/apricot/source/gameengine/Ketsji/KX_GameObject.cpp
    branches/apricot/source/gameengine/Ketsji/KX_GameObject.h
    branches/apricot/source/gameengine/PyDoc/KX_GameObject.py
    branches/apricot/source/gameengine/PyDoc/SCA_PythonController.py
    branches/apricot/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp
    branches/apricot/source/gameengine/Rasterizer/RAS_2DFilterManager.h
    branches/apricot/source/gameengine/Rasterizer/RAS_IRenderTools.h
    
branches/apricot/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp
    
branches/apricot/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.cpp

Modified: branches/apricot/intern/iksolver/intern/IK_QTask.h
===================================================================
--- branches/apricot/intern/iksolver/intern/IK_QTask.h  2008-06-29 21:52:23 UTC 
(rev 15388)
+++ branches/apricot/intern/iksolver/intern/IK_QTask.h  2008-06-29 22:08:23 UTC 
(rev 15389)
@@ -74,7 +74,7 @@
 
        virtual bool PositionTask() const { return false; }
 
-       virtual void Scale(float scale) {}
+       virtual void Scale(float) {}
 
 protected:
        int m_id;

Modified: branches/apricot/intern/moto/include/MT_random.h
===================================================================
--- branches/apricot/intern/moto/include/MT_random.h    2008-06-29 21:52:23 UTC 
(rev 15388)
+++ branches/apricot/intern/moto/include/MT_random.h    2008-06-29 22:08:23 UTC 
(rev 15389)
@@ -31,10 +31,10 @@
 
 #include <limits.h>
 
-#define MT_RAND_MAX ULONG_MAX
+#define MT_RAND_MAX UINT_MAX
 
-extern void          MT_srand(unsigned long);
-extern unsigned long MT_rand();
+extern void          MT_srand(unsigned int);
+extern unsigned int  MT_rand();
 
 #endif
 

Modified: branches/apricot/intern/moto/intern/MT_random.cpp
===================================================================
--- branches/apricot/intern/moto/intern/MT_random.cpp   2008-06-29 21:52:23 UTC 
(rev 15388)
+++ branches/apricot/intern/moto/intern/MT_random.cpp   2008-06-29 22:08:23 UTC 
(rev 15389)
@@ -76,11 +76,11 @@
 #define TEMPERING_SHIFT_T(y)  (y << 15)
 #define TEMPERING_SHIFT_L(y)  (y >> 18)
 
-static unsigned long mt[N]; /* the array for the state vector  */
+static unsigned int mt[N]; /* the array for the state vector  */
 static int mti = N+1; /* mti==N+1 means mt[N] is not initialized */
 
 /* initializing the array with a NONZERO seed */
-void MT_srand(unsigned long seed)
+void MT_srand(unsigned int seed)
 {
     /* setting initial seeds to mt[N] using         */
     /* the generator Line 25 of Table 1 in          */
@@ -91,12 +91,12 @@
         mt[mti] = (69069 * mt[mti-1]) & 0xffffffff;
 }
 
-unsigned long MT_rand()
+unsigned int MT_rand()
 {
-    static unsigned long mag01[2] = { 0x0, MATRIX_A };
+    static unsigned int mag01[2] = { 0x0, MATRIX_A };
     /* mag01[x] = x * MATRIX_A  for x=0,1 */
 
-    unsigned long y;
+    unsigned int y;
 
     if (mti >= N) { /* generate N words at one time */
         int kk;

Modified: branches/apricot/source/blender/blenkernel/intern/image.c
===================================================================
--- branches/apricot/source/blender/blenkernel/intern/image.c   2008-06-29 
21:52:23 UTC (rev 15388)
+++ branches/apricot/source/blender/blenkernel/intern/image.c   2008-06-29 
22:08:23 UTC (rev 15389)
@@ -859,8 +859,8 @@
                        extension= ".bmp";
        }
        else if(G.have_libtiff && (imtype==R_TIFF)) {
-               if(!BLI_testextensie(string, ".tif"))
-                       extension= ".tif";
+               if(!BLI_testextensie(string, ".tif") && 
+                       !BLI_testextensie(string, ".tiff")) extension= ".tif";
        }
 #ifdef WITH_OPENEXR
        else if( ELEM(imtype, R_OPENEXR, R_MULTILAYER)) {

Modified: branches/apricot/source/blender/blenkernel/intern/ipo.c
===================================================================
--- branches/apricot/source/blender/blenkernel/intern/ipo.c     2008-06-29 
21:52:23 UTC (rev 15388)
+++ branches/apricot/source/blender/blenkernel/intern/ipo.c     2008-06-29 
22:08:23 UTC (rev 15389)
@@ -1882,7 +1882,7 @@
                /* yafray: aperture & focal distance params */
                switch(icu->adrcode) {
                case CAM_LENS:
-                       icu->ymin= 5.0;
+                       icu->ymin= 1.0;
                        icu->ymax= 1000.0;
                        break;
                case CAM_STA:

Modified: branches/apricot/source/blender/blenkernel/intern/text.c
===================================================================
--- branches/apricot/source/blender/blenkernel/intern/text.c    2008-06-29 
21:52:23 UTC (rev 15388)
+++ branches/apricot/source/blender/blenkernel/intern/text.c    2008-06-29 
22:08:23 UTC (rev 15389)
@@ -942,7 +942,8 @@
        if (!text) return NULL;
        if (!text->curl) return NULL;
        if (!text->sell) return NULL;
-               
+       if (!text->lines.first) return NULL;
+
        linef= text->lines.first;
        charf= 0;
                

Modified: branches/apricot/source/blender/imbuf/intern/IMB_anim.h
===================================================================
--- branches/apricot/source/blender/imbuf/intern/IMB_anim.h     2008-06-29 
21:52:23 UTC (rev 15388)
+++ branches/apricot/source/blender/imbuf/intern/IMB_anim.h     2008-06-29 
22:08:23 UTC (rev 15389)
@@ -183,8 +183,9 @@
        AVFormatContext *pFormatCtx;
        AVCodecContext *pCodecCtx;
        AVCodec *pCodec;
+       AVFrame *pFrame;
        AVFrame *pFrameRGB;
-       AVFrame *pFrame;
+       AVFrame *pFrameDeinterlaced;
        struct SwsContext *img_convert_ctx;
        int videoStream;
 #endif

Modified: branches/apricot/source/blender/imbuf/intern/anim.c
===================================================================
--- branches/apricot/source/blender/imbuf/intern/anim.c 2008-06-29 21:52:23 UTC 
(rev 15388)
+++ branches/apricot/source/blender/imbuf/intern/anim.c 2008-06-29 22:08:23 UTC 
(rev 15389)
@@ -600,6 +600,7 @@
        anim->videoStream = videoStream;
 
        anim->pFrame = avcodec_alloc_frame();
+       anim->pFrameDeinterlaced = avcodec_alloc_frame();
        anim->pFrameRGB = avcodec_alloc_frame();
 
        if (avpicture_get_size(PIX_FMT_BGR32, anim->x, anim->y)
@@ -609,10 +610,20 @@
                avcodec_close(anim->pCodecCtx);
                av_close_input_file(anim->pFormatCtx);
                av_free(anim->pFrameRGB);
+               av_free(anim->pFrameDeinterlaced);
                av_free(anim->pFrame);
                return -1;
        }
 
+       if (anim->ib_flags & IB_animdeinterlace) {
+               avpicture_fill((AVPicture*) anim->pFrameDeinterlaced, 
+                              MEM_callocN(avpicture_get_size(
+                                                  anim->pCodecCtx->pix_fmt,
+                                                  anim->x, anim->y), 
+                                          "ffmpeg deinterlace"), 
+                              anim->pCodecCtx->pix_fmt, anim->x, anim->y);
+       }
+
        if (pCodecCtx->has_b_frames) {
                anim->preseek = 25; /* FIXME: detect gopsize ... */
        } else {
@@ -644,7 +655,7 @@
 
        ibuf = IMB_allocImBuf(anim->x, anim->y, 24, IB_rect, 0);
 
-       avpicture_fill((AVPicture *)anim->pFrameRGB, 
+       avpicture_fill((AVPicture*) anim->pFrameRGB, 
                       (unsigned char*) ibuf->rect, 
                       PIX_FMT_BGR32, anim->x, anim->y);
 
@@ -723,15 +734,29 @@
                        } 
 
                        if(frameFinished && pos_found == 1) {
+                               AVFrame * input = anim->pFrame;
+
+                               /* This means the data wasnt read properly, 
+                                  this check stops crashing */
+                               if (input->data[0]==0 && input->data[1]==0 
+                                   && input->data[2]==0 && input->data[3]==0){
+                                       av_free_packet(&packet);
+                                       break;
+                               }
+
                                if (anim->ib_flags & IB_animdeinterlace) {
                                        if (avpicture_deinterlace(
+                                                   (AVPicture*) 
+                                                   anim->pFrameDeinterlaced,
+                                                   (const AVPicture*)
                                                    anim->pFrame,
-                                                   anim->pFrame,
                                                    anim->pCodecCtx->pix_fmt,
                                                    anim->pCodecCtx->width,
                                                    anim->pCodecCtx->height)
                                            < 0) {
                                                filter_y = 1;
+                                       } else {
+                                               input = 
anim->pFrameDeinterlaced;
                                        }
                                }
 
@@ -748,8 +773,8 @@
                                        unsigned char* top;
 
                                        sws_scale(anim->img_convert_ctx,
-                                                 anim->pFrame->data,
-                                                 anim->pFrame->linesize,
+                                                 input->data,
+                                                 input->linesize,
                                                  0,
                                                  anim->pCodecCtx->height,
                                                  dst2,
@@ -806,27 +831,25 @@
                                        int i;
                                        unsigned char* r;
                                        
-                                       /* 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);
+                                       sws_scale(anim->img_convert_ctx,
+                                                 input->data,
+                                                 input->linesize,
+                                                 0,
+                                                 anim->pCodecCtx->height,
+                                                 dst2,
+                                                 dstStride2);
                                        
-                                               /* workaround: sws_scale 
-                                                  sets alpha = 0... */
+                                       /* 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;
-                                               }
+                                       r = (unsigned char*) ibuf->rect;
+                                       
+                                       for (i = 0; i < ibuf->x * ibuf->y;i++){
+                                               r[3] = 0xff;
+                                               r+=4;
                                        }
+                                       
                                        av_free_packet(&packet);
                                        break;
                                }
@@ -851,6 +874,11 @@
                av_close_input_file(anim->pFormatCtx);
                av_free(anim->pFrameRGB);
                av_free(anim->pFrame);
+
+               if (anim->ib_flags & IB_animdeinterlace) {
+                       MEM_freeN(anim->pFrameDeinterlaced->data[0]);
+               }
+               av_free(anim->pFrameDeinterlaced);
                sws_freeContext(anim->img_convert_ctx);
        }
        anim->duration = 0;

Modified: branches/apricot/source/blender/makesdna/DNA_actuator_types.h
===================================================================
--- branches/apricot/source/blender/makesdna/DNA_actuator_types.h       
2008-06-29 21:52:23 UTC (rev 15388)
+++ branches/apricot/source/blender/makesdna/DNA_actuator_types.h       
2008-06-29 22:08:23 UTC (rev 15389)
@@ -192,11 +192,13 @@
 } bVisibilityActuator;
 
 typedef struct bTwoDFilterActuator{
-       char pad[4];
-       /* Tells what type of 2D Filter*/
+       char pad[2];
+       /* bitwise flag for enabling or disabling depth(bit 0) and 
luminance(bit 1) */
+       short texture_flag;
+       /* Tells what type of 2D Filter */
        short type;
        /* (flag == 0) means 2D filter is activate and
-          (flag != 0) means 2D filter is inactive*/
+          (flag != 0) means 2D filter is inactive */
        short flag;
        int   int_arg;
        /* a float argument */

Modified: branches/apricot/source/blender/makesdna/DNA_userdef_types.h
===================================================================
--- branches/apricot/source/blender/makesdna/DNA_userdef_types.h        
2008-06-29 21:52:23 UTC (rev 15388)
+++ branches/apricot/source/blender/makesdna/DNA_userdef_types.h        
2008-06-29 22:08:23 UTC (rev 15389)
@@ -312,7 +312,7 @@
 #define        USER_DUP_ACT                    (1 << 10)
 
 /* gameflags */
-#define USER_VERTEX_ARRAYS             1
+#define USER_DEPRECATED_FLAG   1
 #define USER_DISABLE_SOUND             2
 #define USER_DISABLE_MIPMAP            4
 

Modified: branches/apricot/source/blender/nodes/intern/CMP_nodes/CMP_math.c
===================================================================
--- branches/apricot/source/blender/nodes/intern/CMP_nodes/CMP_math.c   
2008-06-29 21:52:23 UTC (rev 15388)
+++ branches/apricot/source/blender/nodes/intern/CMP_nodes/CMP_math.c   
2008-06-29 22:08:23 UTC (rev 15389)
@@ -57,7 +57,7 @@
                break; 
        case 3: /* Divide */
                {
-                       if(in[1]==0)    /* We don't want to divide by zero. */
+                       if(in2[0]==0)   /* We don't want to divide by zero. */
                                out[0]= 0.0;
                        else
                                out[0]= in[0] / in2[0];


@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to