X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fresourcethread.C;h=430678cc578c67b3c90527cb68f9822a5da92300;hb=3f6a262cfe390b3f8b275297d64565a5b6272969;hp=c3d69412ce65604194b7a6cbe63e47c001dfb9d2;hpb=155cea9e8f0f6a59f3e713230575603da305d47e;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/resourcethread.C b/cinelerra-5.1/cinelerra/resourcethread.C index c3d69412..430678cc 100644 --- a/cinelerra-5.1/cinelerra/resourcethread.C +++ b/cinelerra-5.1/cinelerra/resourcethread.C @@ -164,7 +164,7 @@ ResourceThread::ResourceThread(MWindow *mwindow, MWindowGUI *gui) temp_picon = 0; temp_picon2 = 0; draw_lock = new Condition(0, "ResourceThread::draw_lock", 0); -// interrupted_lock = new Condition(0, "ResourceThread::interrupted_lock", 0); + source_lock = new Condition(1, "ResourceThread::source_lock", 0); item_lock = new Mutex("ResourceThread::item_lock"); audio_buffer = 0; for(int i = 0; i < MAXCHANNELS; i++) @@ -186,7 +186,7 @@ ResourceThread::~ResourceThread() { stop(); delete draw_lock; -// delete interrupted_lock; + delete source_lock; delete item_lock; delete temp_picon; delete temp_picon2; @@ -298,7 +298,7 @@ void ResourceThread::run() { draw_lock->lock("ResourceThread::run"); - + source_lock->lock("ResourceThread::run"); while(!interrupted) { // Pull off item @@ -329,6 +329,7 @@ void ResourceThread::run() get_audio_source(0); get_video_source(0); mwindow->age_caches(); + source_lock->unlock(); } } @@ -364,7 +365,7 @@ void ResourceThread::open_render_engine(EDL *nested_edl, command.change_type = CHANGE_ALL; command.realtime = 0; render_engine = new RenderEngine(0, - mwindow->preferences, 0, 0, 0); + mwindow->preferences, 0, 0); render_engine_id = nested_edl->id; render_engine->set_vcache(mwindow->video_cache); render_engine->set_acache(mwindow->audio_cache);