X-Git-Url: https://cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fedits.C;h=a64024ada45ad77505b3b53905e823a04608a9ed;hb=d3136bf5076921bddf85277f619eeffcf8eb3009;hp=0bf6e0ae24eddd7804c3b1b1198210a90befa70c;hpb=3cbe62ca61e2b35d3e228978f6cdedd11218077f;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/edits.C b/cinelerra-5.1/cinelerra/edits.C index 0bf6e0ae..a64024ad 100644 --- a/cinelerra-5.1/cinelerra/edits.C +++ b/cinelerra-5.1/cinelerra/edits.C @@ -898,3 +898,20 @@ void Edits::align_timecodes(double offset) } } +void Edits::update_idxbl_length(int id, int64_t du) +{ + for( Edit *edit=first; edit; edit=edit->next ) { + Indexable *idxbl = edit->asset ? (Indexable *)edit->asset : + edit->nested_edl ? (Indexable *)edit->nested_edl : 0; + if( !idxbl || idxbl->id != id ) continue; + edit->length += du; + if( edit->length > 0 && edit->next ) { + int64_t next_start = edit->next->startproject; + int64_t edit_end = edit->startproject + edit->length; + if( edit_end > next_start ) + edit->length = next_start - edit->startproject; + } + if( edit->length < 0 ) edit->length = 0; + } +} +