Fix T79676: Video Sequencer image sequence strip source path breaks when

saving with 'Remap Relative' option

Caused by rBf7386b97571e.

Logic in BKE_bpath_traverse_main calls the callback multiple times [as
often as there are images in the strip].

Prior to above commit, the callback was
'bpath_relative_convert_visit_cb' [this one did not have this problem -
since it returned early if the path was already made relative once]

After rBf7386b97571e though, the 'bpath_relative_rebase_visit_cb' is
used [this one should not be entered multiple times, it would modifiy the
directy again and again].

Luckily, we have a flag (BKE_BPATH_TRAVERSE_SKIP_MULTIFILE) that can be
used to prevent this (this will take care of only calling the callback
once in BKE_bpath_traverse_main for the VSE case)

Could be backported to 2.83 I think.

Maniphest Tasks: T79676

Differential Revision: https://developer.blender.org/D8536
This commit is contained in:
Philipp Oeser 2020-08-11 14:31:21 +02:00
parent 74556a5a17
commit aec0cfaf08
Notes: blender-bot 2023-02-14 02:22:07 +01:00
Referenced by issue #79676, Video Editor: sequence SOURCE PATH goes haywire when: Save As... /3d/comp/comp.blend to /comp/comp.blend (Remap Relative is ON)
Referenced by issue #77348, Blender LTS: Maintenance Task 2.83
1 changed files with 1 additions and 1 deletions

View File

@ -165,7 +165,7 @@ void BKE_bpath_relative_rebase(Main *bmain,
ReportList *reports)
{
BPathRebase_Data data = {NULL};
const int flag = BKE_BPATH_TRAVERSE_SKIP_LIBRARY;
const int flag = (BKE_BPATH_TRAVERSE_SKIP_LIBRARY | BKE_BPATH_TRAVERSE_SKIP_MULTIFILE);
BLI_assert(basedir_src[0] != '\0');
BLI_assert(basedir_dst[0] != '\0');