![]() |
|
Модераторы: Rickert, Alexeis, BorisVorontsov |
![]()
|
|
| AndreySol |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 19.6.2004 Репутация: нет Всего: 1 |
Есть следующий код:
смысл его работы - перебрать все фильтры в графе, для фильтров найти входные пины, для найденных пинов определить тип данных, для тех которые имеют majortype == MEDIATYPE_Video - увеличить счетчик на единицу. Не работает, не пойму почему. Если раскомментировать первую мессагу, она появляется точно по кол-ву входных пинов всех фильтров в графе, а pEnumMediaTypes->Next дает ошибку. |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
Имхо, ошибок нет. Просто не все фильтры имеют список предпочитаемых форматов на входных пинах (так же как и на выходных). Что видимо и получается в твоем случае касательно входных пинов видеофильтров в графе.
Добавлено @ 21:48 А какая задача стоит в конечном счете ? -------------------- С уважением, г-н Посол. |
|||
|
||||
| AndreySol |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 19.6.2004 Репутация: нет Всего: 1 |
Погодите, что значит
если фильтр подключен в граф, как он может не иметь формата для пина - а как тогда билдер его добавил в граф, если нет формата по которым он подбирает подходящие фильтры ? К примеру если собрать граф в GraphEdit'е - для всех пинов есть текущий формат соединения. А задача состоит в том, что-бы найти в графе все фильтры по видео каналу. Может конечно можно другим способом этого добиться ? |
|||
|
||||
| p0s0l |
|
||||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
Я не совсем про то. Текущий формат и список предпочитаемых форматов - разные вещи. Например, Sample Grabber - ему же не надо делать какие-либо преобразования над проходящими данными, поэтому по идее у него нет списка предпочитаемых форматов, ему все-равно... А когда свяжешь два пина, тогда у этого соединения появляется "текущий формат". Кстати, этот список может меняться при соединении/разъединении других пинов фильтра...
(всё имхо Насчет того, как добавил билдер фильтр - то это нужно читать MSDN, там довольно разветленный алгоритм добавления фильтров... При соединении пинов, выходной пин делает Enum форматов входного пина, если облом - то делает Enum своих форматов (это я про выбор формата данных):
-------------------- С уважением, г-н Посол. |
||||
|
|||||
| AndreySol |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 19.6.2004 Репутация: нет Всего: 1 |
А алгоритм примерный можно ? |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
Алгоритм примерно таков:
-------------------- С уважением, г-н Посол. |
|||
|
||||
| AndreySol |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 19.6.2004 Репутация: нет Всего: 1 |
Попробовал, результат - ошибка "Неправильный указатель", выскакивает по кол-ву входных пинов всех фильтров в графе.
|
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
Я удивлен что у тебя вообще скомпилилось, я же дал "примерный алгоритм". А Си я к сожалению не знаю, так что ошибки обязательны.
Кстати, так правильнее:
-------------------- С уважением, г-н Посол. |
|||
|
||||
| AndreySol |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 19.6.2004 Репутация: нет Всего: 1 |
Нашел, все заработало.
Дело было в том, что я не обратил внимания на AM_MEDIA_TYPE MediaType, а оставил как у меня было AM_MEDIA_TYPE *pMediaType, а указатель в этой ф-ции не прокатывает. |
|||
|
||||
![]()
|
| Вы можете найти полезным что... | |
|
|
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |