Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > DShow как уничтожить граф с фильтрами?


Автор: CompWorm 24.5.2012, 17:22
Привет.

Пытаюсь подружиться с DirectShow. Вопрос - как полностью уничтожить после использования граф со всеми фильтрами?

как я понял в графе есть подсчёт ссылок и он сам уничтожается, когда ссылки уйдут в ноль.
щас пытаюсь примерно так сделать:
Цитата

typedef CComPtr<IFilterGraph> IFilterGraphSP;
IFilterGraphSP    m_graph;
...
//смотрим видео
...
//отключаемся
    IBaseFilterSP renderFilter;
    hresult = m_graph->FindFilterByName(L"Renderer filter", &renderFilter);
    hresult = m_graph->RemoveFilter(renderFilter);
//и далее удаляем все фильтры таким образом

по идее, после удаления всех фильтров (а они успешно удаляются из графа) сам граф должен уничтожится, но я его всё равно вижу через прогу GraphEditPlus и с каждым перезапуском графы копятся.

подскажите, куда копать?

Автор: CompWorm 25.5.2012, 12:40
всё, отбой. 
просто в GraphEditPlus отмечается ровно столько графов, сколько сам в него отрепортил и там они не исчезают если не используются.
зато пока решал проблему, нашёл симпатичный http://msdn.microsoft.com/en-us/library/windows/desktop/dd377520%28v=vs.85%29.aspx)))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)