из статьи MSDN о Время и часы в DirectShow :
Любой объект, который поддерживает интерфейс IReferenceClock, может служить опорным тактовым сигналом. Фильтр с доступом к аппаратному таймеру может предоставить часы (например, аудио рендерер), или менеджер графиков фильтров может создать часы, использующие системное время.
Я никогда не пытался использовать IReferenceClock из фильтра, но я подозреваю, что он не может обеспечить часы с высоким разрешением, которые вам нужны.
Этот ТАК пост на таймерах высокого разрешения может быть тем, что вам нужно.
IAMStreamConfig.AvgTimePerFrame предназначен для информационных целей, и попытка его настройки не будет иметь никакого эффекта. Это просто значение, из которого вы можете рассчитать среднюю частоту кадров для вашего видеопотока.
, например
VIDEOINFOHEADER* pVih = (VIDEOINFOHEADER*)m_MediaTypes.VideoType.pbFormat;
if( pVih )
int nFrameRate = (int)( (double) (10000000.0f / pVih->AvgTimePerFrame) );