X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fframecache.C;h=fdf7ef358e11088c696869555efefbe5d354469c;hp=4f1a8eb03569f92e0322967ab462c0f39a1f62a2;hb=refs%2Fheads%2Fmaster;hpb=2441cb0cb7f655fad2f76c982f2ac93897d09dbe diff --git a/cinelerra-5.1/cinelerra/framecache.C b/cinelerra-5.1/cinelerra/framecache.C index 4f1a8eb0..b8eed886 100644 --- a/cinelerra-5.1/cinelerra/framecache.C +++ b/cinelerra-5.1/cinelerra/framecache.C @@ -181,7 +181,12 @@ void FrameCache::put_cache_frame(VFrame *frame, int64_t position, int color_model = frame->get_color_model(); int ret = frame_exists(position, layer, frame_rate, w, h, color_model, &item, -1); - if( use_copy ) frame = new VFrame(*frame); + if( use_copy ) { +// do not use shm here, puts too much pressure on 32bit systems + VFrame *vframe = new VFrame(w, h, color_model, 0); + vframe->copy_from(frame); + frame = vframe; + } if( ret ) { delete item->data; item->data = frame;