1 (edited by acme_engineer 2026-07-03 07:07:38)

I'm using Kinovea to track particles of rock being ejected from a mining blast. However, if I add tracking to the perspective grid I am using for calibration, after the grid has been moved any additional tracking I try to complete causes the app to hard crash without an error message.

Repro:

1. Add a perspective grid and track it as the camera repositions.
2. Finish the perspective grid tracking once the camera has settled.
3. Being tracking other items in the video
4. Once enough time has elapses that the perspective grid tracking has finished, attempting to track anything else causes hard crash - no error message is shown.

This issue persists even after closing and reopening the application. Has anyone else experienced this, or is this a known issue with a work around?

**EDIT**

It has now given an error before crashing:

See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.AggregateException: One or more errors occurred. ---> System.AggregateException: One or more errors occurred. ---> System.IndexOutOfRangeException: Index was outside the bounds of the array.
   at Kinovea.ScreenManager.FilteredTrajectory.Initialize(List`1 samples, CalibrationHelper calibrationHelper)
   at Kinovea.ScreenManager.DrawingTrack.UpdateKinematics()
   at System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.<ForWorker>b__1()
   at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
   at System.Threading.Tasks.Task.<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0(Object <p0>)
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Func`4 bodyWithLocal, Func`1 localInit, Action`1 localFinally)
   at System.Threading.Tasks.Parallel.ForEachWorker[TSource,TLocal](IEnumerable`1 source, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Action`3 bodyWithStateAndIndex, Func`4 bodyWithStateAndLocal, Func`5 bodyWithEverything, Func`1 localInit, Action`1 localFinally)
   at System.Threading.Tasks.Parallel.ForEach[TSource](IEnumerable`1 source, Action`1 body)
   at Kinovea.ScreenManager.Metadata.UpdateTrajectoriesKinematics()
   at System.EventHandler.Invoke(Object sender, EventArgs e)
   at Kinovea.ScreenManager.CalibrationHelper.AfterCalibrationChanged()
   at Kinovea.ScreenManager.CalibrationHelper.CalibrationByPlane_Update(Guid id, QuadrilateralF quadImage)
   at Kinovea.ScreenManager.DrawingPlane.SetTrackablePointValue(String name, PointF value, Int64 trackingTimestamps)
   at Kinovea.ScreenManager.DrawingTracker.ObjectTrackingStep(DrawingTrack track, TimedPoint tp)
   at Kinovea.ScreenManager.TrackabilityManager.AfterTrackTrackingStep(DrawingTrack track, TimedPoint tp)
   at System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.<ForWorker>b__1()
   at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
   at System.Threading.Tasks.Task.<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0(Object <p0>)
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Func`4 bodyWithLocal, Func`1 localInit, Action`1 localFinally)
   at System.Threading.Tasks.Parallel.ForEachWorker[TSource,TLocal](IEnumerable`1 source, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Action`3 bodyWithStateAndIndex, Func`4 bodyWithStateAndLocal, Func`5 bodyWithEverything, Func`1 localInit, Action`1 localFinally)
   at System.Threading.Tasks.Parallel.ForEach[TSource](IEnumerable`1 source, Action`1 body)
   at Kinovea.ScreenManager.Metadata.PerformTracking(VideoFrame videoframe)
   at Kinovea.ScreenManager.PlayerScreenUserInterface.ComputeOrStopTracking(Boolean contiguous)
   at Kinovea.ScreenManager.PlayerScreenUserInterface.ShowNextFrame(Int64 _iSeekTarget, Boolean _bAllowUIUpdate)
   at Kinovea.ScreenManager.PlayerScreenUserInterface.buttonGotoNext_Click(Object sender, EventArgs e)
   at Kinovea.ScreenManager.PlayerScreenUserInterface.ExecuteScreenCommand(Int32 cmd)
   at Kinovea.Services.KinoveaControl.ProcessCmdKey(Message& msg, Keys keyData)
   at System.Windows.Forms.Control.ProcessCmdKey(Message& msg, Keys keyData)
   at System.Windows.Forms.ContainerControl.ProcessCmdKey(Message& msg, Keys keyData)
   at System.Windows.Forms.Control.ProcessCmdKey(Message& msg, Keys keyData)
   at System.Windows.Forms.Control.ProcessCmdKey(Message& msg, Keys keyData)
   at System.Windows.Forms.ContainerControl.ProcessCmdKey(Message& msg, Keys keyData)
   at System.Windows.Forms.Control.ProcessCmdKey(Message& msg, Keys keyData)
   at System.Windows.Forms.Control.ProcessCmdKey(Message& msg, Keys keyData)
   at System.Windows.Forms.Control.ProcessCmdKey(Message& msg, Keys keyData)
   at System.Windows.Forms.Control.PreProcessMessage(Message& msg)
   at System.Windows.Forms.Control.PreProcessControlMessageInternal(Control target, Message& msg)
   at System.Windows.Forms.Application.ThreadContext.PreTranslateMessage(MSG& msg)
---> (Inner Exception #0) System.AggregateException: One or more errors occurred. ---> System.IndexOutOfRangeException: Index was outside the bounds of the array.
   at Kinovea.ScreenManager.FilteredTrajectory.Initialize(List`1 samples, CalibrationHelper calibrationHelper)
   at Kinovea.ScreenManager.DrawingTrack.UpdateKinematics()
   at System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.<ForWorker>b__1()
   at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
   at System.Threading.Tasks.Task.<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0(Object <p0>)
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Func`4 bodyWithLocal, Func`1 localInit, Action`1 localFinally)
   at System.Threading.Tasks.Parallel.ForEachWorker[TSource,TLocal](IEnumerable`1 source, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Action`3 bodyWithStateAndIndex, Func`4 bodyWithStateAndLocal, Func`5 bodyWithEverything, Func`1 localInit, Action`1 localFinally)
   at System.Threading.Tasks.Parallel.ForEach[TSource](IEnumerable`1 source, Action`1 body)
   at Kinovea.ScreenManager.Metadata.UpdateTrajectoriesKinematics()
   at System.EventHandler.Invoke(Object sender, EventArgs e)
   at Kinovea.ScreenManager.CalibrationHelper.AfterCalibrationChanged()
   at Kinovea.ScreenManager.CalibrationHelper.CalibrationByPlane_Update(Guid id, QuadrilateralF quadImage)
   at Kinovea.ScreenManager.DrawingPlane.SetTrackablePointValue(String name, PointF value, Int64 trackingTimestamps)
   at Kinovea.ScreenManager.DrawingTracker.ObjectTrackingStep(DrawingTrack track, TimedPoint tp)
   at Kinovea.ScreenManager.TrackabilityManager.AfterTrackTrackingStep(DrawingTrack track, TimedPoint tp)
   at System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.<ForWorker>b__1()
   at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
   at System.Threading.Tasks.Task.<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0(Object <p0>)
---> (Inner Exception #0) System.IndexOutOfRangeException: Index was outside the bounds of the array.
   at Kinovea.ScreenManager.FilteredTrajectory.Initialize(List`1 samples, CalibrationHelper calibrationHelper)
   at Kinovea.ScreenManager.DrawingTrack.UpdateKinematics()
   at System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.<ForWorker>b__1()
   at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
   at System.Threading.Tasks.Task.<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0(Object <p0>)<---
<---



************** Loaded Assemblies **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9324.0 built by: NET481REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
----------------------------------------
Kinovea
    Assembly Version: 2025.2.0.0
    Win32 Version: 2025.2.0.0
    CodeBase: file:///C:/Program%20Files%20(x86)/Kinovea/Kinovea.exe
----------------------------------------
CrowdStrike.Sensor.ScriptControl
    Assembly Version: 7.38.21003.0
    Win32 Version: 7.38.21003.0
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/CrowdStrike.Sensor.ScriptControl/7.38.21003.0__02b60967b1f68187/CrowdStrike.Sensor.ScriptControl.dll
----------------------------------------
Kinovea.Services
    Assembly Version: 1.0.1.25614
    Win32 Version: 1.0.1.0
    CodeBase: file:///C:/Program%20Files%20(x86)/Kinovea/Kinovea.Services.DLL
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9324.0 built by: NET481REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9332.0 built by: NET481REL1LAST_B
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9032.0 built by: NET481REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
log4net
    Assembly Version: 2.0.14.0
    Win32 Version: 2.0.14.0
    CodeBase: file:///C:/Program%20Files%20(x86)/Kinovea/log4net.DLL
----------------------------------------
System.Configuration
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9032.0 built by: NET481REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Core
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9334.0 built by: NET481REL1LAST_B
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9032.0 built by: NET481REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Accessibility
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9032.0 built by: NET481REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
----------------------------------------
Kinovea.Video.Bitmap
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0
    CodeBase: file:///C:/Program%20Files%20(x86)/Kinovea/Kinovea.Video.Bitmap.DLL
----------------------------------------
Kinovea.Video
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0
    CodeBase: file:///C:/Program%20Files%20(x86)/Kinovea/Kinovea.Video.DLL
----------------------------------------
Kinovea.Video.FFMpeg
    Assembly Version: 1.0.1.25622
    Win32 Version:
    CodeBase: file:///C:/Program%20Files%20(x86)/Kinovea/Kinovea.Video.FFMpeg.DLL
----------------------------------------
Kinovea.Video.GIF
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0
    CodeBase: file:///C:/Program%20Files%20(x86)/Kinovea/Kinovea.Video.GIF.DLL
----------------------------------------
Kinovea.Video.SVG
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0
    CodeBase: file:///C:/Program%20Files%20(x86)/Kinovea/Kinovea.Video.SVG.DLL
----------------------------------------
Kinovea.Video.Synthetic
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0
    CodeBase: file:///C:/Program%20Files%20(x86)/Kinovea/Kinovea.Video.Synthetic.DLL
----------------------------------------
Kinovea.ScreenManager
    Assembly Version: 1.0.1.0
    Win32 Version: 1.0.1.0
    CodeBase: file:///C:/Program%20Files%20(x86)/Kinovea/Kinovea.ScreenManager.DLL
----------------------------------------
Kinovea.Camera.DirectShow
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0
    CodeBase: file:///C:/Program%20Files%20(x86)/Kinovea/Kinovea.Camera.DirectShow.DLL
----------------------------------------
Kinovea.Camera
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0
    CodeBase: file:///C:/Program%20Files%20(x86)/Kinovea/Kinovea.Camera.DLL
----------------------------------------
Kinovea.Camera.HTTP
    Assembly Version: 1.0.9576.25617
    Win32 Version: 1.0.9576.25617
    CodeBase: file:///C:/Program%20Files%20(x86)/Kinovea/Kinovea.Camera.HTTP.DLL
----------------------------------------
Kinovea.Camera.FrameGenerator
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Program%20Files%20(x86)/Kinovea/Kinovea.Camera.FrameGenerator.DLL
----------------------------------------
Kinovea.FileBrowser
    Assembly Version: 1.0.1.25629
    Win32 Version: 1.0.1.0
    CodeBase: file:///C:/Program%20Files%20(x86)/Kinovea/Kinovea.FileBrowser.DLL
----------------------------------------
Kinovea.Updater
    Assembly Version: 1.0.1.25617
    Win32 Version: 1.0.1.0
    CodeBase: file:///C:/Program%20Files%20(x86)/Kinovea/Kinovea.Updater.DLL
----------------------------------------
ExpTreeLib
    Assembly Version: 2.11.9384.4409
    Win32 Version: 2.11.9384.4409
    CodeBase: file:///C:/Program%20Files%20(x86)/Kinovea/ExpTreeLib.DLL
----------------------------------------
ObjectListView
    Assembly Version: 2.9.1.1072
    Win32 Version: 2.9.1.0
    CodeBase: file:///C:/Program%20Files%20(x86)/Kinovea/ObjectListView.DLL
----------------------------------------
Microsoft.VisualBasic
    Assembly Version: 10.0.0.0
    Win32 Version: 14.8.9032.0 built by: NET481REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
----------------------------------------
OpenCvSharp
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Program%20Files%20(x86)/Kinovea/OpenCvSharp.DLL
----------------------------------------
NAudio.WinMM
    Assembly Version: 2.2.1.0
    Win32 Version: 2.2.1.0
    CodeBase: file:///C:/Program%20Files%20(x86)/Kinovea/NAudio.WinMM.DLL
----------------------------------------
netstandard
    Assembly Version: 2.0.0.0
    Win32 Version: 4.8.9032.0
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/netstandard/v4.0_2.0.0.0__cc7b13ffcd2ddd51/netstandard.dll
----------------------------------------
Kinovea.Pipeline
    Assembly Version: 1.0.1.0
    Win32 Version: 1.0.1.0
    CodeBase: file:///C:/Program%20Files%20(x86)/Kinovea/Kinovea.Pipeline.DLL
----------------------------------------
System.Web
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9316.0 built by: NET481REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_64/System.Web/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Web.dll
----------------------------------------
MathNet.Numerics
    Assembly Version: 5.0.0.0
    Win32 Version: 5.0.0.0
    CodeBase: file:///C:/Program%20Files%20(x86)/Kinovea/MathNet.Numerics.DLL
----------------------------------------
System.Numerics
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.9032.0 built by: NET481REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Numerics/v4.0_4.0.0.0__b77a5c561934e089/System.Numerics.dll
----------------------------------------
NAudio.Core
    Assembly Version: 2.2.1.0
    Win32 Version: 2.2.1.0
    CodeBase: file:///C:/Program%20Files%20(x86)/Kinovea/NAudio.Core.DLL
----------------------------------------
OpenCvSharp.Extensions
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Program%20Files%20(x86)/Kinovea/OpenCvSharp.Extensions.DLL
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

The crash is logged in the Window Event Viewer as the below:

Faulting application name: Kinovea.exe, version: 2025.2.0.0, time stamp: 0x69bea7bf
Faulting module name: ntdll.dll, version: 10.0.26100.8521, time stamp: 0xccc028d4
Exception code: 0xc0000374
Fault offset: 0x0000000000112265
Faulting process id: 0x1158
Faulting application start time: 0x1DD0A9A37E429FE
Faulting application path: C:\Program Files (x86)\Kinovea\Kinovea.exe
Faulting module path: C:\WINDOWS\SYSTEM32\ntdll.dll
Report Id: e035571b-f27e-46af-a383-eef1aab1f545
Faulting package full name:
Faulting package-relative application ID:

From the log file:

18561 - ERROR - [Main] - PlayerScreenUserInterface - Error while painting image.
75403 - ERROR - [PreBuffering] - VideoReaderFFMpeg - Frame not read in the middle of the working zone. Reached timestamp:[-1], in [0 --> 3504529].
75410 - ERROR - [Main] - PlayerScreenUserInterface - Painting screen - no image to display.
105262 - ERROR - [PreBuffering] - VideoReaderFFMpeg - Frame not read in the middle of the working zone. Reached timestamp:[-1], in [0 --> 3504529].
105269 - ERROR - [Main] - PlayerScreenUserInterface - Painting screen - no image to display.
106695 - ERROR - [PreBuffering] - VideoReaderFFMpeg - Frame not read in the middle of the working zone. Reached timestamp:[-1], in [0 --> 3504529].
106702 - ERROR - [Main] - PlayerScreenUserInterface - Painting screen - no image to display.
816183 - WARN  - [Main] - DrawingTracker - Moving tracked object by hand.
816184 - WARN  - [Main] - DrawingTracker - Moving tracked object by hand.
1393640 - ERROR - [Main] - PlayerScreenUserInterface - Error while painting image.

2

Thanks. I will try to reproduce it.

3

I reproduced it quite easily and testing a fix. It's a regression related to the tracking now running in parallel.

There are a few more things to fix. In terms of user interaction, we can't easily "stop tracking" on the grid itself. And the idea for making measurements with a moving camera was to go through the "Camera motion estimation" procedure instead, then the grid will automatically stick to the object throughout the video, but right now this doesn't play nicely with the coordinate system and measurements.