Fix: Positive Sound offsets not working
Regular sound offsets (based on VSE strip offset) only worked with negative values even if the waveform was draw correctly. Fix so positive frame offsets does the correct thing.
This commit is contained in:
committed by
Sebastian Parborg
parent
14fb537eca
commit
f7de07d88b
@@ -736,11 +736,19 @@ void *BKE_sound_add_scene_sound(
|
||||
}
|
||||
sound_verify_evaluated_id(&sequence->sound->id);
|
||||
const double fps = FPS;
|
||||
const double offset_time = sequence->sound->offset_time - frameskip / fps;
|
||||
if (offset_time >= 0.0f) {
|
||||
return AUD_Sequence_add(scene->sound_scene,
|
||||
sequence->sound->playback_handle,
|
||||
startframe / fps + offset_time,
|
||||
endframe / fps,
|
||||
0.0f);
|
||||
}
|
||||
return AUD_Sequence_add(scene->sound_scene,
|
||||
sequence->sound->playback_handle,
|
||||
startframe / fps,
|
||||
endframe / fps,
|
||||
frameskip / fps + sequence->sound->offset_time);
|
||||
-offset_time);
|
||||
}
|
||||
|
||||
void *BKE_sound_add_scene_sound_defaults(Scene *scene, Sequence *sequence)
|
||||
@@ -771,19 +779,29 @@ void BKE_sound_move_scene_sound(const Scene *scene,
|
||||
{
|
||||
sound_verify_evaluated_id(&scene->id);
|
||||
const double fps = FPS;
|
||||
AUD_SequenceEntry_move(handle, startframe / fps, endframe / fps, frameskip / fps + audio_offset);
|
||||
const double offset_time = audio_offset - frameskip / fps;
|
||||
if (offset_time >= 0.0f) {
|
||||
AUD_SequenceEntry_move(handle, startframe / fps + offset_time, endframe / fps, 0.0f);
|
||||
}
|
||||
else {
|
||||
AUD_SequenceEntry_move(handle, startframe / fps, endframe / fps, -offset_time);
|
||||
}
|
||||
}
|
||||
|
||||
void BKE_sound_move_scene_sound_defaults(Scene *scene, Sequence *sequence)
|
||||
{
|
||||
sound_verify_evaluated_id(&scene->id);
|
||||
if (sequence->scene_sound) {
|
||||
double offset_time = 0.0f;
|
||||
if (sequence->sound != nullptr) {
|
||||
offset_time = sequence->sound->offset_time;
|
||||
}
|
||||
BKE_sound_move_scene_sound(scene,
|
||||
sequence->scene_sound,
|
||||
SEQ_time_left_handle_frame_get(scene, sequence),
|
||||
SEQ_time_right_handle_frame_get(scene, sequence),
|
||||
sequence->startofs + sequence->anim_startofs,
|
||||
0.0);
|
||||
offset_time);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user