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:
Diffstat (limited to 'source/blender/blenloader')
-rw-r--r--source/blender/blenloader/intern/versioning_290.c17
-rw-r--r--source/blender/blenloader/intern/versioning_300.c46
2 files changed, 46 insertions, 17 deletions
diff --git a/source/blender/blenloader/intern/versioning_290.c b/source/blender/blenloader/intern/versioning_290.c
index a15ddc75aa2..47786f55871 100644
--- a/source/blender/blenloader/intern/versioning_290.c
+++ b/source/blender/blenloader/intern/versioning_290.c
@@ -160,7 +160,7 @@ static void seq_convert_transform_crop(const Scene *scene,
const uint32_t use_transform_flag = (1 << 16);
const uint32_t use_crop_flag = (1 << 17);
- const StripElem *s_elem = SEQ_render_give_stripelem(seq, seq->start);
+ const StripElem *s_elem = SEQ_render_give_stripelem(scene, seq, seq->start);
if (s_elem != NULL) {
image_size_x = s_elem->orig_width;
image_size_y = s_elem->orig_height;
@@ -285,7 +285,7 @@ static void seq_convert_transform_crop_2(const Scene *scene,
Sequence *seq,
const eSpaceSeq_Proxy_RenderSize render_size)
{
- const StripElem *s_elem = SEQ_render_give_stripelem(seq, seq->start);
+ const StripElem *s_elem = SEQ_render_give_stripelem(scene, seq, seq->start);
if (s_elem == NULL) {
return;
}
@@ -350,6 +350,7 @@ static void seq_convert_transform_crop_lb_2(const Scene *scene,
static void seq_update_meta_disp_range(Scene *scene)
{
Editing *ed = SEQ_editing_get(scene);
+
if (ed == NULL) {
return;
}
@@ -357,8 +358,8 @@ static void seq_update_meta_disp_range(Scene *scene)
LISTBASE_FOREACH_BACKWARD (MetaStack *, ms, &ed->metastack) {
/* Update ms->disp_range from meta. */
if (ms->disp_range[0] == ms->disp_range[1]) {
- ms->disp_range[0] = SEQ_time_left_handle_frame_get(ms->parseq);
- ms->disp_range[1] = SEQ_time_right_handle_frame_get(ms->parseq);
+ ms->disp_range[0] = SEQ_time_left_handle_frame_get(scene, ms->parseq);
+ ms->disp_range[1] = SEQ_time_right_handle_frame_get(scene, ms->parseq);
}
/* Update meta strip endpoints. */
@@ -366,6 +367,14 @@ static void seq_update_meta_disp_range(Scene *scene)
SEQ_time_right_handle_frame_set(scene, ms->parseq, ms->disp_range[1]);
SEQ_transform_fix_single_image_seq_offsets(scene, ms->parseq);
+ /* Recalculate effects using meta strip. */
+ LISTBASE_FOREACH (Sequence *, seq, ms->oldbasep) {
+ if (seq->seq2) {
+ seq->start = seq->startdisp = max_ii(seq->seq1->startdisp, seq->seq2->startdisp);
+ seq->enddisp = min_ii(seq->seq1->enddisp, seq->seq2->enddisp);
+ }
+ }
+
/* Ensure that active seqbase points to active meta strip seqbase. */
MetaStack *active_ms = SEQ_meta_stack_active_get(ed);
SEQ_seqbase_active_set(ed, &active_ms->parseq->seqbase);
diff --git a/source/blender/blenloader/intern/versioning_300.c b/source/blender/blenloader/intern/versioning_300.c
index 57fd71f8933..9514f1667b1 100644
--- a/source/blender/blenloader/intern/versioning_300.c
+++ b/source/blender/blenloader/intern/versioning_300.c
@@ -408,7 +408,7 @@ static void do_versions_sequencer_speed_effect_recursive(Scene *scene, const Lis
v->speed_control_type = SEQ_SPEED_MULTIPLY;
v->speed_fader = globalSpeed *
((float)seq->seq1->len /
- max_ff((float)(SEQ_time_right_handle_frame_get(seq->seq1) -
+ max_ff((float)(SEQ_time_right_handle_frame_get(scene, seq->seq1) -
seq->seq1->start),
1.0f));
}
@@ -1235,6 +1235,17 @@ static bool version_merge_still_offsets(Sequence *seq, void *UNUSED(user_data))
return true;
}
+static bool seq_speed_factor_set(Sequence *seq, void *UNUSED(user_data))
+{
+ if (seq->type == SEQ_TYPE_SOUND_RAM) {
+ seq->speed_factor = seq->pitch;
+ }
+ else {
+ seq->speed_factor = 1.0f;
+ }
+ return true;
+}
+
/* Those `version_liboverride_rnacollections_*` functions mimic the old, pre-3.0 code to find
* anchor and source items in the given list of modifiers, constraints etc., using only the
* `subitem_local` data of the override property operation.
@@ -3171,18 +3182,7 @@ void blo_do_versions_300(FileData *fd, Library *UNUSED(lib), Main *bmain)
}
}
- /**
- * Versioning code until next subversion bump goes here.
- *
- * \note Be sure to check when bumping the version:
- * - "versioning_userdef.c", #blo_do_versions_userdef
- * - "versioning_userdef.c", #do_versions_theme
- *
- * \note Keep this message at the bottom of the function.
- */
- {
- /* Keep this block, even when empty. */
-
+ if (!MAIN_VERSION_ATLEAST(bmain, 303, 5)) {
/* Fix for T98925 - remove channels region, that was initialized in incorrect editor types. */
for (bScreen *screen = bmain->screens.first; screen; screen = screen->id.next) {
LISTBASE_FOREACH (ScrArea *, area, &screen->areabase) {
@@ -3201,5 +3201,25 @@ void blo_do_versions_300(FileData *fd, Library *UNUSED(lib), Main *bmain)
}
}
}
+
+ LISTBASE_FOREACH (Scene *, scene, &bmain->scenes) {
+ Editing *ed = SEQ_editing_get(scene);
+ if (ed == NULL) {
+ continue;
+ }
+ SEQ_for_each_callback(&ed->seqbase, seq_speed_factor_set, NULL);
+ }
+ }
+ /**
+ * Versioning code until next subversion bump goes here.
+ *
+ * \note Be sure to check when bumping the version:
+ * - "versioning_userdef.c", #blo_do_versions_userdef
+ * - "versioning_userdef.c", #do_versions_theme
+ *
+ * \note Keep this message at the bottom of the function.
+ */
+ {
+ /* Keep this block, even when empty. */
}
}