[Bf-blender-cvs] [7a4b3d2287b] blender-v3.3-release: Fix T102663: Meta strips from older versions are broken
Richard Antalik
noreply at git.blender.org
Thu Jan 12 15:31:54 CET 2023
Commit: 7a4b3d2287b6a5019c83721130286e632c96ad95
Author: Richard Antalik
Date: Sun Nov 27 21:29:17 2022 +0100
Branches: blender-v3.3-release
https://developer.blender.org/rB7a4b3d2287b6a5019c83721130286e632c96ad95
Fix T102663: Meta strips from older versions are broken
Meta strip range was adjusted in versioning because of previous issues
by function `version_fix_seq_meta_range`. After `speed_factor` property
was added, this changed how function works and result was incorrect
function due to uninitialized property value.
Running `version_fix_seq_meta_range` after `seq_speed_factor_set` fixes
this issue.
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D16606
===================================================================
M source/blender/blenloader/intern/versioning_300.c
===================================================================
diff --git a/source/blender/blenloader/intern/versioning_300.c b/source/blender/blenloader/intern/versioning_300.c
index 5b609483616..3f60fb87ccd 100644
--- a/source/blender/blenloader/intern/versioning_300.c
+++ b/source/blender/blenloader/intern/versioning_300.c
@@ -609,6 +609,15 @@ static void seq_speed_factor_fix_rna_path(Sequence *seq, ListBase *fcurves)
MEM_freeN(path);
}
+static bool version_fix_seq_meta_range(Sequence *seq, void *user_data)
+{
+ Scene *scene = (Scene *)user_data;
+ if (seq->type == SEQ_TYPE_META) {
+ SEQ_time_update_meta_strip_range(scene, seq);
+ }
+ return true;
+}
+
static bool seq_speed_factor_set(Sequence *seq, void *user_data)
{
const Scene *scene = user_data;
@@ -861,6 +870,7 @@ void do_versions_after_linking_300(Main *bmain, ReportList *UNUSED(reports))
continue;
}
SEQ_for_each_callback(&ed->seqbase, seq_speed_factor_set, scene);
+ SEQ_for_each_callback(&ed->seqbase, version_fix_seq_meta_range, scene);
}
}
@@ -1290,15 +1300,6 @@ static void version_node_tree_socket_id_delim(bNodeTree *ntree)
}
}
-static bool version_fix_seq_meta_range(Sequence *seq, void *user_data)
-{
- Scene *scene = (Scene *)user_data;
- if (seq->type == SEQ_TYPE_META) {
- SEQ_time_update_meta_strip_range(scene, seq);
- }
- return true;
-}
-
static bool version_merge_still_offsets(Sequence *seq, void *UNUSED(user_data))
{
seq->startofs -= seq->startstill;
@@ -2597,17 +2598,6 @@ void blo_do_versions_300(FileData *fd, Library *UNUSED(lib), Main *bmain)
}
}
}
-
- LISTBASE_FOREACH (Scene *, scene, &bmain->scenes) {
- Editing *ed = SEQ_editing_get(scene);
- /* Make sure range of meta strips is correct.
- * It was possible to save .blend file with incorrect state of meta strip
- * range. The root cause is expected to be fixed, but need to ensure files
- * with invalid meta strip range are corrected. */
- if (ed != NULL) {
- SEQ_for_each_callback(&ed->seqbase, version_fix_seq_meta_range, scene);
- }
- }
}
/* Special case to handle older in-development 3.1 files, before change from 3.0 branch gets
More information about the Bf-blender-cvs
mailing list