IPTV MPEG-TS Video Streamer с буфером на 12 часов (Linux + Windows)

Ссылка на работу
Стояла задача переписать на С\С++ написанный ранее другим программистом на Perl вещатель потокового видео. К программе предудущего разработчика были следующие претензии у заказчика - из за утечек памяти, которые невозможно решить на уровне выбранного тем программистом языка Perl, программа спустя 2-3 дня сама выключалась (падала), что является недопустимым для подобного рода приложений. Суть программы - создание сервера-буфера для непрерывного вещания, даже если связь с основным вещающим сервером отсутствует (как показала практика, в сетях заказчика часто бывают перерывы до 12 часов). Организация программы - программа получает видеопоток в формате Apple HLS (по сути, обновляющийся список файлов - на ближайшие 12 часов - со ссылками на коротенькие фрагменты MPEG Transport Stream по 8-15 секунд), скачивает их себе в буфер (кеширует), и при этом вещает фрагменты в UDP Video Stream из своего буфера по порядку, даже в случае отсутствия связи с оригинальным вещающим сервером. Для вещания в UDP Video Stream использована библиотека Live 555. Проект был выполнен в среде Qt 4.8 в виде демона (сервиса) для Ubuntu Linux, и в графическом режиме для Windows (с выводом статистики о буфере и состоянии связи на графичекую форму). Моя реализация показала стабильную работу в течение нескольких недель.