2010-03-09 2 views
1

У меня есть исходный фильтр DirectShow для приема сетевого потока, содержащего данные RFC2435 (MJPEG over RTP).Как изменить свойства выходного сигнала фильтра DirectShow Pin на лету?

Свойства выходного разъема источника фильтра должны быть настроены до приема потока, который является единственным источником данных измерения изображения. Размеры выходного вывода в настоящее время установлены на некоторые значения по умолчанию (640x480).

Возможно ли изменить свойства выходного вывода, чтобы отразить размеры нового изображения после того, как выходной контакт уже создан и подключен к другому фильтру, который декодирует данные MJPEG?

ответ

1

Я считаю, что ответ заключается в использовании механизма «Динамическое изменение формата», который может использоваться для переключения типов носителей. Это можно сделать несколькими различными способами в зависимости от того, активен или остановлен график. Следующая страница в MSDN объясняет детали.

http://msdn.microsoft.com/en-us/library/dd388731(VS.85).aspx

+0

Сказав это ответ, это трудно доказать, чтобы найти пример этого механизма в использовании! –

+1

см. Www.gdcl.co.uk/gmfbridge - этот образец изменяет типы носителей как путем присоединения типа носителя к образцу, так и путем вызова ReceiveConnection на выходном выводе - эта последняя форма требуется при подключении к видеорезеру, так как вам нужно изменить размер буфера. –

+0

Спасибо, только что нашел поток на http://social.msdn.microsoft.com/Forums/en-US/windowsdirectshowdevelopment/thread/41589cca-772d-4b43-a56a-8fb7daf953cc Теперь выведите новый класс InputPin из CTransformInputPin, чтобы Я могу реализовать метод ReceiveConnection, но, вероятно, затем столкнется с проблемой с распределителями, кстати, поток обсуждения! –