View Single Post
Old 9th September 2013, 21:46   #202  |  Link
martin53
Registered User
 
Join Date: Mar 2007
Posts: 407
Memory leak in ConvertToYV24() ?

Please forgive me if I'm wrong or if the issue is already known - I couldn't find a similar post.

I suspect a 'memory leak' in the ConvertToYV24() function of V2.60.
I load the test script
Code:
ColorBars()
#~ ConvertToYV24()
ScriptClip("return last")
with XMediaRecode and observe its memory usage with ProcessExplorer. While converting the script to a HuffYuv AVI file, XMediaRecode's memory usage stays constant btw. 87 and 90 MBytes.
With the uncommented ConvertToYV24() Line, memory usage grows and grows. With more complex scripts (a ~15 line scriptclip that overlays 4 lines calculated with RTE stats functions over a Histogram("color2") ), the encoder crashes when memory usage reaches about 1,8MBytes.
VDub Portable (1.9.11) also crashes with a message "Think we ran out of memory folks".
OS details in this thread

EDIT: This is the crash script. Omit 'ConvertToYV24()', then it uses about 560MB, not more.
Code:
#=====================================================================================================================
function UVMeterBad(clip c) {
	c
	ScriptClip("""	#"
		c = Last
		c1 = c.crop(0,0,-256,0)
		cU = c1.UToY.BicubicResize(c1.width, c1.height)
		cV = c1.VToY.BicubicResize(c1.width, c1.height)
		MYStats(cU, flgs=$23)
		Um= MYS_yMin	#cU.RT_YPlaneMin()
		Ux= MYS_yMax	#cU.RT_YPlaneMax()
		Us= round(MYS_yStdev)	#round(cU.RT_YPlaneStdev)
		MYStats(cV, flgs=$23)
		Vm= MYS_yMin	#cV.RT_YPlaneMin()
		Vx= MYS_yMax	#cV.RT_YPlaneMax()
		Vs= round(MYS_yStdev)	#round(cV.RT_YPlaneStdev)
		Ymax = c1.YPlaneMax()
		MYStats(cU, c1, flgs=$10, prefix="MUS_", MaskMin=Ymax-1)
		MYStats(cV, c1, flgs=$10, prefix="MVS_", MaskMin=Ymax-1)
		c
		Overlay(BlankClip(c,pixel_type="RGB32",color=$80ff00,width=57,height=1),x=c.width-157,y=127,mode="Exclusion")	#cross hor.
		Overlay(BlankClip(c,pixel_type="RGB32",color=$80ff00,width=1,height=57),x=c.width-129,y=99,mode="Exclusion")	#cross vert.
		Overlay(BlankClip(c,pixel_type="RGB32",color=$ffffff,width=Ux-Um,height=1),x=c.width-129+Um-128,y=127+round(MVS_yAve)-128,mode="Exclusion")	#range hor.
		Overlay(BlankClip(c,pixel_type="RGB32",color=$ffffff,width=1,height=Vx-Vm),x=c.width-129+round(MUS_yAve)-128,y=127+Vm-128,mode="Exclusion") #range vert.
		return last
	""", local=true)	#"
	return last
}
#=====================================================================================================================
ColorBars(pixel_type="YV12")
ConvertToYV24()
Histogram("color2")
UVmeterBad()

Last edited by martin53; 9th September 2013 at 22:24.
martin53 is offline   Reply With Quote