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
This commit is contained in:
parent
5940e9b792
commit
7a4b3d2287
Notes:
blender-bot
2023-02-14 02:30:10 +01:00
Referenced by issue #100749, Blender LTS: Maintenance Task 3.3 Referenced by issue #102663, Regression: Meta strips from older versions are broken
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue