Здравствуйте, Edge, Вы писали:
E>Интересна такая ситуация: Предположим, у нас есть источник видео с камеры с частотой 25 Гц и десяток трансформ-фильтров, присоединенных последовательно. Пусть каждый фильтр обрабатывает кадр за 20 мс, итого у нас будет задежка в 200 мс. Насколько я понимаю, в DS рендерер дропает кадры, если они придут слишком поздно. Вопрос: нелзя ли сделать так, чтобы эта цепочка работала как конвейер, т.е. чтобы видео показывалось с задержкой? E>Моя идея: менять timestamp на каждом сэмпле с помощью IMediaSample::SetTime, чтобы продлить жизнь сэмплу. Я правильно мыслю?
Цитата из MSDN:
"You can also set the filter graph to run with no clock, by calling SetSyncSource with the value NULL. If there is no clock, the graph runs as quickly as possible. With no clock, renderer filters do not wait for a sample's presentation time. Instead, they render each sample as soon as it arrives. Setting the graph to run without a clock is useful if you want to process data quickly, rather than previewing it in real time."
Смотри раздел про IFilterGraph::SetDefaultSyncSource