Revision: 47944
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47944
Author:   nazgul
Date:     2012-06-15 11:15:48 +0000 (Fri, 15 Jun 2012)
Log Message:
-----------
2D stabilization didn't work since clip start frame commit

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/movieclip.c
    trunk/blender/source/blender/blenkernel/intern/tracking.c
    trunk/blender/source/blender/compositor/nodes/COM_MovieClipNode.cpp
    
trunk/blender/source/blender/compositor/operations/COM_MovieClipAttributeOperation.cpp
    
trunk/blender/source/blender/nodes/composite/nodes/node_composite_movieclip.c
    
trunk/blender/source/blender/nodes/composite/nodes/node_composite_stabilize2d.c

Modified: trunk/blender/source/blender/blenkernel/intern/movieclip.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/movieclip.c  2012-06-15 
11:03:23 UTC (rev 47943)
+++ trunk/blender/source/blender/blenkernel/intern/movieclip.c  2012-06-15 
11:15:48 UTC (rev 47944)
@@ -773,6 +773,7 @@
        float tloc[2], tscale, tangle;
        short proxy = IMB_PROXY_NONE;
        int render_flag = 0;
+       int clip_framenr = BKE_movieclip_remap_scene_to_clip_frame(clip, 
framenr);
 
        if (clip->flag & MCLIP_USE_PROXY) {
                proxy = rendersize_to_proxy(user, clip->flag);
@@ -799,7 +800,7 @@
 
        stableibuf = cache->stabilized.ibuf;
 
-       BKE_tracking_stabilization_data_get(&clip->tracking, framenr, 
stableibuf->x, stableibuf->y, tloc, &tscale, &tangle);
+       BKE_tracking_stabilization_data_get(&clip->tracking, clip_framenr, 
stableibuf->x, stableibuf->y, tloc, &tscale, &tangle);
 
        /* check for stabilization parameters */
        if (tscale != cache->stabilized.scale ||
@@ -821,11 +822,12 @@
        MovieTracking *tracking = &clip->tracking;
        ImBuf *stableibuf;
        float tloc[2], tscale, tangle;
+       int clip_framenr = BKE_movieclip_remap_scene_to_clip_frame(clip, 
framenr);
 
        if (cache->stabilized.ibuf)
                IMB_freeImBuf(cache->stabilized.ibuf);
 
-       stableibuf = BKE_tracking_stabilize_frame(&clip->tracking, framenr, 
ibuf, tloc, &tscale, &tangle);
+       stableibuf = BKE_tracking_stabilize_frame(&clip->tracking, 
clip_framenr, ibuf, tloc, &tscale, &tangle);
 
        cache->stabilized.ibuf = stableibuf;
 

Modified: trunk/blender/source/blender/blenkernel/intern/tracking.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/tracking.c   2012-06-15 
11:03:23 UTC (rev 47943)
+++ trunk/blender/source/blender/blenkernel/intern/tracking.c   2012-06-15 
11:15:48 UTC (rev 47944)
@@ -3301,6 +3301,7 @@
        return cacheibuf;
 }
 
+/* NOTE: frame number should be in clip space, not scene space */
 void BKE_tracking_stabilization_data_get(MovieTracking *tracking, int framenr, 
int width, int height,
                                          float loc[2], float *scale, float 
*angle)
 {
@@ -3340,6 +3341,7 @@
        }
 }
 
+/* NOTE: frame number should be in clip space, not scene space */
 ImBuf *BKE_tracking_stabilize_frame(MovieTracking *tracking, int framenr, 
ImBuf *ibuf,
                                     float loc[2], float *scale, float *angle)
 {

Modified: trunk/blender/source/blender/compositor/nodes/COM_MovieClipNode.cpp
===================================================================
--- trunk/blender/source/blender/compositor/nodes/COM_MovieClipNode.cpp 
2012-06-15 11:03:23 UTC (rev 47943)
+++ trunk/blender/source/blender/compositor/nodes/COM_MovieClipNode.cpp 
2012-06-15 11:15:48 UTC (rev 47944)
@@ -91,7 +91,9 @@
 
        if (ibuf) {
                if (stab->flag&TRACKING_2D_STABILIZATION) {
-                       
BKE_tracking_stabilization_data_get(&movieClip->tracking, 
context->getFramenumber(), ibuf->x, ibuf->y, loc, &scale, &angle);
+                       int clip_framenr = 
BKE_movieclip_remap_scene_to_clip_frame(movieClip, context->getFramenumber());
+
+                       
BKE_tracking_stabilization_data_get(&movieClip->tracking, clip_framenr, 
ibuf->x, ibuf->y, loc, &scale, &angle);
                }
        }
        

Modified: 
trunk/blender/source/blender/compositor/operations/COM_MovieClipAttributeOperation.cpp
===================================================================
--- 
trunk/blender/source/blender/compositor/operations/COM_MovieClipAttributeOperation.cpp
      2012-06-15 11:03:23 UTC (rev 47943)
+++ 
trunk/blender/source/blender/compositor/operations/COM_MovieClipAttributeOperation.cpp
      2012-06-15 11:15:48 UTC (rev 47944)
@@ -23,6 +23,7 @@
 #include "COM_MovieClipAttributeOperation.h"
 extern "C" {
        #include "BKE_tracking.h"
+       #include "BKE_movieclip.h"
 }
 MovieClipAttributeOperation::MovieClipAttributeOperation(): NodeOperation()
 {
@@ -41,7 +42,8 @@
                scale = 1.0f;
                angle = 0.0f;
                if (clip) {
-                       BKE_tracking_stabilization_data_get(&clip->tracking, 
framenumber, getWidth(), getHeight(), loc, &scale, &angle);
+                       int clip_framenr = 
BKE_movieclip_remap_scene_to_clip_frame(clip, framenumber);
+                       BKE_tracking_stabilization_data_get(&clip->tracking, 
clip_framenr, getWidth(), getHeight(), loc, &scale, &angle);
                }
                switch (this->attribute) {
                case MCA_SCALE:

Modified: 
trunk/blender/source/blender/nodes/composite/nodes/node_composite_movieclip.c
===================================================================
--- 
trunk/blender/source/blender/nodes/composite/nodes/node_composite_movieclip.c   
    2012-06-15 11:03:23 UTC (rev 47943)
+++ 
trunk/blender/source/blender/nodes/composite/nodes/node_composite_movieclip.c   
    2012-06-15 11:15:48 UTC (rev 47944)
@@ -120,8 +120,9 @@
 
                        if (stab->flag & TRACKING_2D_STABILIZATION) {
                                float loc[2], scale, angle;
+                               int clip_framenr = 
BKE_movieclip_remap_scene_to_clip_frame(clip, rd->cfra);
 
-                               
BKE_tracking_stabilization_data_get(&clip->tracking, rd->cfra, stackbuf->x, 
stackbuf->y,
+                               
BKE_tracking_stabilization_data_get(&clip->tracking, clip_framenr, stackbuf->x, 
stackbuf->y,
                                                        loc, &scale, &angle);
 
                                out[1]->vec[0] = loc[0];

Modified: 
trunk/blender/source/blender/nodes/composite/nodes/node_composite_stabilize2d.c
===================================================================
--- 
trunk/blender/source/blender/nodes/composite/nodes/node_composite_stabilize2d.c 
    2012-06-15 11:03:23 UTC (rev 47943)
+++ 
trunk/blender/source/blender/nodes/composite/nodes/node_composite_stabilize2d.c 
    2012-06-15 11:15:48 UTC (rev 47944)
@@ -53,8 +53,9 @@
                CompBuf *cbuf = typecheck_compbuf(in[0]->data, CB_RGBA);
                CompBuf *stackbuf;
                float loc[2], scale, angle;
+               int clip_framenr = 
BKE_movieclip_remap_scene_to_clip_frame(clip, rd->cfra);
 
-               BKE_tracking_stabilization_data_get(&clip->tracking, rd->cfra, 
cbuf->x, cbuf->y, loc, &scale, &angle);
+               BKE_tracking_stabilization_data_get(&clip->tracking, 
clip_framenr, cbuf->x, cbuf->y, loc, &scale, &angle);
 
                stackbuf = node_composit_transform(cbuf, loc[0], loc[1], angle, 
scale, node->custom1);
 

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to