В программе на Delphi 6 с модулем DirectShow устранить задержку звука
Программа написана на Delphi 6, использует модуль directshow9 (без всякого DSPack), простая - захват аудио и видео, как вариант - с Web камеры. Я использую её на компе для вывода аудио и видео с ТВ-приставки. При выводе происходит задержка звука по отношению к видео. В сети нашёл инфу, что это известная проблема directshow: якобы есть специальный буфер для вывода аудио, объём которого таков, что по умолчанию установлена задержка в 500 мс. Для устранения этой задержки нужно уменьшить размер этого буфера, тогда можно будет установить задержку скажем в 50 мс. За это якобы отвечает функция IAMBufferNegotiation.
Есть подсказки в сети, но не для Delphi: https://sid6581.wordpress.com/2006/10/09/minimizing-audio-capture-latency-in-directshow/
Также есть подсказка для Delphi, но с использование пакета DSPack: https://stackoverflow.com/questions/7881420/how-to-eliminate-1-second-delay-in-directshow-filter-chain-using-delphi-and-ds
В общем, мне нужно уменьшить задержку звука по отношению к видео до минимума (без использования пакета DSPack, чисто на DirectShow).
Прикладываю саму программу и модули DirectShow для Delphi 6.
Файлы из архива DirectShow нужно скопировать в папку ...Delphi\Lib
Чтобы программа начала работать, после её запуска необходимо в ней выбрать источник видео и двойным кликом мышки выбрать источник аудио.