X-Git-Url: http://git.cinelerra-gg.org/git/?p=goodguy%2Fhistory.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fedl.C;h=a27e10cc5e37a287c5244ea22f222945a92ec035;hp=cd20a7b0d56e570d3a36de7b47bd6315fcff947e;hb=0513350234a8dcd08e5a0117d5121724ef7b76b6;hpb=0fbaff5c59fa1a3b93f5f9d344451f6aa57778d4 diff --git a/cinelerra-5.1/cinelerra/edl.C b/cinelerra-5.1/cinelerra/edl.C index cd20a7b0..a27e10cc 100644 --- a/cinelerra-5.1/cinelerra/edl.C +++ b/cinelerra-5.1/cinelerra/edl.C @@ -240,6 +240,7 @@ int EDL::load_xml(FileXML *file, for(int i = 0; i < clips.size(); i++) clips.get(i)->Garbage::remove_user(); clips.remove_all(); + mixers.remove_all_objects(); } if(load_flags & LOAD_TIMEBAR) @@ -299,6 +300,14 @@ int EDL::load_xml(FileXML *file, new_folder(folder); } else + if(file->tag.title_is("MIXERS")) + { + if((load_flags & LOAD_SESSION)) + mixers.load(file); + else + result = file->skip_tag(); + } + else if(file->tag.title_is("ASSETS")) { if(load_flags & LOAD_ASSETS) @@ -413,6 +422,7 @@ int EDL::copy_all(EDL *edl) copy_session(edl); copy_assets(edl); copy_clips(edl); + copy_mixers(edl); tracks->copy_from(edl->tracks); labels->copy_from(edl->labels); return 0; @@ -456,6 +466,12 @@ void EDL::copy_assets(EDL *edl) } } +void EDL::copy_mixers(EDL *edl) +{ + if(this == edl) return; + mixers.copy_from(edl->mixers); +} + void EDL::copy_session(EDL *edl, int session_only) { if(this == edl) return; @@ -629,6 +645,7 @@ int EDL::copy(double start, output_path, 1, 0); + mixers.save(file); } file->append_newline(); @@ -1147,7 +1164,7 @@ void EDL::insert_asset(Asset *asset, if(new_nested_edl) { - length = new_nested_edl->tracks->total_playable_length(); + length = new_nested_edl->tracks->total_length(); layers = 1; channels = new_nested_edl->session->audio_channels; } @@ -1479,7 +1496,7 @@ int EDL::get_sample_rate() int64_t EDL::get_audio_samples() { - return (int64_t)(tracks->total_playable_length() * + return (int64_t)(tracks->total_length() * session->sample_rate); } @@ -1516,7 +1533,7 @@ int EDL::get_video_layers() int64_t EDL::get_video_frames() { - return (int64_t)(tracks->total_playable_length() * + return (int64_t)(tracks->total_length() * session->frame_rate); }