DirectShow : Creation et integration d'un callback en langage C
Bonjour,
dans le cadre d'un projet, je dois acceder a une webcam et en recuperer le flux video pour le modifier.
Le tout doit etre programme en C.
D'apres les exemples que j'ai trouve, en C++, il faut utiliser une methode de callback.
Pour cela, il faut creer une classe heritant de ISampleGrabberCB.
Je n'ai pas en revanche pas reussi a trouver d'exemple en code C.
J'ai essaye de creer une fonction BufferCB et de la mettre dans une variable de type ISampleGrabberCB mais ca ne marche pas. Je segfaulte comme il faut.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
{
ISampleGrabber *pSampleGrabber;
ISampleGrabberCB test;
/* initialisation de pSampleGrabber */
test.lpVtbl= malloc(sizeof(*(test.lpVtbl)));
test.lpVtbl->BufferCB=&BufferCB;
ISampleGrabber_SetCallback(pSampleGrabber,&test,1);
/* ... */
} |
Juste definir le callback ne suffit peut etre pas. Faut-il aussi definir les autres fonctions de cette structure?
Si oui, pouvez-vous me dire ce qu'il faut y mettre ?
Sinon, y-a-t-il un autre moyen que le callback pour recuperer le flux video?
Merci