X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;ds=sidebyside;f=cinelerra-5.1%2Fcinelerra%2Fedits.C;h=de93e5830d351d41ce3cd68e7a489f999e2c1312;hb=9ffdfbe8e6fa7daaad4dcfdd46b6ac7b6e7a47e8;hp=74bd416446c00ce6e072e87dc1e94d9807db0eef;hpb=3d5faf45a6c261bb3e9973b42cf682415a1fde2e;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/edits.C b/cinelerra-5.1/cinelerra/edits.C index 74bd4164..de93e583 100644 --- a/cinelerra-5.1/cinelerra/edits.C +++ b/cinelerra-5.1/cinelerra/edits.C @@ -178,7 +178,7 @@ void Edits::insert_edits(Edits *source_edits, // Open destination area Edit *dest_edit = insert_new_edit(position + source_edit->startproject); - dest_edit->copy_from(source_edit); + dest_edit->clone_from(source_edit); dest_edit->asset = dest_asset; dest_edit->nested_edl = dest_nested_edl; dest_edit->startproject = position + source_edit->startproject; @@ -242,10 +242,10 @@ Edit* Edits::split_edit(int64_t position) Edit *new_edit = create_edit(); insert_after(edit, new_edit); - new_edit->copy_from(edit); + new_edit->clone_from(edit); new_edit->length = new_edit->startproject + new_edit->length - position; edit->length = position - edit->startproject; - if( !new_edit->length ) + if( !new_edit->length || edit->silence() ) new_edit->hard_left = new_edit->hard_right = 0; else if( !edit->length ) edit->hard_left = edit->hard_right = 0; @@ -412,8 +412,8 @@ int Edits::optimize() if( is_glitch(next_edit) ) break; // both edits are silence & not a plugin - if( !current->is_plugin && current->silence() && - !next_edit->is_plugin && next_edit->silence() ) + if( !current->is_plugin() && current->silence() && + !next_edit->is_plugin() && next_edit->silence() ) break; // source channels are identical & assets are identical if( !result && current->channel == next_edit->channel &&