[Mlt-devel] Well, well, well! (Was: A smaller test case ...)
Brought to you by:
ddennedy,
lilo_booter
From: Kingsley G. M. Jr. <kin...@lo...> - 2018-03-16 21:43:01
|
O Dan who can and has began! Thank you very much for focusing your laser like skilz on my bug. I like your plan to take a closer look at what can be done to reduce memory usage. So, Kingsley On 03/16/2018 19:52, Dan Dennedy wrote: > I took some time today to build kdenlive (master branch) and test this > out... > > On Thu, Feb 22, 2018 at 12:20 AM Jean-Baptiste Mardelle <jb...@kd...> > wrote: > > > On 17.02.2018 05:55, Kingsley G. Morse Jr. wrote: > > > I'm happy to provide you with an even smaller and > > > easier test case. > > > > > > Just > > > > > > 1.) copy the attached tar archive "bug.2.tar" > > > to the /tmp directory and > > > > > > 2.) do what the attached video shows > > > > > > $ cd /tmp > > > > > > $ tar -xvf bug.2.tar > > > > > > $ kdenlive bug.2.kdenlive > > > > > > Select track Video 3's Affine transition > > > by clicking on it with the mouse > > > > > > Click on the "Go to next key frame" > > > button. > > > > > > Wait a moment for > > > > > > "[mlt_pool] out of memory" > > > > > > in the console. > > > > I did not get the above error even though my system only has 6 GiB RAM and > only 2.7 free at this time with Gnome Shell, Firefox with 2 tabs, and a > terminal window open. However, running top in the terminal I do observe the > RES going up to about 2.4g when running this test. > > > > > > Hi all, > > > > Sorry for the late feedback. So I made a few tests and found some > > interesting facts. > > The problem seems related to frame buffer. > > > > When setting the "buffer" property to 0 on the consumer (sdl2_audio) in > > Kdenlive, the memory usage stays stable (around 500Mb). > > > > When setting the buffer to 25 (default in Kdenlive), I get 2 different > > situations: > > - When using an HD 25fps profile, memory usage goes to about 700Mb > > - When using a SD NTSC profile, memory usage quickly goes up to 2.3Gb. > > > > > The only way I was able to reproduce the above was by using the Project > Settings dialog in Kdenlive to change the profile because in that case, for > me, images no longer load and all I get is black in the preview area. If I > edit the .kdenlive file to change the profile element, then I still > reproduce a high memory usage. Curiously, the lower resolution does use > about 200 MiB more than 1280x720 in my tests. The frame rate did not make a > difference. Also, it is not really necessary to select the Affine effect > and click next keyframe. Simply scrubbing the timeline or switching to > Project Monitor and playing the project through also uses up to ~2.4g RES. > > > > These tests were done with the image attached in the latest email > > (3800x2500 jpeg). > > > > At this point, I should point out that, in MLT, using high resolution > images with affine generally requires a lot of memory. This is because > affine requests the full source resolution from the source producer and > bypasses the automatic scaling to project resolution. It does this so you > can use affine to crop and scale and take advantage of all the available > resolution. Imagine a heavy cropping scenario like a portrait photo > included in a 16:9 video resolution and wanting little-to-no black bars. > Best to do that by cropping from the original image instead of scaling > original image down to 1280x720, cropping top and bottom to achieve 16:9, > and then scaling that up to fill the video frame. > > Affine works in RGBA such that there are 4 bytes per pixel. As a result > 3800 * 2500 * 4 = ~36.24 MiB. If for some reason - for example, lack of > optimizations - there are 2 of these per MLT frame (after all there are 2 > affine effects in the project), and there are 25 MLT frames in the consumer > buffer JB mentions above; then 36.24 MiB * 2 * 25 ~= 1.8 GiB. Add to that > memory used by the MLT and Kdenlive, and we start to approach the RES > number I was seeing. I should also point out that the RES number stays > around this high level and does not grow excessively while scrubbing, > playing, and clicking next keyframe. > > Playing the project with "melt -consumer sdl2 buffer=1" uses ~1.5g RES > where buffer=25 makes it shoot up to 2.8g. > Now I can take a closer look at what can be done to reduce memory usage. > > I will try to make more tests but wondering if the frame caching bugs > > when using profile with a non integer fps profile.. > > > > Regards > > jb > > > > > > > So, > > > Kingsley > > > > > > > > > > > ------------------------------------------------------------------------------ > > Check out the vibrant tech community on one of the world's most > > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > > _______________________________________________ > > Mlt-devel mailing list > > Mlt...@li... > > https://lists.sourceforge.net/lists/listinfo/mlt-devel > > -- Time is the fire in which we all burn. |