Camera model?
On some models, at certain frame rates, Canon firmware flips the FPS back and forth between two values, and the average frame rate is going to be the requested one, from Canon menu (in your case, 29.970). When recording MLV, only one LiveView frame is checked to find out the frame rate, so... ML is going to pick one value (either slightly above or slightly below the actual FPS).
To work around this in ML, I can imagine two approaches:
- round the reported frame rate to standard values (23.976 / 25.000 / 29.970 / 50.000 / 59.940) if FPS override is not used and timer B differs by less than one unit from the value required by the standard frame rate (preferred)
- average the frame rate over a couple of frames (maybe using a moving average), but one may need one second or so to get consistent results (and even so, I wouldn't exclude a round-off error every now and then).
If you use FPS override, ML will keep things simple and will pick one value for the timers (i.e. it will not switch back and forth). With Exact FPS it's going to try to find an exact match, otherwise it will just pick something close (but consistent as long as you don't change the settings).