fix a/v module nested command setup
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / mwindow.C
index bd7f556b2cf6aba1db1f59112d390a4b99b6268f..8b93262c4e6930cd53027d40c9b3b5f2309d1c67 100644 (file)
@@ -4456,11 +4456,7 @@ void MWindow::remove_from_caches(Indexable *idxbl)
                delete gui->render_engine;
                gui->render_engine = 0;
        }
-       if( gui->resource_thread->render_engine_id == idxbl->id ) {
-               gui->resource_thread->render_engine_id = -1;
-               delete gui->resource_thread->render_engine;
-               gui->resource_thread->render_engine = 0;
-       }
+       gui->resource_thread->close_indexable(idxbl);
        if( !idxbl->is_asset ) return;
        Asset *asset = (Asset *)idxbl;
        audio_cache->delete_entry(asset);
@@ -5083,13 +5079,17 @@ PatchGUI *MWindow::get_patchgui(Track *track)
         return patchgui;
 }
 
-int MWindow::get_cpus()
+int MWindow::get_cpus(int out_w, int out_h)
 {
-       int out_w = edl->session->output_w;
-       int out_h = edl->session->output_h;
+       if( !out_w ) out_w = edl->session->output_w;
+       if( !out_h ) out_h = edl->session->output_h;
        int cpus = out_w*out_h/0x80000 + 1;
        if( cpus > preferences->processors )
                cpus = preferences->processors;
        return cpus;
 }
+int MWindow::get_cpus()
+{
+       return get_cpus(edl->session->output_w, edl->session->output_h);
+}