add Autosave continuous backups by Andras Reuss and Andrew-R
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / packagedispatcher.C
index aa88d5f12cdae8f437929265b813b857bcfb0e61..17d02c0d3bad198b0e60f228f5403689ad93f3bc 100644 (file)
@@ -102,7 +102,7 @@ int PackageDispatcher::create_packages(MWindow *mwindow, EDL *edl,
                strcpy(packages[0]->path, default_asset->path);
                break;
        case SINGLE_PASS_FARM:
-               packaging_engine = File::new_packaging_engine(default_asset);
+               packaging_engine = (PackagingEngine*)new PackagingEngineDefault();
                packaging_engine->create_packages_single_farm(edl, preferences,
                                default_asset, total_start, total_end);
                break;
@@ -189,6 +189,7 @@ int PackageDispatcher::create_packages(MWindow *mwindow, EDL *edl,
 // Only if this isn't a background render or non interactive.
        if( strategy != BRENDER_FARM && test_overwrite && mwindow ) {
                ArrayList<char*> paths;
+               paths.set_array_delete();
                get_package_paths(&paths);
                result = ConfirmSave::test_files(mwindow, &paths);
                paths.remove_all_objects();
@@ -278,9 +279,11 @@ RenderPackage* PackageDispatcher::get_package(double frames_per_second,
                        result->video_start = video_position;
                        result->audio_end = result->audio_start +
                                Units::to_int64(scaled_len * default_asset->sample_rate);
+                       if( result->audio_end > audio_end ) result->audio_end = audio_end;
                        result->video_end = result->video_start +
                                Units::to_int64(scaled_len * default_asset->frame_rate);
-                       if(result->video_end == result->video_start) result->video_end++;
+                       if( result->video_end > video_end ) result->video_end = video_end;
+                       if( result->video_end == result->video_start ) result->video_end++;
                        audio_position = result->audio_end;
                        video_position = result->video_end;
                        result->audio_do = default_asset->audio_data;