Интересные детали выяснились с DirectShow... Имеет место быть неприятная ошибка, если в существующем графе очень быстро менять source filter'ы. С какого-то момента начинает выдаваться ошибка
D3DERR_OUTOFVIDEOMEMORY при попытки соединить фильтры. А именно, на этапе соединения source filter с VMR9 не может выделится достаточное количество памяти. Поскольку в source filter управление памятью скрыто в BaseClasses, то пока проблема остается неразрешенной...
Есть 2 вопроса:
ОтветитьУдалить1. Что значит очень быстро?
2. Что представляет из себя граф фильтров, т.к. странно, что source filter подсоединяется напрямую к рендереру.
Ну, быстро - это без разрушения и последующего создания IGraphBuilder с заменой source filter. В тестах - раз в секунду это происходит. В рельной жизни реже, но ошибка возникает существенно позже просто.
ОтветитьУдалитьА граф довольно простой, source filter получает видео из сети, декомпресит и передает в рендерер.