Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > VMR-9 VFW_E_SAMPLE_REJECTED


Автор: Helene 25.7.2006, 17:26
Пишу свой фильтр, аналогичный Infinite Tee. Base Classes не использую вообще, т.е. имеется своя реализация IPin, IBaseFilter etc.

Принцип работы фильтра.
С точки зрения других фильтров в графе, tee как-будто не существует. Он никак не преобразовывает поток, использует чужие аллокаторы, все, что приходит к нему на вход, он передает на выход.

Собственно, в чем проблема.
Граф "камера + tee + avi декомпрессор + VMR-9" работает отлично.
Граф "камера + avi декомпрессор + tee + VMR-9" нет. Обращение ко входному пину рендерера Receive(aSample) возвращает ошибку VFW_E_SAMPLE_REJECTED. Свойства рендерера говорят, что он не обработал ни один кадр.

В чем может быть проблема? 

Автор: Helene 25.7.2006, 19:45
Проблема решена.

Ее краткая суть:
При коннекте декомпрессора и tee-фильтра используется аллокатор, созданный tee.
При коннекте tee и рендерера нужно использовать аллокатор, предоставляемый рендерером. После успешного коннекта tee и рендерера соединение декомпрессора и tee нужно передергивать всегда, а у меня было только, если нужно изменить медиа-тип соединения. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)