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:
authorRichard Antalik <richardantalik@gmail.com>2021-11-19 08:10:26 +0300
committerRichard Antalik <richardantalik@gmail.com>2021-11-19 08:12:09 +0300
commit4d09a692e22add0a8341916d2d79a594bff076a3 (patch)
tree3d0845840f1e95cd22030feaafb9f56bd370fdde /source/blender/blenloader
parentfd2a155d068fdd3e6a6c3b4d58772b1dc9921291 (diff)
Fix T92847: Meta-strip corrupt
Offsets for meta strip were invalid. No steps to reproduce the issue are available, but it is quite possible that there are files with incorrect state after issues with meta strips were fixed. Ensure correct offsets for meta strips in versioning code. Reviewed By: sergey Differential Revision: https://developer.blender.org/D13257
Diffstat (limited to 'source/blender/blenloader')
-rw-r--r--source/blender/blenloader/intern/versioning_300.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/source/blender/blenloader/intern/versioning_300.c b/source/blender/blenloader/intern/versioning_300.c
index 9009eb36585..f8a46f205d4 100644
--- a/source/blender/blenloader/intern/versioning_300.c
+++ b/source/blender/blenloader/intern/versioning_300.c
@@ -68,6 +68,7 @@
#include "SEQ_iterator.h"
#include "SEQ_sequencer.h"
+#include "SEQ_time.h"
#include "RNA_access.h"
@@ -1272,6 +1273,15 @@ static void version_geometry_nodes_set_position_node_offset(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;
+}
+
/* NOLINTNEXTLINE: readability-function-size */
void blo_do_versions_300(FileData *fd, Library *UNUSED(lib), Main *bmain)
{
@@ -2193,5 +2203,14 @@ 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. */
+ SEQ_for_each_callback(&ed->seqbase, version_fix_seq_meta_range, scene);
+ }
}
}