fix edl break created by creating a clip in open edl edit mode
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / render.C
index 55f88606eb48a1a2bf89a04cbd7605e562f8bd81..741d6ff3747c0ef55dbbe5e5aeddf00584c09fe0 100644 (file)
@@ -338,7 +338,7 @@ void Render::handle_close_event(int result)
        }
        EDL *edl = mwindow->edl;
        if( !result && use_labels && !edl->labels->first ) {
-               eprintf(_("render file per label and no labels\n"));
+               eprintf(_("Create new file at labels checked, but no labels\n"));
                result = 1;
        }
        if( !result && asset->video_data ) {
@@ -733,8 +733,8 @@ void RenderThread::render_single(int test_overwrite, Asset *asset, EDL *edl,
                        render->result = 1;
                }
        }
-
-       render_frames = render->default_asset->frame_rate * total_length;
+// prevent single frame truncation to zero frames
+       render_frames = render->default_asset->frame_rate * total_length + 1e-4;
 
 // Generate packages
        if( !render->result ) {
@@ -882,8 +882,8 @@ printf("Render::render_single: Session finished.\n");
                mwindow->restart_brender();
        if( farm_server ) delete farm_server;
        delete command;
-       delete audio_cache;
-       delete video_cache;
+       audio_cache->remove_user();
+       video_cache->remove_user();
 // Must delete packages after server
        delete render->packages;
 
@@ -955,8 +955,9 @@ void RenderThread::run()
                        render_frames, render_time, render_rate);
        }
 
-       if( render->mode == Render::INTERACTIVE && render->beep > 0 )
-               mwindow->beep(3000., 1.5, render->beep);
+       float gain = render->beep;
+       if( render->mode == Render::INTERACTIVE && gain > 0 )
+               mwindow->beep(3000., 1.5, gain);
 
        if( script ) {
                if( !render->result )