Directshow и .NET Interop проблема - PullRequest
0 голосов
/ 11 марта 2011

У меня странная проблема.У меня есть плеер на основе DirectShow, который обернут как объект COM.

Я использую этот плеер в форме C #.На самом деле два экземпляра, так что два клипа могут воспроизводиться бок о бок.

Теперь в проигрывателе, когда я впервые загружаю файл, я позволяю графу визуализировать, затем пересекаю граф, нахожу средство визуализации и фильтр, которыйконтакт рендерера подключается, а затем вставляет пользовательский фильтр между ними.

Он работает большую часть времени, но в некоторых случаях, когда я подключаю вывод своего пользовательского фильтра к рендеру, вызовв GraphBuilder.ConnectDirect возвращает E_NOINTERFACE.

Кто-нибудь видел подобное поведение?

1 Ответ

1 голос
/ 01 апреля 2011

Чтобы получить больше информации о том, что происходит, создайте файл журнала, используя IGraphBuilder :: SetlogFile.

E_NOINTERFACE не указан в стандартном значении, возвращаемом IGraphBuilder ConnectDirect, но может быть, что фильтр возвращает E_NOINTERFACEDirectShow из-за некоторых внутренних проблем с этим конкретным фильтром.Сам по себе код ошибки, вероятно, недостаточен для диагностики проблемы.

E_NOINTERFACE имеет особое значение, но это не мешает авторам компонентов возвращать его по ошибке.Смотрите "Не перегружайте ошибку E_NOINTERFACE" в блоге Рэймонда Чена: http://blogs.msdn.com/b/oldnewthing/archive/2006/12/08/1239911.aspx

...