Hi,
I am from Gallagher and we have Command Centre product which can show video feeds. For our product we have written a Milestone video integration using Milestone MIPS SDK 2016.
Our integration references dll files from the MIPS 2016 SDK and includes these files with our product installer. For our testing we are using Milestone server XProtect 2018.
Our application mostly works good when playing a Live video, however we have seen gradual increase in memory usage when using video playback, which eventually leads to a application crash.
I have written a sample application which could easily re-produce this problem by leaving it running overnight.
If we leave the application running overnight playing video playback then after few hours you would see a sudden increase in memory and it keeps growing.
Milestone SDK kept throwing the same type of exception while the memory usage was increasing.
The Exception is,
SendMessageSendMessage ()Object reference not set to an instance of an object. at VideoOS.Platform.Client.TimeLineUserControl.DisplayLine()
at VideoOS.Platform.Client.TimeLineUserControl.SetShowTimePrivate(DateTime newCenter)
at VideoOS.Platform.Client.TimeLineUserControl.SetShowTime(DateTime newCenter)
at VideoOS.Platform.Client.PlaybackUserControlMini.TimeChangedHandler(Message message, FQID dest, FQID sender)
at VideoOS.Platform.SDK.Platform.SDKEnvironmentManager.ExecuteMessage(Message message, FQID destination, FQID sender, String logMessage)
MIP: Error: SendMessage ():Exception source: VideoOS.Platform
Exception type: System.NullReferenceException
Exception message: Object reference not set to an instance of an object.
Exception target site: DisplayLine
at VideoOS.Platform.Client.TimeLineUserControl.DisplayLine()
at VideoOS.Platform.Client.TimeLineUserControl.SetShowTimePrivate(DateTime newCenter)
at VideoOS.Platform.Client.TimeLineUserControl.SetShowTime(DateTime newCenter)
at VideoOS.Platform.Client.PlaybackUserControlMini.TimeChangedHandler(Message message, FQID dest, FQID sender)
at VideoOS.Platform.SDK.Platform.SDKEnvironmentManager.ExecuteMessage(Message message, FQID destination, FQID sender, String logMessage)
The sample will look like this,
The Memory usage graph captured by us:
I have attached the MilesteonTest.zip - Sample Application which is a Dot Net WinForm application and written using Visual Studio 2017. Its zipped size is 51MB as it includes MIPS 2016.
Please note that we have tried using latest MIPS 2018 SDK - but we ran into more performance issues - hence discarded that idea.
Can you please have a look here and show some light on this playback memory issue?
Please let me know if you need more information.
Thanks
Sandeep Sharma
c

