add auto zoombar/status color, fix 3 batchrender boobies, rotate plugin tweaks, add...
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / render.C
index 7bfb1f768beee8bf890ea537f187264684522a8b..0398ccf095854e5dbd77cc7b9eb286be03b490d7 100644 (file)
@@ -661,6 +661,7 @@ RenderThread::RenderThread(MWindow *mwindow, Render *render)
 {
        this->mwindow = mwindow;
        this->render = render;
+       render_frames = 0;
 }
 
 RenderThread::~RenderThread()
@@ -672,7 +673,7 @@ void RenderThread::render_single(int test_overwrite, Asset *asset, EDL *edl,
        int strategy, int range_type)
 {
 // Total length in seconds
-       double total_length;
+       double total_length = 0;
        RenderFarmServer *farm_server = 0;
        FileSystem fs;
        const int debug = 0;
@@ -737,6 +738,7 @@ void RenderThread::render_single(int test_overwrite, Asset *asset, EDL *edl,
                        render->result = 1;
                }
        }
+       render_frames = render->default_asset->frame_rate * total_length;
 
 // Generate packages
        if(!render->result)
@@ -807,26 +809,16 @@ void RenderThread::render_single(int test_overwrite, Asset *asset, EDL *edl,
 
 // Perform local rendering
 
-
        if(!render->result)
        {
                render->start_progress();
 
-
-
-
                MainPackageRenderer package_renderer(render);
                render->result = package_renderer.initialize(mwindow,
                                command->get_edl(),   // Copy of master EDL
                                render->preferences,
                                render->default_asset);
 
-
-
-
-
-
-
                while(!render->result)
                {
 // Get unfinished job
@@ -856,14 +848,8 @@ void RenderThread::render_single(int test_overwrite, Asset *asset, EDL *edl,
 
                } // file_number
 
-
-
 printf("Render::render_single: Session finished.\n");
 
-
-
-
-
                if( strategy == SINGLE_PASS_FARM ||
                    strategy == FILE_PER_LABEL_FARM ) {
                        if( !render->progress ) {
@@ -904,11 +890,9 @@ if(debug) printf("Render::render %d\n", __LINE__);
 
 // Delete the progress box
                render->stop_progress();
-
 if(debug) printf("Render::render %d\n", __LINE__);
        }
 
-
 // Paste all packages into timeline if desired
 
        if(!render->result &&
@@ -988,6 +972,8 @@ if(debug) printf("Render::render %d\n", __LINE__);
 
 void RenderThread::run()
 {
+       Timer render_timer;
+
        if( mwindow )
                render->preferences->copy_from(mwindow->preferences);
 
@@ -1071,6 +1057,10 @@ void RenderThread::run()
                }
        }
        render->completion->unlock();
+       double render_time = render_timer.get_difference() / 1000.0;
+       double render_rate = render_time > 0 ? render_frames / render_time : 0;
+       printf("** rendered %jd frames in %0.3f secs, %0.3f fps\n",
+               render_frames, render_time, render_rate);
 
        if( render->mode == Render::INTERACTIVE && render->beep )
                mwindow->beep(3000., 1.5, 0.5);