четверг, 18 октября 2007 г.

DirectShow & D3DERR_OUTOFVIDEOMEMORY

Интересные детали выяснились с DirectShow... Имеет место быть неприятная ошибка, если в существующем графе очень быстро менять source filter'ы. С какого-то момента начинает выдаваться ошибка D3DERR_OUTOFVIDEOMEMORY при попытки соединить фильтры. А именно, на этапе соединения source filter с VMR9 не может выделится достаточное количество памяти. Поскольку в source filter управление памятью скрыто в BaseClasses, то пока проблема остается неразрешенной...

2 комментария:

  1. Есть 2 вопроса:
    1. Что значит очень быстро?
    2. Что представляет из себя граф фильтров, т.к. странно, что source filter подсоединяется напрямую к рендереру.

    ОтветитьУдалить
  2. Ну, быстро - это без разрушения и последующего создания IGraphBuilder с заменой source filter. В тестах - раз в секунду это происходит. В рельной жизни реже, но ошибка возникает существенно позже просто.
    А граф довольно простой, source filter получает видео из сети, декомпресит и передает в рендерер.

    ОтветитьУдалить