Используете ли вы получение входящего IMediaSample GetTime или GetMediaTime. GetTime - это то, что вам нужно, поскольку оно представляет время презентаций потоков.
Не забудьте также проверить входящую функцию IMediaSample isPreRoll . Предварительные сэмплы следует игнорировать, поскольку они будут выводиться снова во время воспроизведения. Еще одна вещь, которую я хотел бы сделать, - убедиться, что ваш образец захвата находится как можно ниже в вашем фильтре. Желательно после любого демаксера и рендерера.
Также см. Статью о TimeStamps в документации DirectShow. Это обрисовывает в общих чертах другие предостережения использования временных меток.
Конечно, даже после всех приведенных выше советов все еще нет абсолютной гарантии того, как будет работать конкретный фильтр DirectShow.