Здравствуйте, NickViz, Вы писали:
NV>Да нет же, источник — IP камера. выдаёт она по RTP свои семплы, которые уже мы проштамповываем временем графа. NV>дропов с камеры — нет. я по логу вижу, что она регулярно по 15 фреймов в секунду предоставляет.
Эты вы так думаете, на самом деле может быть как 14.999... или 15.000...
Не ну это просто было предположение. Ок, попробую попонятней объяснить идею.
Есть камера, есть реальное время (например T). Есть её DSP у которого время течет совершенно иначе (например T1). Кстати камера метки штампует скорее всего по этому времени. Также есть время на приемной, типа SNTP (T2), которое вы считаете эталонным.
На практике эти три времени никогда не совпадают. Естественно у вас будет набегать ошибка и будет в конце концов либо дроп, либо появится дырка.
NV>Проблемы появляются _только_ с течением времени и после определенного порога проявляются постоянно — т.е. каждую 1-2 секунды на экране дергается изображение (часть фреймов скипается) и сама картинка отстаёт от реальности на 1-2 секунды.
Может быть вы недостаточно точно описали эксперимент. То о чем я говорю проявляется примерно после недели нормальной работы, т.е. зависит от точности таймеров оборудования. У вас звук есть? Вы в графе проверяли? У вас фильтр источник свой-самописанный? Вы ставите в графе синхронизацию по времени аудио карты? Часики в графе на аудиокарте горят?
NV>У нас было такое же для MJPEG — но там все фреймы ключевые и рендерер тупо ждал будущего, в результате фреймрейт падал до одного семпла в неск.секунд. Вылечили грязным хаком — обнуляли timestamp семпла. Попробовать тут тоже обнулять — но боюсь декодеру поплохеет или у нас внутри кто нибудь время спросит...
Это все от лукавого.....
NV>Может ли быть проблема в том что rtFinish для некоторых фреймов больше, чем rtStart для следующего (на 1-2 mS)?
Может, но скорее всего проблемма не в этом.
NV>"строгий таймкод" — это как? SetTime с текущим временем графа — достаточно строго ведь? или надо какое-то другое время надо ставить? timeGetTime()? NV>VMR7 откуда берет время? системы? или графа? в мсдне как-то туманно всё описано...
Сначала давайте поймем где у вас рассинхронизация.