[Bf-blender-cvs] [83094d9a0d4] master: Fix T94149: Incorrect sound strip length

Richard Antalik noreply at git.blender.org
Wed Jan 26 00:00:17 CET 2022


Commit: 83094d9a0d43a95fa0ac2ec79234e54bb1c88675
Author: Richard Antalik
Date:   Tue Jan 25 23:53:33 2022 +0100
Branches: master
https://developer.blender.org/rB83094d9a0d43a95fa0ac2ec79234e54bb1c88675

Fix T94149: Incorrect sound strip length

Fix formula in function `SEQ_sound_update_length`.

Formula for sound strip length was changed in commit ded68fb1027, when
strip is added to timeline, but it was not changed in function
mentioned above.

===================================================================

M	source/blender/sequencer/intern/sound.c

===================================================================

diff --git a/source/blender/sequencer/intern/sound.c b/source/blender/sequencer/intern/sound.c
index 86a37aca4a9..0788003fb12 100644
--- a/source/blender/sequencer/intern/sound.c
+++ b/source/blender/sequencer/intern/sound.c
@@ -31,6 +31,7 @@
 #include "DNA_sound_types.h"
 
 #include "BLI_listbase.h"
+#include "BLI_utildefines.h"
 
 #include "BKE_main.h"
 #include "BKE_scene.h"
@@ -56,11 +57,15 @@ static bool sequencer_refresh_sound_length_recursive(Main *bmain, Scene *scene,
       }
     }
     else if (seq->type == SEQ_TYPE_SOUND_RAM && seq->sound) {
-      const float length = BKE_sound_get_length(bmain, seq->sound);
+      SoundInfo info;
+      if (!BKE_sound_info_get(bmain, seq->sound, &info)) {
+        continue;
+      }
+
       int old = seq->len;
       float fac;
 
-      seq->len = (int)ceil((double)length * FPS);
+      seq->len = MAX2(1, round((info.length - seq->sound->offset_time) * FPS));
       fac = (float)seq->len / (float)old;
       old = seq->startofs;
       seq->startofs *= fac;



More information about the Bf-blender-cvs mailing list