Just wanted to provide an update on some of my troubleshooting efforts.
- The problem doesn't appear to be related to specific cameras. I recently got some IDS and Basler cameras. I experienced same random crashing and closing with IDS and Basler as well.
- USB connections are clean and I was getting over 400MB/s with no drops.
- I experienced the same issue even when running a Replay observer instance. The instance just went away on its own.
- I re-installed Kinovea several times and also moved the program and capture folders to a SSD drive different from the Windows OS SSD drive to avoid any contention with Windows.
At this point, I'm at my wits end as to how to further troubleshoot this issue. Welcome any suggestions. Thanks!
I saw several unhandled crashes. They happened during my testing, but I don't know when those occurred and what I was doing exactly. (Could be just an artifact the Replay instance errored out as the capture instance crashed.) Here are some of unhandled crash files.
Message: Value cannot be null.
Parameter name: src
Source: mscorlib
Target site: Void BlockCopy(System.Array, Int32, System.Array, Int32, Int32)
InnerException:
Stack: at System.Buffer.BlockCopy(Array src, Int32 srcOffset, Array dst, Int32 dstOffset, Int32 count)
at Kinovea.Pipeline.FramePipeline.WriteSlot(Byte[] bytes, Int32 payloadLength, Frame entry)
at Kinovea.Pipeline.FramePipeline.producer_FrameProduced(Object sender, FrameProducedEventArgs e)
at System.EventHandler`1.Invoke(Object sender, TEventArgs e)
at Kinovea.Camera.IDS.FrameGrabber.camera_EventFrame(Object sender, EventArgs e)
at uEye.Camera.eventHandler(Object sender, WhichEventArgs e)
at uEye.EventThreadHandler.WaitForEvent()
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
Message: Object reference not set to an instance of an object.
Source: Kinovea.ScreenManager
Target site: Void ProcessEntry(Int64, Kinovea.Pipeline.Frame)
InnerException:
Stack: at Kinovea.ScreenManager.ConsumerDelayer.ProcessEntry(Int64 position, Frame entry)
at Kinovea.Pipeline.Consumers.AbstractConsumer.Loop()
at Kinovea.Pipeline.Consumers.AbstractConsumer.Run()
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
Message: Object reference not set to an instance of an object.
Source: Kinovea.ScreenManager
Target site: Int64 get_ConsumerPosition()
InnerException:
Stack: at Kinovea.ScreenManager.ConsumerDisplay.get_ConsumerPosition()
at Kinovea.Pipeline.RingBuffer.<>c__DisplayClass25_0.<IsWriteable>b__0(IFrameConsumer c)
at System.Linq.Enumerable.All[TSource](IEnumerable`1 source, Func`2 predicate)
at Kinovea.Pipeline.RingBuffer.TryClaim(Frame& entry)
at Kinovea.Pipeline.FramePipeline.producer_FrameProduced(Object sender, FrameProducedEventArgs e)
at System.EventHandler`1.Invoke(Object sender, TEventArgs e)
at Kinovea.Camera.IDS.FrameGrabber.camera_EventFrame(Object sender, EventArgs e)
at System.EventHandler.Invoke(Object sender, EventArgs e)
at uEye.Camera.eventHandler(Object sender, WhichEventArgs e)
at uEye.EventThreadHandler.WaitForEvent()
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()