Wie können Sie sicherstellen, dass der Beispiel für den Sample Grabber -Filter beim Herunterfahren meines DirectShow -Filterdiagramms keine weiteren Rückrufe generiert?
-
26-10-2019 - |
Frage
Ich habe eine DirectShow -Anwendung in Delphi 6 mit der DSpack -Komponentenbibliothek geschrieben. Wenn ich meine Filterdiagramme heruntergefahren habe (Stop Play), erhalte ich aufgrund eines Rückrufs aus dem Beispiel -Grabber -Directhow -Filter, der nach dem Objekt, dem die Rückrufmethode besitzt, zerstört, einen Zugangsverletzungsverlust. Es passiert nicht jedes Mal, aber ziemlich oft. Kann mich jemand auf ein Code -Beispiel oder ein Dokument verweisen, das mir die Schritte mitteilt, die ich ausführen muss, um meine Grafiken so zu schalten, dass alle anstehenden Beispiele für den Stichproben -Grabber empfangen oder beseitigt wurden?
Lösung
Was ist mit Ausgabe? ISampleGrabber::SetCallback(NULL, ...
Vor dem Stoppen/Freigeben des Filterdiagramms?
Darüber hinaus können Sie ein internes Flag festlegen, das die Kündigung angibt und es in den Rückrufen überprüfen, die Sie sofort ohne weitere Verarbeitung zurückgeben müssen.