Fix for [#27349] Sequencer: Meta Strips plays unavailable audio

Hopefully at least... Sequencer code is like <insert name of random ancient language that nobody knows anymore here>.
This commit is contained in:
Joerg Mueller 2012-02-13 17:31:33 +00:00
parent 840ffba82c
commit 2f516f46da

@ -523,25 +523,6 @@ void build_seqar_cb(ListBase *seqbase, Sequence ***seqar, int *totseq,
}
void calc_sequence_disp(Scene *scene, Sequence *seq)
{
if(seq->startofs && seq->startstill) seq->startstill= 0;
if(seq->endofs && seq->endstill) seq->endstill= 0;
seq->startdisp= seq->start + seq->startofs - seq->startstill;
seq->enddisp= seq->start+seq->len - seq->endofs + seq->endstill;
seq->handsize= 10.0; /* 10 frames */
if( seq->enddisp-seq->startdisp < 10 ) {
seq->handsize= (float)(0.5*(seq->enddisp-seq->startdisp));
}
else if(seq->enddisp-seq->startdisp > 250) {
seq->handsize= (float)((seq->enddisp-seq->startdisp)/25);
}
seq_update_sound_bounds(scene, seq);
}
static void seq_update_sound_bounds_recursive(Scene *scene, Sequence *metaseq)
{
Sequence *seq;
@ -567,6 +548,29 @@ static void seq_update_sound_bounds_recursive(Scene *scene, Sequence *metaseq)
}
}
void calc_sequence_disp(Scene *scene, Sequence *seq)
{
if(seq->startofs && seq->startstill) seq->startstill= 0;
if(seq->endofs && seq->endstill) seq->endstill= 0;
seq->startdisp= seq->start + seq->startofs - seq->startstill;
seq->enddisp= seq->start+seq->len - seq->endofs + seq->endstill;
seq->handsize= 10.0; /* 10 frames */
if( seq->enddisp-seq->startdisp < 10 ) {
seq->handsize= (float)(0.5*(seq->enddisp-seq->startdisp));
}
else if(seq->enddisp-seq->startdisp > 250) {
seq->handsize= (float)((seq->enddisp-seq->startdisp)/25);
}
if(ELEM(seq->type, SEQ_SOUND, SEQ_SCENE)) {
seq_update_sound_bounds(scene, seq);
}
else if(seq->type == SEQ_META)
seq_update_sound_bounds_recursive(scene, seq);
}
void calc_sequence(Scene *scene, Sequence *seq)
{
Sequence *seqm;