last fix still could give corrupt sound, rather then updating the sound info just add and remove the sound handle.

This commit is contained in:
2010-07-04 10:51:10 +00:00
parent 4a6cc10d75
commit 8aa0f9b033
2 changed files with 10 additions and 5 deletions

View File

@@ -549,8 +549,8 @@ void calc_sequence(Scene *scene, Sequence *seq)
if(seq->type==SEQ_META) {
seqm= seq->seqbase.first;
if(seqm) {
min= 1000000;
max= -1000000;
min= MAXFRAME * 2;
max= -MAXFRAME * 2;
while(seqm) {
if(seqm->startdisp < min) min= seqm->startdisp;
if(seqm->enddisp > max) max= seqm->enddisp;

View File

@@ -2678,12 +2678,17 @@ static int sequencer_swap_data_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
}
sound_remove_scene_sound(scene, seq_act->scene_sound);
sound_remove_scene_sound(scene, seq_other->scene_sound);
seq_act->scene_sound= NULL;
seq_other->scene_sound= NULL;
calc_sequence(scene, seq_act);
calc_sequence(scene, seq_other);
/* sound needs to be moved */
if(seq_act->scene_sound) calc_sequence_disp(scene, seq_act);
if(seq_other->scene_sound) calc_sequence_disp(scene, seq_other);
if(seq_act->sound) sound_add_scene_sound(scene, seq_act, seq_act->startdisp, seq_act->enddisp, seq_act->startofs + seq_act->anim_startofs);
if(seq_other->sound) sound_add_scene_sound(scene, seq_other, seq_other->startdisp, seq_other->enddisp, seq_other->startofs + seq_other->anim_startofs);
WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene);