Re[2]: DirectShow: FileWriter vs Dump
От: __sh  
Дата: 12.03.03 08:16
Оценка:
Здравствуйте, Sergey A. Sablin, Вы писали:

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

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

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

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

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

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

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

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