diff options
Diffstat (limited to 'source/blender/compositor/operations/COM_MovieClipAttributeOperation.cpp')
-rw-r--r-- | source/blender/compositor/operations/COM_MovieClipAttributeOperation.cpp | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/source/blender/compositor/operations/COM_MovieClipAttributeOperation.cpp b/source/blender/compositor/operations/COM_MovieClipAttributeOperation.cpp index a81288be3f7..662212567de 100644 --- a/source/blender/compositor/operations/COM_MovieClipAttributeOperation.cpp +++ b/source/blender/compositor/operations/COM_MovieClipAttributeOperation.cpp @@ -23,8 +23,9 @@ #include "COM_MovieClipAttributeOperation.h" extern "C" { #include "BKE_tracking.h" + #include "BKE_movieclip.h" } -MovieClipAttributeOperation::MovieClipAttributeOperation(): NodeOperation() +MovieClipAttributeOperation::MovieClipAttributeOperation() : NodeOperation() { this->addOutputSocket(COM_DT_VALUE); this->valueSet = false; @@ -41,21 +42,22 @@ void MovieClipAttributeOperation::executePixel(float *outputValue, float x, floa scale = 1.0f; angle = 0.0f; if (clip) { - BKE_tracking_stabilization_data(&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: - this->value = scale; - break; - case MCA_ANGLE: - this->value = angle; - break; - case MCA_X: - this->value = loc[0]; - break; - case MCA_Y: - this->value = loc[1]; - break; + case MCA_SCALE: + this->value = scale; + break; + case MCA_ANGLE: + this->value = angle; + break; + case MCA_X: + this->value = loc[0]; + break; + case MCA_Y: + this->value = loc[1]; + break; } valueSet = true; } |