Здравствуйте, NickViz, Вы писали:
NV>Кстати вопрос: у нас на капчур фильтре реализован QoS (через IQualityControl::Notify(IBaseFilter *pSelf, Quality q)). так вот — ни одного сообщения QoS я не видел. Значит ли это, что рендерер не посылал их, или это промежуточный фильтр не поддерживает QoS?
NV>Т.е. достаточно ли на первом фильтре поддерживать (override) Notify() что бы рендерер мог отправлять фидбеки — или надо что бы _все_ фильтры между первым и рендерером поддеживали это? или мало имплементировать, надо ещё и Sink сделать?
Должны поддержвать все, по цепочке. Но обычно декодер забирает все нотификации себе, т.к. ему типа виднее в uncompressed формате.
NV>Хм — CBaseVideoRenderer тоже переопределяет Notify — но кто его вызывает тогда? он же?
Забейте вы на Notify — пусть декодер этим занимается.
NV>Похоже не в рендерере дело. Буду смотреть буфер в самом драйвере камеры..
Поймите простую вещь, что весь это механизм работает тольно с файлами, (точнее с потоками не в реальном времени), которые, грубо говоря, могут менять скорость подачи от 0 до +безконечности. С потоками реального времени, все намного сложнее, придется учитывать расхождение временных шкал.
NV>Кстати — нет. не проканало. ещё одно подтверждение, что дело не в графе вообще. стрим ему приходит кривоватый (торопится).
Вот это уже очень странно, такого быть не может. Видимо ваш деодер сам метки времени проставляет. В каком месте вы обнуляете метки? Важно поставить метки у некомпрессированных семплов. Нет меток — означает играть со скоростью приема. Кто тогда у вас в графе держит поток? Вы чего-то не договариваете
NV>>>Может стопать и стартовать граф регулярно — по идее время должно обнулиться. раза 3 в сутки...
ATP>>Можете, завтра у пользователя будет другая камера с другими характеристиками...
NV>А мы этот параметр в реестр предусмотрительно вынесем
Конечно все можно, но очевидно что у вас в потоке воспроизведения какая-то неучтенная проблемма, которая вам потом сильно аукнеться, поверте