X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fresourcepixmap.C;h=f184e2fe17d23f5757aaa88a4ae39b86c6b31e6e;hb=9db053d413fde01439cc72ec2109913dfda2ec7b;hp=3892c54f3618c23cca36c25b53f316ab44a1dc95;hpb=30bdb85eb33a8ee7ba675038a86c6be59c43d7bd;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/resourcepixmap.C b/cinelerra-5.1/cinelerra/resourcepixmap.C index 3892c54f..f184e2fe 100644 --- a/cinelerra-5.1/cinelerra/resourcepixmap.C +++ b/cinelerra-5.1/cinelerra/resourcepixmap.C @@ -634,7 +634,9 @@ void ResourcePixmap::draw_audio_source(TrackCanvas *canvas, if(indexable->is_asset) { + mwindow->gui->unlock_window(); File *source = mwindow->audio_cache->check_out(edit->asset, mwindow->edl); + mwindow->gui->lock_window("draw_audio_source"); if(!source) { @@ -665,7 +667,7 @@ void ResourcePixmap::draw_audio_source(TrackCanvas *canvas, command.change_type = CHANGE_ALL; command.realtime = 0; mwindow->gui->render_engine = new RenderEngine(0, - mwindow->preferences, 0, 0, 0); + mwindow->preferences, 0, 0); mwindow->gui->render_engine_id = edit->nested_edl->id; mwindow->gui->render_engine->set_acache(mwindow->audio_cache); mwindow->gui->render_engine->arm_command(&command); @@ -850,8 +852,11 @@ void ResourcePixmap::draw_video_resource(TrackCanvas *canvas, int64_t picon_h = edit->picon_h(); -// Don't draw video if picon is empty or bigger than edit - if( picon_w <= 0 || picon_w > edit_w ) return; +// if( picon_w <= 0 || picon_w > edit_w ) return; +// Don't draw video if picon is empty, or edit only hairline + if( picon_w < 1 || edit_w < 2 ) return; +// or bigger than edit and fills at less than 1.5 percent timeline + if( picon_w > edit_w && edit_w < canvas->get_w()/64 ) return; // pixels spanned by a frame double frame_w = edit->frame_w();