[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45068] trunk/blender: == Sequencer ==

Peter Schlaile peter at schlaile.de
Wed Mar 21 19:02:30 CET 2012


Revision: 45068
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45068
Author:   schlaile
Date:     2012-03-21 18:02:29 +0000 (Wed, 21 Mar 2012)
Log Message:
-----------
== Sequencer ==

This adds movieclip input support to the sequencer, thereby making
undistorted and stabilized footage available without a seperate render step.

Also: removes some old cruft code from the sequencer:

* new_tstripdata wasn't used anymore
* StripElems were allocated for SCENE strips on full length, wasting memory
  Added a comment, that hopefully makes things a little bit clearer:
  StripElems are *only* usefull for MOVIE + IMAGE strips for all other strip
  types one can set this pointer to NULL. (If that should cause otherwise
  problems, then the code that doesn't check for NULL is to blame!)

Modified Paths:
--------------
    trunk/blender/release/scripts/presets/interface_theme/back_to_black.xml
    trunk/blender/release/scripts/presets/interface_theme/blender_24x.xml
    trunk/blender/release/scripts/presets/interface_theme/elsyiun.xml
    trunk/blender/release/scripts/presets/interface_theme/hexagon.xml
    trunk/blender/release/scripts/presets/interface_theme/ubuntu_ambiance.xml
    trunk/blender/release/scripts/startup/bl_ui/space_sequencer.py
    trunk/blender/source/blender/blenkernel/BKE_movieclip.h
    trunk/blender/source/blender/blenkernel/BKE_sequencer.h
    trunk/blender/source/blender/blenkernel/intern/movieclip.c
    trunk/blender/source/blender/blenkernel/intern/sequencer.c
    trunk/blender/source/blender/blenloader/intern/readfile.c
    trunk/blender/source/blender/editors/include/UI_resources.h
    trunk/blender/source/blender/editors/interface/resources.c
    trunk/blender/source/blender/editors/space_sequencer/sequencer_add.c
    trunk/blender/source/blender/editors/space_sequencer/sequencer_draw.c
    trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c
    trunk/blender/source/blender/editors/space_sequencer/sequencer_intern.h
    trunk/blender/source/blender/editors/space_sequencer/sequencer_ops.c
    trunk/blender/source/blender/makesdna/DNA_sequence_types.h
    trunk/blender/source/blender/makesdna/DNA_userdef_types.h
    trunk/blender/source/blender/makesrna/RNA_access.h
    trunk/blender/source/blender/makesrna/RNA_enum_types.h
    trunk/blender/source/blender/makesrna/intern/rna_sequencer.c
    trunk/blender/source/blender/makesrna/intern/rna_userdef.c
    trunk/blender/source/blender/windowmanager/intern/wm_operators.c

Modified: trunk/blender/release/scripts/presets/interface_theme/back_to_black.xml
===================================================================
--- trunk/blender/release/scripts/presets/interface_theme/back_to_black.xml	2012-03-21 17:34:31 UTC (rev 45067)
+++ trunk/blender/release/scripts/presets/interface_theme/back_to_black.xml	2012-03-21 18:02:29 UTC (rev 45068)
@@ -412,6 +412,7 @@
                            keyframe="#ff8500"
                            meta_strip="#6d9183"
                            movie_strip="#516987"
+                           movieclip_strip="#20208f"
                            plugin_strip="#7e7e50"
                            scene_strip="#4e983e"
                            transition_strip="#a25f6f"

Modified: trunk/blender/release/scripts/presets/interface_theme/blender_24x.xml
===================================================================
--- trunk/blender/release/scripts/presets/interface_theme/blender_24x.xml	2012-03-21 17:34:31 UTC (rev 45067)
+++ trunk/blender/release/scripts/presets/interface_theme/blender_24x.xml	2012-03-21 18:02:29 UTC (rev 45068)
@@ -412,6 +412,7 @@
                            keyframe="#ff8500"
                            meta_strip="#6d9183"
                            movie_strip="#516987"
+                           movieclip_strip="#20208f"
                            plugin_strip="#7e7e50"
                            scene_strip="#4e983e"
                            transition_strip="#a25f6f"

Modified: trunk/blender/release/scripts/presets/interface_theme/elsyiun.xml
===================================================================
--- trunk/blender/release/scripts/presets/interface_theme/elsyiun.xml	2012-03-21 17:34:31 UTC (rev 45067)
+++ trunk/blender/release/scripts/presets/interface_theme/elsyiun.xml	2012-03-21 18:02:29 UTC (rev 45068)
@@ -412,6 +412,7 @@
                            keyframe="#ff8500"
                            meta_strip="#6d9183"
                            movie_strip="#516987"
+                           movieclip_strip="#20208f"
                            plugin_strip="#7e7e50"
                            scene_strip="#4e983e"
                            transition_strip="#a25f6f"

Modified: trunk/blender/release/scripts/presets/interface_theme/hexagon.xml
===================================================================
--- trunk/blender/release/scripts/presets/interface_theme/hexagon.xml	2012-03-21 17:34:31 UTC (rev 45067)
+++ trunk/blender/release/scripts/presets/interface_theme/hexagon.xml	2012-03-21 18:02:29 UTC (rev 45068)
@@ -412,6 +412,7 @@
                            keyframe="#ff8500"
                            meta_strip="#6d9183"
                            movie_strip="#516987"
+                           movieclip_strip="#20208f"
                            plugin_strip="#7e7e50"
                            scene_strip="#4e983e"
                            transition_strip="#a25f6f"

Modified: trunk/blender/release/scripts/presets/interface_theme/ubuntu_ambiance.xml
===================================================================
--- trunk/blender/release/scripts/presets/interface_theme/ubuntu_ambiance.xml	2012-03-21 17:34:31 UTC (rev 45067)
+++ trunk/blender/release/scripts/presets/interface_theme/ubuntu_ambiance.xml	2012-03-21 18:02:29 UTC (rev 45068)
@@ -412,6 +412,7 @@
                            keyframe="#f47421"
                            meta_strip="#6d9183"
                            movie_strip="#516987"
+                           movieclip_strip="#20208f"
                            plugin_strip="#7e7e50"
                            scene_strip="#4e983e"
                            transition_strip="#a25f6f"

Modified: trunk/blender/release/scripts/startup/bl_ui/space_sequencer.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_ui/space_sequencer.py	2012-03-21 17:34:31 UTC (rev 45067)
+++ trunk/blender/release/scripts/startup/bl_ui/space_sequencer.py	2012-03-21 18:02:29 UTC (rev 45068)
@@ -185,6 +185,12 @@
         else:
             layout.operator_menu_enum("sequencer.scene_strip_add", "scene", text="Scene...")
 
+        if len(bpy.data.movieclips) > 10:
+            layout.operator_context = 'INVOKE_DEFAULT'
+            layout.operator("sequencer.movieclip_strip_add", text="Clips...")
+        else:
+            layout.operator_menu_enum("sequencer.movieclip_strip_add", "clip", text="Clip...")
+
         layout.operator("sequencer.movie_strip_add", text="Movie")
         layout.operator("sequencer.image_strip_add", text="Image")
         layout.operator("sequencer.sound_strip_add", text="Sound")
@@ -534,7 +540,7 @@
         if not strip:
             return False
 
-        return strip.type in {'MOVIE', 'IMAGE', 'SCENE', 'META',
+        return strip.type in {'MOVIE', 'IMAGE', 'SCENE', 'MOVIECLIP', 'META',
                               'ADD', 'SUBTRACT', 'ALPHA_OVER', 'ALPHA_UNDER',
                               'CROSS', 'GAMMA_CROSS', 'MULTIPLY', 'OVER_DROP',
                               'PLUGIN',
@@ -697,7 +703,7 @@
         if not strip:
             return False
 
-        return strip.type in {'MOVIE', 'IMAGE', 'SCENE', 'META',
+        return strip.type in {'MOVIE', 'IMAGE', 'SCENE', 'MOVIECLIP', 'META',
                               'ADD', 'SUBTRACT', 'ALPHA_OVER', 'ALPHA_UNDER',
                               'CROSS', 'GAMMA_CROSS', 'MULTIPLY', 'OVER_DROP',
                               'PLUGIN',
@@ -713,6 +719,15 @@
         col.label(text="Video:")
         col.prop(strip, "strobe")
 
+        if strip.type == 'MOVIECLIP':
+            col = layout.column()
+            col.label(text="Tracker:")
+            col.prop(strip, "stabilize2d")
+
+            col = layout.column()
+            col.label(text="Distortion:")
+            col.prop(strip, "undistort")
+   
         row = layout.row()
         row.label(text="Flip:")
         row.prop(strip, "use_flip_x", text="X")

Modified: trunk/blender/source/blender/blenkernel/BKE_movieclip.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_movieclip.h	2012-03-21 17:34:31 UTC (rev 45067)
+++ trunk/blender/source/blender/blenkernel/BKE_movieclip.h	2012-03-21 18:02:29 UTC (rev 45068)
@@ -51,6 +51,7 @@
 struct ImBuf *BKE_movieclip_get_stable_ibuf(struct MovieClip *clip, struct MovieClipUser *user, float loc[2], float *scale, float *angle, int postprocess_flag);
 struct ImBuf *BKE_movieclip_get_ibuf_flag(struct MovieClip *clip, struct MovieClipUser *user, int flag, int cache_flag);
 void BKE_movieclip_get_size(struct MovieClip *clip, struct MovieClipUser *user, int *width, int *height);
+int BKE_movieclip_get_duration(struct MovieClip *clip);
 void BKE_movieclip_aspect(struct MovieClip *clip, float *aspx, float *aspy);
 int BKE_movieclip_has_frame(struct MovieClip *clip, struct MovieClipUser *user);
 void BKE_movieclip_user_set_frame(struct MovieClipUser *user, int framenr);

Modified: trunk/blender/source/blender/blenkernel/BKE_sequencer.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_sequencer.h	2012-03-21 17:34:31 UTC (rev 45067)
+++ trunk/blender/source/blender/blenkernel/BKE_sequencer.h	2012-03-21 18:02:29 UTC (rev 45068)
@@ -187,7 +187,6 @@
 const char *give_seqname(struct Sequence *seq);
 void calc_sequence(struct Scene *scene, struct Sequence *seq);
 void calc_sequence_disp(struct Scene *scene, struct Sequence *seq);
-void new_tstripdata(struct Sequence *seq);
 void reload_sequence_new_file(struct Scene *scene, struct Sequence * seq, int lock_range);
 void sort_seq(struct Scene *scene);
 void build_seqar_cb(struct ListBase *seqbase, struct Sequence  ***seqar, int *totseq,

Modified: trunk/blender/source/blender/blenkernel/intern/movieclip.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/movieclip.c	2012-03-21 17:34:31 UTC (rev 45067)
+++ trunk/blender/source/blender/blenkernel/intern/movieclip.c	2012-03-21 18:02:29 UTC (rev 45068)
@@ -861,6 +861,11 @@
 	}
 }
 
+int BKE_movieclip_get_duration(struct MovieClip *clip)
+{
+	return IMB_anim_get_duration(clip->anim, clip->proxy.tc);
+}
+
 void BKE_movieclip_aspect(MovieClip *clip, float *aspx, float *aspy)
 {
 	*aspx= *aspy= 1.0;

Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c	2012-03-21 17:34:31 UTC (rev 45067)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c	2012-03-21 18:02:29 UTC (rev 45068)
@@ -39,6 +39,7 @@
 #include "MEM_CacheLimiterC-Api.h"
 
 #include "DNA_sequence_types.h"
+#include "DNA_movieclip_types.h"
 #include "DNA_scene_types.h"
 #include "DNA_anim_types.h"
 #include "DNA_object_types.h"
@@ -57,6 +58,7 @@
 #include "BKE_image.h"
 #include "BKE_main.h"
 #include "BKE_sequencer.h"
+#include "BKE_movieclip.h"
 #include "BKE_fcurve.h"
 #include "BKE_scene.h"
 #include "BKE_utildefines.h"
@@ -127,16 +129,6 @@
  * alloc / free functions
  * ********************************************************************** */
 
-
-
-void new_tstripdata(Sequence *seq)
-{
-	if(seq->strip) {
-		seq->strip->len= seq->len;
-	}
-}
-
-
 /* free */
 
 static void free_proxy_seq(Sequence *seq)
@@ -621,11 +613,6 @@
 		else {
 			calc_sequence_disp(scene, seq);
 		}
-
-		if(seq->strip && seq->len!=seq->strip->len) {
-			new_tstripdata(seq);
-		}
-
 	}
 	else {
 		if(seq->type==SEQ_META) {
@@ -642,10 +629,6 @@
 				seq->len = max-min;
 				seq->len -= seq->anim_startofs;
 				seq->len -= seq->anim_endofs;
-
-				if(seq->strip && seq->len!=seq->strip->len) {
-					new_tstripdata(seq);
-				}
 			}
 			seq_update_sound_bounds_recursive(scene, seq);
 		}
@@ -671,14 +654,6 @@
 		prev_enddisp= seq->enddisp;
 	}
 
-
-	new_tstripdata(seq);
-
-	if (ELEM3(seq->type, SEQ_SCENE, SEQ_META, SEQ_IMAGE)==0) {
-		BLI_join_dirfile(str, sizeof(str), seq->strip->dir, seq->strip->stripdata->name);
-		BLI_path_abs(str, G.main->name);
-	}
-
 	switch(seq->type) {
 	case SEQ_IMAGE:
 	{
@@ -691,10 +666,13 @@
 		if (seq->len < 0) {
 			seq->len = 0;
 		}
-		seq->strip->len = seq->len;
 		break;
 	}
 	case SEQ_MOVIE:
+		BLI_join_dirfile(str, sizeof(str), seq->strip->dir, 
+				 seq->strip->stripdata->name);

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list