Nothing prevents you from displaying 29.97 frames per second.
This is mind boggling, AFAIK, when playing video, there is no point exceeding the display calls higher than the monitor refresh rate. I’m also guessing when precision is a must, v-synch should be disable. Otherwise, Swapping buffers will have to wait until the next monitor refresh, even if a frame is ready to display. Thus, adding delay.
I wouldn't rely on SetFramerateLimit for video playback timing. It's far from accurate.
Is GetFrameTime reliable?
Milliseconds precision would be nice indeed!