Как правильно убивать GraphBuilder ?

 
Начать новую тему   Ответить на тему    Список форумов DirectShow форум -> Фильтры
Предыдущая тема :: Следующая тема  
Автор Сообщение
evgepet
Новенький


Зарегистрирован: 17.06.2007
Сообщения: 9

СообщениеДобавлено: Вс Июн 24, 2007 5:50 am    Заголовок сообщения: Как правильно убивать GraphBuilder ? Ответить с цитатой

При построении графа вручную, столкнулся с проблемой корректного удаления всех фильтров в графе.
Все исходники, что я нашёл толком ничего не удаляют...
Я вот решил всё строить вручную - всё отлично рендерится.
Но при завержении работы - MPEG4 декодеры и Audio декодеры падают.
Я пробовал и приваивать null и вызывать _Release и RemoveFilter (я пишу на Дельфе). В любом случае, декодеры вызывают ошибки.

В общем главный вопрос - как правильно всё уничтожать при ручном построении графа?
Подскажите, кто знает !

правка:
Только вот дошло, что может быть, нужно и пины рилизить после использования?
Для коннекта я енумерую пины, и получается, что те пины, которые пошли на коннект, никак не освобождаются!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
AndrеySol
Активный


Зарегистрирован: 27.02.2007
Сообщения: 57

СообщениеДобавлено: Вс Июн 24, 2007 4:05 pm    Заголовок сообщения: Ответить с цитатой

Может надо удалять фильтры начиная с конечного (рендер-фильтра).
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Валентин Вовк
Участник


Зарегистрирован: 30.10.2006
Сообщения: 21

СообщениеДобавлено: Пн Июн 25, 2007 11:21 am    Заголовок сообщения: Ответить с цитатой

В MSDN'е, а также в статье о фильтрах есть где-то даже указание на то, что релиз нужно делать после перечисления.
Не совсем ясно, какие могут быть проблемы. Нужно делать как обычно. Создал - запустил - остановил, убил.
К статье есть и примеры, где граф строится вручную, а затем все корректно освобождается
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
evgepet
Новенький


Зарегистрирован: 17.06.2007
Сообщения: 9

СообщениеДобавлено: Пт Июн 29, 2007 1:54 pm    Заголовок сообщения: Ответить с цитатой

После использования src2 делаем:
Код:
src2 := null


Это освободит ссылку на интерфейс, когда ссылок на интерфей не останется он сам удалится
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
evgepet
Новенький


Зарегистрирован: 17.06.2007
Сообщения: 9

СообщениеДобавлено: Сб Июн 30, 2007 1:43 am    Заголовок сообщения: Ответить с цитатой

Это мне гажется или так и есть ?
Чужой ответ в моём посте Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
WondeRu
Главвред :)


Зарегистрирован: 30.10.2006
Сообщения: 199
Откуда: Самара

СообщениеДобавлено: Сб Июн 30, 2007 10:35 am    Заголовок сообщения: Ответить с цитатой

да... это я Smile каюсь Smile вместо reply нажал edit
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
evgepet
Новенький


Зарегистрирован: 17.06.2007
Сообщения: 9

СообщениеДобавлено: Вс Июл 01, 2007 9:55 am    Заголовок сообщения: Ответить с цитатой

Всё равно есть проблемы Shocked
Перерыл DSPack, нашёл несколько полезностей, в частности про пины,
но так толком и не понял как правильно рассоединять фильтры внутри графа...
Хоть так хоть сяк, хоть об косяк - вылетает ошибка.
Может есть у кого исходник безошибочной ручной сборки/разборки графа ?
Поделитесь пожалуйста !
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
djan
Новенький


Зарегистрирован: 27.07.2007
Сообщения: 6
Откуда: от туда

СообщениеДобавлено: Вт Июл 31, 2007 4:27 pm    Заголовок сообщения: Ответить с цитатой

Аналогичная проблема. Собираю граф ручками, ренедрю, все нормально работает. Остнавливаю (Stop), удалю все фильтры (RemoveFilter), собираю граф по новому. Все вроде бы ничего, но только колчиство потоков ростет. При запуске создается 3 потока, при стопе и удалении фильтров удаляется только 2.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов DirectShow форум -> Фильтры Часовой пояс: GMT + 4
Страница 1 из 1
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB


Рейтинг@Mail.ru