Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2012-03-26 19:57:00 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2012-03-26 19:57:00 +0400
commitadbe628a1b6dfe4f61ce56fede9cc9ebba19caa7 (patch)
tree00eaa7d02e2736fda6214421ead71ef559f07cca /source/blender/blenkernel/intern/sequencer.c
parent3d5111a5edba9e0e4947aba866cba083a20853a0 (diff)
Fix crash of Refresh Sequencer when some Movie / MovieClip strips doesn't have animation opened
Diffstat (limited to 'source/blender/blenkernel/intern/sequencer.c')
-rw-r--r--source/blender/blenkernel/intern/sequencer.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c
index 18749d7b5a6..94069f94f4d 100644
--- a/source/blender/blenkernel/intern/sequencer.c
+++ b/source/blender/blenkernel/intern/sequencer.c
@@ -4007,3 +4007,31 @@ void seqbase_dupli_recursive(Scene *scene, Scene *scene_to, ListBase *nseqbase,
}
}
}
+
+void seq_update_sequence_length(Scene *scene, Editing *ed, Sequence *seq)
+{
+ int changed = FALSE;
+
+ switch (seq->type) {
+ case SEQ_SCENE:
+ seq->len = seq->scene->r.efra - seq->scene->r.sfra + 1;
+ changed = TRUE;
+ break;
+ case SEQ_MOVIECLIP:
+ seq->len = BKE_movieclip_get_duration(seq->clip);
+ changed = TRUE;
+ break;
+ case SEQ_MOVIE:
+ seq_open_anim_file(seq);
+ seq->len = IMB_anim_get_duration(seq->anim, IMB_TC_RECORD_RUN);
+ changed = TRUE;
+ break;
+ }
+
+ if (changed) {
+ calc_sequence_disp(scene, seq);
+
+ if (seq_test_overlap(ed->seqbasep, seq))
+ shuffle_seq(ed->seqbasep, seq, scene);
+ }
+}