OVH Cloud OVH Cloud

ACQUISITION VIDEO DIRECTSHOW

1 réponse
Avatar
B#..
Bonjour,

Je n'arrive toujours pas a capturer les s(sans les réinjecter) à partir
d'une WebCam en c# .
Mon soucis actuel est d'analyser les (un maximum de) frames en parallele
avec leur affichage.
Je pensais m'appuyer sur la procedure BufferCB du filtre sampleGrabber.
J'ai donc, a partir de divers exemples collectés sur le Web créé mon graphe
général avec la webcam détectée, un filtre de capture, un filtre
sampleGrabber et en sortie je fais un "cg.RenderStream(
PIN_CATEGORY_PREVIEW, MEDIATYPE_Video, sf, null, null);"(cg etant le filtre
de capture).
J'ai bien mis en place les déclarations trouvées dans tous les exemple(...hr
= sb.SetCallback (this, 1); ...)
Je n'arrive qu'a obtenir le preview et la procédure .BufferCB n'est jamais
appellée...

Je travaille en tatonnant car aucune doc ne donne le périmetre de
fonctionnement de tous celà, ni les la signification et l'impact des valeurs
des paramètres que l'on utilise
(Quel Média.Formatype utiliser en fonction de la situation, ... etc ) et la
doc DirectX9 n'est pas trop parlante pour un néophite.

Donc, si quelqu'un peut me débloquer pour l'appel de cette fonction, ou me
donner le titre d'un ouvrage de référence, ou encore me dire s'il n'ya pas
un autre moyen d'acquerir les trames en parallele à l'affichage avec
direcshow, ....

Grand merci d'avance

Bruno

1 réponse

Avatar
adebaene
B#.. a écrit :

Bonjour,

Je n'arrive toujours pas a capturer les s(sans les réinjecter) à part ir
d'une WebCam en c# .
Mon soucis actuel est d'analyser les (un maximum de) frames en parallele
avec leur affichage.
Je pensais m'appuyer sur la procedure BufferCB du filtre sampleGrabber.
J'ai donc, a partir de divers exemples collectés sur le Web créé mo n graphe
général avec la webcam détectée, un filtre de capture, un filtre
sampleGrabber et en sortie je fais un "cg.RenderStream(
PIN_CATEGORY_PREVIEW, MEDIATYPE_Video, sf, null, null);"(cg etant le filt re
de capture).
J'ai bien mis en place les déclarations trouvées dans tous les exempl e(...hr
= sb.SetCallback (this, 1); ...)
Je n'arrive qu'a obtenir le preview et la procédure .BufferCB n'est jam ais
appellée...

Je travaille en tatonnant car aucune doc ne donne le périmetre de
fonctionnement de tous celà, ni les la signification et l'impact des va leurs
des paramètres que l'on utilise
(Quel Média.Formatype utiliser en fonction de la situation, ... etc ) e t la
doc DirectX9 n'est pas trop parlante pour un néophite.

Donc, si quelqu'un peut me débloquer pour l'appel de cette fonction, ou me
donner le titre d'un ouvrage de référence, ou encore me dire s'il n'y a pas
un autre moyen d'acquerir les trames en parallele à l'affichage avec
direcshow, ....



J'ai fait exactement la même chose en utilisant la librairie
DirectShowNet (http://sourceforge.net/projects/directshownet/) pour
aider à l'interfacage avec DirectShow. L'exemple DxText de cette
librairie fait exactement ce que tu veux (utilisation du filtre
SampleGrabber, avec callback managé). Dans l'exemple, le grabbing set
à surimposer du texte en overlay sur le flux initial (dans BufferCB),
mais tu peux faire ce que tu veux dans SampleCB à la place.

Arnaud
MVP - VC