Re[6]: DirectShow проблемы со временем в графе?
От: NickViz Россия  
Дата: 03.11.11 12:22
Оценка:
Здравствуйте, AcidTheProgrammer, Вы писали:

ATP>Как это не важно какое время... А время графа у вас откуда берется?? Это что какое-то магическое время которое автоматически подстраивается к любой частоте любого сигнала. Вы с часами графа что-нибудь делаете, если нет то оно как-раз будет системным. По часам графа у вас прошла секунда, а кадров пришло больше, т.к камера награбила больше кадров, у нее свое время. Что рендереру делать с лишними кадрами, естественно дропать и наоборот тормозить проигрывание и ждать пока с камеры что-нибудь придет.


Что-то я вот подумал, что есть в этом сермяжная правда. Axis драйвер кладёт фреймы в буфер. а капчур фильтр оттуда их забирает... и если медленно забирает — то драйвер по идее выбрасывает часть фреймов (надо бы ещё посмотреть может можно обратно камере намекнуть поумерить пыл).
Это может объяснить проблемы во всех графах что мы бодяжим. Тогда получается надо задавать драйверу немного меньший фрейм рейт, чем графу. Ну или графу быстрее чем драйверу.


Кстати вопрос: у нас на капчур фильтре реализован QoS (через IQualityControl::Notify(IBaseFilter *pSelf, Quality q)). так вот — ни одного сообщения QoS я не видел. Значит ли это, что рендерер не посылал их, или это промежуточный фильтр не поддерживает QoS?
Т.е. достаточно ли на первом фильтре поддерживать (override) Notify() что бы рендерер мог отправлять фидбеки — или надо что бы _все_ фильтры между первым и рендерером поддеживали это? или мало имплементировать, надо ещё и Sink сделать?

Хм — CBaseVideoRenderer тоже переопределяет Notify — но кто его вызывает тогда? он же?


ATP>Смотрите — количесто полученных кадров с камеры умноженное на FPS (время потока с камеры) все больше отличается от


Похоже не в рендерере дело. Буду смотреть буфер в самом драйвере камеры..


ATP>Не хотите забивать голову. Вот решение — уберите вообще время из сэмплов, все тутже будет ОК. С какой скоростью придет с такой и будет играться.

Кстати — нет. не проканало. ещё одно подтверждение, что дело не в графе вообще. стрим ему приходит кривоватый (торопится).

NV>>Может стопать и стартовать граф регулярно — по идее время должно обнулиться. раза 3 в сутки...

ATP>Можете, завтра у пользователя будет другая камера с другими характеристиками...
А мы этот параметр в реестр предусмотрительно вынесем
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.