Thank you, OpenMediaFile is ok. Using DShow, frame rate can also be easily calculated with:
DShowParams.Duration (using tfFrame) / DShowParams.Duration (using tfTime, converted in seconds)
Another question. Often video have a frame rate of 29.970 fps, but using tImageEnIo.CreateAVIFile the "rate" parameter is integer. It's impossible for me to open an existing AVI, modify frames and then save with the same frame rate. Is it a limitation or I am wrong somewhere?
Starting from next minor release CreateAVIFile will have rate as "double" value, so it will allow to create AVIs with real frame rates. Of course also following properties will be double: