Fix T91012: Scene strip doesn't play audio

Issue was caused by adding `seq->sound` check in ded68fb102 in
function `BKE_sound_scene_add_scene_sound` as `offset_time` field was
introduced to resolve sub-frame a/v misalignment.

Scene strips don't have `bSound` allocated but also don't suffer from
a/v misalignment.

Remove `seq->sound` check and don't apply any offset for scene strips.

Reviewed By: zeddb, sergey

Differential Revision: https://developer.blender.org/D12819
This commit is contained in:
Richard Antalik 2021-10-15 22:49:19 +02:00 committed by Philipp Oeser
parent 5c6418b077
commit 42ab4b60bd
Notes: blender-bot 2023-02-14 08:45:09 +01:00
Referenced by issue #88449: Blender LTS: Maintenance Task 2.93
Referenced by issue #88449, Blender LTS: Maintenance Task 2.93
Referenced by issue #91012, VSE: Scene strip doesn't play audio
2 changed files with 6 additions and 10 deletions

View File

@ -703,13 +703,13 @@ void *BKE_sound_scene_add_scene_sound(
Scene *scene, Sequence *sequence, int startframe, int endframe, int frameskip)
{
sound_verify_evaluated_id(&scene->id);
if (sequence->scene && scene != sequence->scene && sequence->sound) {
if (sequence->scene && scene != sequence->scene) {
const double fps = FPS;
return AUD_Sequence_add(scene->sound_scene,
sequence->scene->sound_scene,
startframe / fps,
endframe / fps,
frameskip / fps + sequence->sound->offset_time);
frameskip / fps);
}
return NULL;
}
@ -775,13 +775,13 @@ void BKE_sound_move_scene_sound(
void BKE_sound_move_scene_sound_defaults(Scene *scene, Sequence *sequence)
{
sound_verify_evaluated_id(&scene->id);
if (sequence->scene_sound && sequence->sound) {
if (sequence->scene_sound) {
BKE_sound_move_scene_sound(scene,
sequence->scene_sound,
sequence->startdisp,
sequence->enddisp,
sequence->startofs + sequence->anim_startofs,
sequence->sound->offset_time);
0.0);
}
}

View File

@ -111,12 +111,8 @@ void SEQ_sound_update_bounds(Scene *scene, Sequence *seq)
/* We have to take into account start frame of the sequence's scene! */
int startofs = seq->startofs + seq->anim_startofs + seq->scene->r.sfra;
BKE_sound_move_scene_sound(scene,
seq->scene_sound,
seq->startdisp,
seq->enddisp,
startofs,
seq->sound->offset_time);
BKE_sound_move_scene_sound(
scene, seq->scene_sound, seq->startdisp, seq->enddisp, startofs, 0.0);
}
}
else {