I’m not sure if this problem appeared with the latest version of the driver or it happened before, but I’m finding out that with latest driver at least SetFormat call works only when the DirectShow filter is already connected. In unconnected state, somehow AvgTimePerFrame is getting ignored.
Also, Alex I think you should change the logic and in case of client setting AvgTimePerFrame and calling SetFormat that doesn’t match exactly your caps, you should find closest value from what client is requesting, instead of defaulting to highest framerate (that’s what I see on my machine).