M$ writes crap obviously. Another note: The dwTotalFrames value is to contain the number of frames only in the first RIFF list! This is to make this part compatible to AVI 1.0. M$ obviously doesn't remember that they have demanded this on Feb 27th, 1996, when they released OpenDML 1.02 specs: Any OpenDML file created with DirectShow will contain the overall total number of frames in that member. The overall total number of video frames should be stored in the dmlh chunk, which is located in the odml list. If you read the dwTotalFrames member to obtain the number of video frames, you'll get the correct number only for "small" AVI files and for "broken" files created with DirectShow, but not for correct files, e.g. created with AVI-Mux GUI or VirtualDub 1.4.11 or higher (in fact, the dis very value is also correct in older versions of VDub). Anyway, I don't rely on either value, neither do I trust M$ implementations like VFW or DS, and have decided to parse the entire index in AVI-Mux GUI. Imagine this: DirectShow does not open any OpenDML files with more than 3 audio streams. To implement even reading of such (correct) AVI files, you need to go "the hard way". was where I got all my info on AVI files from.