Come assicurarsi che il filtro Grabber campione non genererà alcun più callback alla chiusura il mio grafico di filtro DirectShow?

StackOverflow https://stackoverflow.com/questions/8323334

Domanda

Ho un'applicazione DirectShow scritto in Delphi 6 utilizzando la libreria dei componenti DSPACK. Quando chiudo i miei grafici di filtro (play stop), ottengo una violazione di accesso a causa di una richiamata dal Campione del filtro DirectShow Grabber che si verificano dopo che l'oggetto che possiede il metodo di callback è stata distrutta. Non succede ogni volta, ma abbastanza spesso. qualcuno mi può punto ad un esempio di codice o di un documento che mi dice i passi che devo prendere per arrestare miei grafici in un modo che che consente di verificare tutte le richiamate Grabber campione in sospeso sono stati ricevuti o eliminati?

È stato utile?

Soluzione

Che dire emissione ISampleGrabber::SetCallback(NULL, ... prima dell'arresto / rilasciare il grafico di filtro?

Più di questo, è possibile impostare un flag interno che indica la terminazione e verificare nelle callback si deve tornare comparso immediatamente, senza ulteriori elaborazioni.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top