2010-03-09 6 views
1

J'ai un filtre source DirectShow pour recevoir un flux réseau contenant des données RFC2435 (MJPEG sur RTP).Comment modifier les propriétés d'une broche de sortie de filtre DirectShow à la volée?

Les propriétés de la broche de sortie du filtre source doivent être configurées avant de recevoir le flux qui est la seule source des données de dimension de l'image. Les dimensions de la broche de sortie sont actuellement réglées sur des valeurs par défaut (640x480).

Est-il possible de modifier les propriétés de la broche de sortie pour tenir compte des dimensions de la nouvelle image après la broche de sortie a déjà été créé et connecté à un autre filtre qui décode les données MJPEG?

Répondre

1

Je crois que la réponse est d'utiliser le mécanisme 'Dynamic Format Change' qui peut être utilisé pour changer de type de média. Cela peut être fait de plusieurs manières différentes selon que le graphique est actif ou arrêté. La page suivante sur MSDN explique les détails.

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

+0

Cela dit est la réponse, il est difficile de prouver trouver un exemple de ce mécanisme en cours d'utilisation! –

+1

regard sur www.gdcl.co.uk/gmfbridge - cet échantillon change types de supports à la fois par la fixation d'un type de support à un échantillon et en appelant ReceiveConnection sur la broche de sortie - cette dernière forme est nécessaire lorsqu'il est connecté au moteur de rendu vidéo, puisque vous en avez besoin pour changer la taille de la mémoire tampon. –

+0

Merci, viens de trouver le fil sur http://social.msdn.microsoft.com/Forums/en-US/windowsdirectshowdevelopment/thread/41589cca-772d-4b43-a56a-8fb7daf953cc Maintenant dérivant une nouvelle classe InputPin de CTransformInputPin afin que Je peux mettre en œuvre la méthode de ReceiveConnection mais sera probablement alors courir dans un problème avec allocateurs par la façon dont le fil de discussion est allé! –

Questions connexes