Re[3]: DirectShow: FileWriter vs Dump
От: Sergey A. Sablin Россия http://www.elecard.com
Дата: 13.03.03 06:37
Оценка:
Здравствуйте, __sh, Вы писали:

S>Здравствуйте, Sergey A. Sablin, Вы писали:


SA>>Dump — просто сэмпл — он не обязан поддерживать все вожможные ситуации и форматы.

SA>>Т.к. вы занимаетесь DShow стоит просто запомнить, что avi-шки писать лучше всего именно File Writer-
SA>>ом, т.к. индексы к avi файлу пишет муксер и Dump просто не позволит ему это сделать. (см. выше)

S>А какие ситуации и форматы? Задача dump — записать ПОТОК в файл. Не какой-то там формат, а просто байтовый поток. Формат как раз формирует AVI Mux. Заголовки записывает опять же AVI Mux при помощи интерфейса IStream у фильтра FileWriter.


S>Я говорю о другом. Выполнение графа, в котором FileWriter заменен на Dump прерывается на середине, на этапе записи самого потока, задолго до того, как AVI Mux записывает заголовки. Это очень легко проверить, достаточно добавить в Dump интерфейс IStream. Причем выполнение прерывается по идиотской причине: какой-то фильтр проверяет времена сэмпла и выкидывает ошибку.


S>По всей видимости ошибка возникает не в Dump (могу это утверждать с вероятностью 99.9%), а в AVI Mux и пока я не нахожу этому разумных объяснений. Как может file writer влиять на сэмплы, которые до него еще не дошли? Разве что как-то хитро настраивает AVI Mux под себя (недокументированные интерфейсы?).


S>Поэтому вопросы остаются прежние:


S>1. Как вычислить, в каком фильтре возникает ошибка? Выкидывать фильтры по очереди не получается, т.к. мы отлаживаем последний фильтр графа.


S>2. В каком направлении копать? Почему вообще у сэмпла может время начала вдруг стать больше время конца и исключительно если в графе FileWriter заменить на Dump?


Кстати давно не пробовал в дамп писАть — загнал через свой беспотерьный енкодер, и что вы думаете? Все записалось без всяких ошибок. Правда не поднимаеться — голов-то нету.
Теперь стало еще интереснее — кто же валит граф? получается енкодер?
после обеда еще потестю и запостю...
Сергей.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.