X-Git-Url: http://git.cinelerra-gg.org/git/?p=goodguy%2Fhistory.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fedits.C;h=6c512009ad0d3fbea04729f974e2d5919f988825;hp=4f54457bdc6f464db93c2938b36bea968dc12b6c;hb=3f6a262cfe390b3f8b275297d64565a5b6272969;hpb=d348518c261d543e12282d516768d4f446434a42 diff --git a/cinelerra-5.1/cinelerra/edits.C b/cinelerra-5.1/cinelerra/edits.C index 4f54457b..6c512009 100644 --- a/cinelerra-5.1/cinelerra/edits.C +++ b/cinelerra-5.1/cinelerra/edits.C @@ -385,19 +385,20 @@ int Edits::optimize() for(current = first; !result && current && current->next; ) { Edit *next_edit = current->next; - // printf("Edits::optimize %d %lld=%lld %d=%d %p=%p %p=%p\n", // __LINE__, current->startsource + current->length, next_edit->startsource, // current->channel, next_edit->channel, current->asset, next_edit->asset, // current->nested_edl, next_edit->nested_edl); +// both edges are not hard edges // both edits are silence & not a plugin // source channels are identical, assets are identical - if( (current->silence() && next_edit->silence() && !current->is_plugin) || + if( !current->hard_right && !next_edit->hard_left && ( + (current->silence() && next_edit->silence() && !current->is_plugin) || (current->startsource + current->length == next_edit->startsource && current->channel == next_edit->channel && current->asset == next_edit->asset && - current->nested_edl == next_edit->nested_edl)) { + current->nested_edl == next_edit->nested_edl)) ) { //printf("Edits::optimize %d\n", __LINE__); current->length += next_edit->length; remove(next_edit);