Накидал простенький фильтр, в котором многие методы пока не реализованы и возвращают E_NOTIMPL. Вставляю его в граф, запускаю граф — что-то шевелится, а при остановке графа и освобождении (Release) ссылок на IGraphBuilder или IMediaControl код из quartz.dll стабильно пытается освободить ссылки на уже удаленные объекты, или лезет в память по некорректным адресам.
Несколько раз проверил учет ссылок в коде фильтра — вроде все правильно. Ссылок на IGraphBuilder и IMediaEventSink, как и положено, не освобождаю.
Как там, в коде DirectShow и конкретно в quartz.dll, с восстановлением после ошибок, когда метод фильтра/пина/сампла и прочего неожиданно возвращает E_NOTIMPL? Такое впечатление, что в этом случае код путается в учете ссылок.
Или там с этим все идеально, и надо таки искать ошибки у себя?