2010-04-08 4 views
0

J'écris un filtre de capture DirectShow en utilisant CSource/CSourceStream comme base, mais quand j'accède à la came dans Firefox + Flash, je reçois une assertion de débogage et l'erreur de débogage suivante lors de la fermeture de Firefox.DirectShow CSourceStream filtre ne parvient pas à décharger correctement

Cam6.ax(tid 1c98) 133506 : 
Cam6.ax(tid 1c98) 133506 : ID    Object Description 
Cam6.ax(tid 1c98) 133506 : 
Cam6.ax(tid 1c98) 133506 : 19 (001AE940)   Camera Stream 
Cam6.ax(tid 1c98) 133507 : 18 (001AE940)     Camera 
Cam6.ax(tid 1c98) 133507 :  6 (001AE940)   Camera Stream 
Cam6.ax(tid 1c98) 133507 :  5 (001AE940)     Camera 
Cam6.ax(tid 1c98) 133507 : 
Cam6.ax(tid 1c98) 133507 : Total object count  4 

D'après ce que je peux dire ce n'est pas de ma faute. Je soupçonne que Flash rejette mal le graphique DirectShow à l'arrêt. J'ai lu et relu la documentation de MSDN et ai parcouru le net pour des exemples mais n'ai rien trouvé. Est-ce que quelqu'un peut aider à clarifier cela pour moi ou me diriger dans la bonne direction?

Répondre

1

Se sentir un peu idiot à ce sujet. Après avoir passé une journée à regarder les chiffres de référence et autres joyeusetés, il s'est avéré être une erreur noobie. J'ai compilé strmbasd.lib avec le drapeau/MDD et mon code avec le drapeau/MD. Le premier visait les bibliothèques d'exécution de débogage, plus tard les bibliothèques d'exécution de version.

L'éditeur de liens a donné un avertissement qui n'a pas été pris en compte et le code a couru jusqu'au moment de libérer la DLL. Aller figure ..

Craie celui-là jusqu'à la stupidité je devine. :)

+1

Comme une note, j'ai reçu le même message (mais 2 et 1 objets restants), et c'était parce que ffmpeg en effet ne nettoyait pas correctement (il devrait maintenant/bientôt si), et se produit seulement avec Debug construit, libérer les versions ne font pas le double contrôle ... – rogerdpack

Questions connexes