[Bf-blender-cvs] [7ccc7ef61fd] master: VSE: don't add crop and transform data for sound strips

Richard Antalik noreply at git.blender.org
Fri May 31 01:26:01 CEST 2019


Commit: 7ccc7ef61fde38e517d730cef05242cc150126d1
Author: Richard Antalik
Date:   Thu May 30 15:19:02 2019 -0700
Branches: master
https://developer.blender.org/rB7ccc7ef61fde38e517d730cef05242cc150126d1

VSE: don't add crop and transform data for sound strips

This also fixes commit rB1fd7b380f4cf8a0489b405de2819f228a4da5ea2 which
didn't do allocation for effect strips properly.

Reviewed By: brecht, campbellbarton

Differential Revision: https://developer.blender.org/D4970

===================================================================

M	source/blender/blenkernel/BKE_sequencer.h
M	source/blender/blenkernel/intern/sequencer.c
M	source/blender/blenloader/intern/versioning_280.c
M	source/blender/editors/space_sequencer/sequencer_add.c
M	source/blender/editors/space_sequencer/sequencer_edit.c
M	source/blender/makesrna/intern/rna_sequencer_api.c

===================================================================

diff --git a/source/blender/blenkernel/BKE_sequencer.h b/source/blender/blenkernel/BKE_sequencer.h
index 807c4a93654..c62744842ce 100644
--- a/source/blender/blenkernel/BKE_sequencer.h
+++ b/source/blender/blenkernel/BKE_sequencer.h
@@ -459,7 +459,7 @@ typedef struct SeqLoadInfo {
 /* use as an api function */
 typedef struct Sequence *(*SeqLoadFunc)(struct bContext *, ListBase *, struct SeqLoadInfo *);
 
-struct Sequence *BKE_sequence_alloc(ListBase *lb, int cfra, int machine);
+struct Sequence *BKE_sequence_alloc(ListBase *lb, int cfra, int machine, int type);
 
 void BKE_sequence_alpha_mode_from_extension(struct Sequence *seq);
 void BKE_sequence_init_colorspace(struct Sequence *seq);
diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c
index 827d7343aad..ec8a2520461 100644
--- a/source/blender/blenkernel/intern/sequencer.c
+++ b/source/blender/blenkernel/intern/sequencer.c
@@ -5353,16 +5353,20 @@ static void seq_load_apply(Main *bmain, Scene *scene, Sequence *seq, SeqLoadInfo
   }
 }
 
-static Strip *seq_strip_alloc(void)
+static Strip *seq_strip_alloc(int type)
 {
   Strip *strip = MEM_callocN(sizeof(Strip), "strip");
-  strip->transform = MEM_callocN(sizeof(struct StripTransform), "StripTransform");
-  strip->crop = MEM_callocN(sizeof(struct StripCrop), "StripCrop");
 
+  if (ELEM(type, SEQ_TYPE_SOUND_RAM, SEQ_TYPE_SOUND_HD) == 0) {
+    strip->transform = MEM_callocN(sizeof(struct StripTransform), "StripTransform");
+    strip->crop = MEM_callocN(sizeof(struct StripCrop), "StripCrop");
+  }
+
+  strip->us = 1;
   return strip;
 }
 
-Sequence *BKE_sequence_alloc(ListBase *lb, int cfra, int machine)
+Sequence *BKE_sequence_alloc(ListBase *lb, int cfra, int machine, int type)
 {
   Sequence *seq;
 
@@ -5381,7 +5385,9 @@ Sequence *BKE_sequence_alloc(ListBase *lb, int cfra, int machine)
   seq->volume = 1.0f;
   seq->pitch = 1.0f;
   seq->scene_sound = NULL;
+  seq->type = type;
 
+  seq->strip = seq_strip_alloc(type);
   seq->stereo3d_format = MEM_callocN(sizeof(Stereo3dFormat), "Sequence Stereo Format");
   seq->cache_flag = SEQ_CACHE_ALL_TYPES;
 
@@ -5465,15 +5471,13 @@ Sequence *BKE_sequencer_add_image_strip(bContext *C, ListBase *seqbasep, SeqLoad
   Sequence *seq;
   Strip *strip;
 
-  seq = BKE_sequence_alloc(seqbasep, seq_load->start_frame, seq_load->channel);
-  seq->type = SEQ_TYPE_IMAGE;
+  seq = BKE_sequence_alloc(seqbasep, seq_load->start_frame, seq_load->channel, SEQ_TYPE_IMAGE);
   seq->blend_mode = SEQ_TYPE_ALPHAOVER;
 
   /* basic defaults */
-  seq->strip = strip = seq_strip_alloc();
-
   seq->len = seq_load->len ? seq_load->len : 1;
-  strip->us = 1;
+
+  strip = seq->strip;
   strip->stripdata = MEM_callocN(seq->len * sizeof(StripElem), "stripelem");
   BLI_strncpy(strip->dir, seq_load->path, sizeof(strip->dir));
 
@@ -5517,19 +5521,16 @@ Sequence *BKE_sequencer_add_sound_strip(bContext *C, ListBase *seqbasep, SeqLoad
     return NULL;
   }
 
-  seq = BKE_sequence_alloc(seqbasep, seq_load->start_frame, seq_load->channel);
-
-  seq->type = SEQ_TYPE_SOUND_RAM;
+  seq = BKE_sequence_alloc(seqbasep, seq_load->start_frame, seq_load->channel, SEQ_TYPE_SOUND_RAM);
   seq->sound = sound;
   BLI_strncpy(seq->name + 2, "Sound", SEQ_NAME_MAXSTR - 2);
   BKE_sequence_base_unique_name_recursive(&scene->ed->seqbase, seq);
 
   /* basic defaults */
-  seq->strip = strip = seq_strip_alloc();
   /* We add a very small negative offset here, because
    * ceil(132.0) == 133.0, not nice with videos, see T47135. */
   seq->len = (int)ceil((double)info.length * FPS - 1e-4);
-  strip->us = 1;
+  strip = seq->strip;
 
   /* we only need 1 element to store the filename */
   strip->stripdata = se = MEM_callocN(sizeof(StripElem), "stripelem");
@@ -5622,7 +5623,7 @@ Sequence *BKE_sequencer_add_movie_strip(bContext *C, ListBase *seqbasep, SeqLoad
     }
   }
 
-  seq = BKE_sequence_alloc(seqbasep, seq_load->start_frame, seq_load->channel);
+  seq = BKE_sequence_alloc(seqbasep, seq_load->start_frame, seq_load->channel, SEQ_TYPE_MOVIE);
 
   /* multiview settings */
   if (seq_load->stereo3d_format) {
@@ -5630,8 +5631,6 @@ Sequence *BKE_sequencer_add_movie_strip(bContext *C, ListBase *seqbasep, SeqLoad
     seq->views_format = seq_load->views_format;
   }
   seq->flag |= seq_load->flag & SEQ_USE_VIEWS;
-
-  seq->type = SEQ_TYPE_MOVIE;
   seq->blend_mode = SEQ_TYPE_ALPHAOVER;
 
   for (i = 0; i < totfiles; i++) {
@@ -5657,9 +5656,8 @@ Sequence *BKE_sequencer_add_movie_strip(bContext *C, ListBase *seqbasep, SeqLoad
   }
 
   /* basic defaults */
-  seq->strip = strip = seq_strip_alloc();
   seq->len = IMB_anim_get_duration(anim_arr[0], IMB_TC_RECORD_RUN);
-  strip->us = 1;
+  strip = seq->strip;
 
   BLI_strncpy(seq->strip->colorspace_settings.name,
               colorspace,
diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c
index 66ae743fdcb..315d8f0848d 100644
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@ -718,16 +718,18 @@ static void do_version_constraints_copy_scale_power(ListBase *lb)
 static void do_versions_seq_alloc_transform_and_crop(ListBase *seqbase)
 {
   for (Sequence *seq = seqbase->first; seq != NULL; seq = seq->next) {
-    if (seq->strip->transform == NULL) {
-      seq->strip->transform = MEM_callocN(sizeof(struct StripTransform), "StripTransform");
-    }
+    if (ELEM(seq->type, SEQ_TYPE_SOUND_RAM, SEQ_TYPE_SOUND_HD) == 0) {
+      if (seq->strip->transform == NULL) {
+        seq->strip->transform = MEM_callocN(sizeof(struct StripTransform), "StripTransform");
+      }
 
-    if (seq->strip->crop == NULL) {
-      seq->strip->crop = MEM_callocN(sizeof(struct StripCrop), "StripCrop");
-    }
+      if (seq->strip->crop == NULL) {
+        seq->strip->crop = MEM_callocN(sizeof(struct StripCrop), "StripCrop");
+      }
 
-    if (seq->seqbase.first != NULL) {
-      do_versions_seq_alloc_transform_and_crop(&seq->seqbase);
+      if (seq->seqbase.first != NULL) {
+        do_versions_seq_alloc_transform_and_crop(&seq->seqbase);
+      }
     }
   }
 }
diff --git a/source/blender/editors/space_sequencer/sequencer_add.c b/source/blender/editors/space_sequencer/sequencer_add.c
index e8f18eeebc7..db6cc1af31e 100644
--- a/source/blender/editors/space_sequencer/sequencer_add.c
+++ b/source/blender/editors/space_sequencer/sequencer_add.c
@@ -318,7 +318,6 @@ static int sequencer_add_scene_strip_exec(bContext *C, wmOperator *op)
   Scene *sce_seq;
 
   Sequence *seq; /* generic strip vars */
-  Strip *strip;
 
   int start_frame, channel; /* operator props */
 
@@ -332,16 +331,13 @@ static int sequencer_add_scene_strip_exec(bContext *C, wmOperator *op)
     return OPERATOR_CANCELLED;
   }
 
-  seq = BKE_sequence_alloc(ed->seqbasep, start_frame, channel);
-  seq->type = SEQ_TYPE_SCENE;
+  seq = BKE_sequence_alloc(ed->seqbasep, start_frame, channel, SEQ_TYPE_SCENE);
   seq->blend_mode = SEQ_TYPE_ALPHAOVER;
 
   seq->scene = sce_seq;
 
   /* basic defaults */
-  seq->strip = strip = MEM_callocN(sizeof(Strip), "strip");
   seq->len = sce_seq->r.efra - sce_seq->r.sfra + 1;
-  strip->us = 1;
 
   BLI_strncpy(seq->name + 2, sce_seq->id.name + 2, sizeof(seq->name) - 2);
   BKE_sequence_base_unique_name_recursive(&ed->seqbase, seq);
@@ -406,7 +402,6 @@ static int sequencer_add_movieclip_strip_exec(bContext *C, wmOperator *op)
   MovieClip *clip;
 
   Sequence *seq; /* generic strip vars */
-  Strip *strip;
 
   int start_frame, channel; /* operator props */
 
@@ -420,17 +415,14 @@ static int sequencer_add_movieclip_strip_exec(bContext *C, wmOperator *op)
     return OPERATOR_CANCELLED;
   }
 
-  seq = BKE_sequence_alloc(ed->seqbasep, start_frame, channel);
-  seq->type = SEQ_TYPE_MOVIECLIP;
+  seq = BKE_sequence_alloc(ed->seqbasep, start_frame, channel, SEQ_TYPE_MOVIECLIP);
   seq->blend_mode = SEQ_TYPE_ALPHAOVER;
   seq->clip = clip;
 
   id_us_ensure_real(&seq->clip->id);
 
   /* basic defaults */
-  seq->strip = strip = MEM_callocN(sizeof(Strip), "strip");
   seq->len = BKE_movieclip_get_duration(clip);
-  strip->us = 1;
 
   BLI_strncpy(seq->name + 2, clip->id.name + 2, sizeof(seq->name) - 2);
   BKE_sequence_base_unique_name_recursive(&ed->seqbase, seq);
@@ -492,7 +484,6 @@ static int sequencer_add_mask_strip_exec(bContext *C, wmOperator *op)
   Mask *mask;
 
   Sequence *seq; /* generic strip vars */
-  Strip *strip;
 
   int start_frame, channel; /* operator props */
 
@@ -506,17 +497,14 @@ static int sequencer_add_mask_strip_exec(bContext *C, wmOperator *op)
     return OPERATOR_CANCELLED;
   }
 
-  seq = BKE_sequence_alloc(ed->seqbasep, start_frame, channel);
-  seq->type = SEQ_TYPE_MASK;
+  seq = BKE_sequence_alloc(ed->seqbasep, start_frame, channel, SEQ_TYPE_MASK);
   seq->blend_mode = SEQ_TYPE_ALPHAOVER;
   seq->mask = mask;
 
   id_us_ensure_real(&seq->mask->id);
 
   /* basic defaults */
-  seq->strip = strip = MEM_callocN(sizeof(Strip), "strip");
   seq->len = BKE_mask_get_duration(mask);
-  strip->us = 1;
 
   BLI_strncpy(seq->name + 2, mask->id.name + 2, sizeof(seq->name) - 2);
   BKE_sequence_base_unique_name_recursive(&ed->seqbase, seq);
@@ -1041,7 +1029,6 @@ static int sequencer_add_effect_strip_exec(bContext *C, wmOperator *op)
   Editing *ed = BKE_sequencer_editing_get(scene, true);
 
   Sequence *seq; /* generic strip vars */
-  Strip *strip;
   struct SeqEffectHandle sh;
 
   int start_frame, end_frame, channel, type; /* operator props */
@@ -1068,8 +1055,7 @@ static int sequencer_add_effect_strip_exec(bContext *C, wmOperator *op)
     return OPERATOR_CANCELLED;
   }
 
-  seq = BKE_sequence_alloc(ed->seqbasep, start_frame, channel);
-  seq->type = type;
+  seq = BKE_sequence_alloc(ed->seqbasep, start_frame, channel, type);
 
   BLI_strncpy(seq->name + 2, BKE_sequence_give_name(seq), sizeof(seq->name) - 2);
   BKE_sequence_base_unique_name_recursive(&ed->seqbase, seq);
@@ -1091,10 +1077,6 @@ static int sequencer_add_effect_strip_exec(bContext *C, wmOperator *op)
 
   BKE_sequence_calc(scene, seq);
 
-  /* basic defaults */
-  seq->strip = strip = MEM_callocN(sizeof(Strip), "strip");
-  strip->us = 1;
-
   if (seq->type == SEQ_TYPE_COLOR) {
     Soli

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list