diff options
author | Campbell Barton <ideasman42@gmail.com> | 2010-07-04 14:51:10 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2010-07-04 14:51:10 +0400 |
commit | 8aa0f9b033eff5aa4f6b66d3148d6379a60ebf06 (patch) | |
tree | 20eae6fde0fcaed87b259d9aad3f26fd1957edd7 /source | |
parent | 4a6cc10d756ddccf1912daaa6cef1d1e25538c0c (diff) |
last fix still could give corrupt sound, rather then updating the sound info just add and remove the sound handle.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenkernel/intern/sequencer.c | 4 | ||||
-rw-r--r-- | source/blender/editors/space_sequencer/sequencer_edit.c | 11 |
2 files changed, 10 insertions, 5 deletions
diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index d0678bc1866..e21901f70d9 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -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; diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index 1baf30ccc65..9e52c2f4e38 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -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); |