Ok, so there seems to be no competent video player for Delphi that does what I want. However, there is hope: AviSynth
http://www.avisynth.org/ seems to work great. I will implement automatic script generation soon, but in the meantime just create a .avs file with contents like:
Code:
DirectShowSource("D:\Rip\Vts_01_1.vob" fps=25.00)
Remember, you still need to have all the filters properly installed (i.e., the file should play in MediaPlayer). For DVDs, you probably need
http://sourceforge.net/projects/gplmpgdec Apparently, DirectShow does not require filters to provide accurate frame seeking, but most of them do, and when they do, AviSynth takes advantage of it, so most files should work.
OGM files also seem to work, although it seems that seeking backwards is only done until the last keyframe. After setting the color settings though, since now SubRip only goes forward, it shouldn't be a problem.