[Bf-blender-cvs] [c114a36d279] temp-vse-multi-framerates: Initialize playback_rate to 0 if scene rate should be used. Also missed sound playback rate
Richard Antalik
noreply at git.blender.org
Mon Mar 29 09:00:11 CEST 2021
Commit: c114a36d279d8e9658aafebe2410bb144e1ada5a
Author: Richard Antalik
Date: Mon Mar 29 08:34:02 2021 +0200
Branches: temp-vse-multi-framerates
https://developer.blender.org/rBc114a36d279d8e9658aafebe2410bb144e1ada5a
Initialize playback_rate to 0 if scene rate should be used. Also missed sound playback rate
===================================================================
M source/blender/sequencer/intern/strip_add.c
M source/blender/sequencer/intern/strip_time.c
===================================================================
diff --git a/source/blender/sequencer/intern/strip_add.c b/source/blender/sequencer/intern/strip_add.c
index 2059f3760e6..d42db63d9a3 100644
--- a/source/blender/sequencer/intern/strip_add.c
+++ b/source/blender/sequencer/intern/strip_add.c
@@ -143,7 +143,7 @@ Sequence *SEQ_add_scene_strip(Scene *scene, ListBase *seqbase, struct SeqLoadDat
seq->blend_mode = SEQ_TYPE_CROSS;
seq->scene = load_data->scene;
seq->len = load_data->scene->r.efra - load_data->scene->r.sfra + 1;
- seq->playback_rate = 1.0f;
+ seq->playback_rate = 0.0f;
id_us_ensure_real((ID *)load_data->scene);
seq_add_set_name(seq, load_data);
seq_add_generic_update(scene, seqbase, seq);
@@ -165,7 +165,7 @@ Sequence *SEQ_add_movieclip_strip(Scene *scene, ListBase *seqbase, struct SeqLoa
seq->blend_mode = SEQ_TYPE_CROSS;
seq->clip = load_data->clip;
seq->len = BKE_movieclip_get_duration(load_data->clip);
- seq->playback_rate = 1.0f;
+ seq->playback_rate = 0.0f;
id_us_ensure_real((ID *)load_data->clip);
seq_add_set_name(seq, load_data);
seq_add_generic_update(scene, seqbase, seq);
@@ -187,7 +187,7 @@ Sequence *SEQ_add_mask_strip(Scene *scene, ListBase *seqbase, struct SeqLoadData
seq->blend_mode = SEQ_TYPE_CROSS;
seq->mask = load_data->mask;
seq->len = BKE_mask_get_duration(load_data->mask);
- seq->playback_rate = 1.0f;
+ seq->playback_rate = 0.0f;
id_us_ensure_real((ID *)load_data->mask);
seq_add_set_name(seq, load_data);
seq_add_generic_update(scene, seqbase, seq);
@@ -213,7 +213,7 @@ Sequence *SEQ_add_effect_strip(Scene *scene, ListBase *seqbase, struct SeqLoadDa
seq->seq1 = load_data->effect.seq1;
seq->seq2 = load_data->effect.seq2;
seq->seq3 = load_data->effect.seq3;
- seq->playback_rate = 1.0f;
+ seq->playback_rate = 0.0f;
if (seq->type == SEQ_TYPE_COLOR) {
seq->blend_mode = SEQ_TYPE_CROSS;
@@ -314,7 +314,7 @@ Sequence *SEQ_add_image_strip(Main *bmain, Scene *scene, ListBase *seqbase, SeqL
seqbase, load_data->start_frame, load_data->channel, SEQ_TYPE_IMAGE);
seq->blend_mode = SEQ_TYPE_CROSS; /* so alpha adjustment fade to the strip below */
seq->len = load_data->image.len;
- seq->playback_rate = 1.0f;
+ seq->playback_rate = 0.0f;
Strip *strip = seq->strip;
strip->stripdata = MEM_callocN(load_data->image.len * sizeof(StripElem), "stripelem");
@@ -387,6 +387,7 @@ Sequence *SEQ_add_sound_strip(Main *bmain, Scene *scene, ListBase *seqbase, SeqL
seqbase, load_data->start_frame, load_data->channel, SEQ_TYPE_SOUND_RAM);
seq->sound = sound;
seq->scene_sound = NULL;
+ seq->playback_rate = 0.0f;
/* We add a very small negative offset here, because
* ceil(132.0) == 133.0, not nice with videos, see T47135. */
@@ -444,6 +445,7 @@ Sequence *SEQ_add_meta_strip(Scene *scene, ListBase *seqbase, SeqLoadData *load_
/* Set name. */
seq_add_set_name(seqm, load_data);
+ seqm->playback_rate = 0.0f;
/* Set frames start and length. */
seqm->start = load_data->start_frame;
diff --git a/source/blender/sequencer/intern/strip_time.c b/source/blender/sequencer/intern/strip_time.c
index 4ee9317b688..1bf120b7907 100644
--- a/source/blender/sequencer/intern/strip_time.c
+++ b/source/blender/sequencer/intern/strip_time.c
@@ -46,7 +46,12 @@
static float seq_time_playback_rate_factor_get(const Scene *scene, const Sequence *seq)
{
float scene_playback_rate = (float)scene->r.frs_sec / scene->r.frs_sec_base;
- return seq->playback_rate / scene_playback_rate;
+ if (seq->playback_rate != 0.0f) {
+ return seq->playback_rate / scene_playback_rate;
+ }
+ else {
+ return 1;
+ }
}
float seq_give_frame_index(const Scene *scene, Sequence *seq, float timeline_frame)
More information about the Bf-blender-cvs
mailing list