I went ahead and started implementing the simplest option possible, and I realized I had already wrote that code a long time ago, I just had to flip a flag to enable it. (Barring some rounding issues I need to check).
So unless any counter-argument surfaces, this will be the new timecode format:
[h:][mm:]ss.mm[m]
Details:
- We always show the seconds.
- We only show minutes and hours if needed. (Based on the current time, not the total time).
- We show milliseconds if the framerate is over 100 fps.
- The separator between seconds and fractions of seconds is now a dot instead of a colon. (Follows ISO 8601). I now realize this may have been the most confusing thing about the old format.
This is much more convenient to use! Why nobody ever mentioned this? Sorry if I missed it.
There is still one shortcoming, when the video is over 1000 fps, milliseconds just won't cut it. And this is becoming more and more common, even from Kinovea's own capture screen. The work around at the moment will be to use the "Total microseconds" format. (Edit: or I'll just grab the log10 of the framerate to get the number of fractional digits required).
Edit2: ok the number of fractional digits is now proportional to the magnitude of the framerate so if you have a video filmed at 15 000 fps or whatever you won't loose any precision.

