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:
Diffstat (limited to 'source/blender/sequencer')
-rw-r--r--source/blender/sequencer/intern/strip_time.c25
1 files changed, 17 insertions, 8 deletions
diff --git a/source/blender/sequencer/intern/strip_time.c b/source/blender/sequencer/intern/strip_time.c
index d4357fe28b6..aa51813c9b8 100644
--- a/source/blender/sequencer/intern/strip_time.c
+++ b/source/blender/sequencer/intern/strip_time.c
@@ -437,15 +437,20 @@ bool SEQ_time_strip_intersects_frame(const Scene *scene,
void SEQ_time_speed_factor_set(const Scene *scene, Sequence *seq, const float speed_factor)
{
- const float left_handle_frame = SEQ_time_left_handle_frame_get(scene, seq);
- const float unity_start_offset = seq->startofs * seq->speed_factor;
- const float unity_end_offset = seq->endofs * seq->speed_factor;
- /* Left handle is pivot point for content scaling - it must always show same frame. */
- seq->speed_factor = speed_factor;
- seq->startofs = unity_start_offset / speed_factor;
- seq->start = left_handle_frame - seq->startofs;
- seq->endofs = unity_end_offset / speed_factor;
+ if (seq->type == SEQ_TYPE_SOUND_RAM) {
+ seq->speed_factor = speed_factor;
+ }
+ else {
+ const float left_handle_frame = SEQ_time_left_handle_frame_get(scene, seq);
+ const float unity_start_offset = seq->startofs * seq->speed_factor;
+ const float unity_end_offset = seq->endofs * seq->speed_factor;
+ /* Left handle is pivot point for content scaling - it must always show same frame. */
+ seq->speed_factor = speed_factor;
+ seq->startofs = unity_start_offset / speed_factor;
+ seq->start = left_handle_frame - seq->startofs;
+ seq->endofs = unity_end_offset / speed_factor;
+ }
SEQ_time_update_meta_strip_range(scene, seq_sequence_lookup_meta_by_seq(scene, seq));
seq_time_update_effects_strip_range(scene, seq_sequence_lookup_effects_by_seq(scene, seq));
@@ -471,6 +476,10 @@ bool SEQ_time_has_still_frames(const Scene *scene, const Sequence *seq)
* factor */
int SEQ_time_strip_length_get(const Scene *scene, const Sequence *seq)
{
+ if (seq->type == SEQ_TYPE_SOUND_RAM) {
+ return seq->len;
+ }
+
return seq->len / seq_time_playback_rate_factor_get(scene, seq);
}