У меня есть приложение Qt
на встроенном Linux без X
.Я хотел бы видеть экран удаленно, и я не могу использовать VNC
или другие решения.Поэтому я сам это реализую.Мне нужно отправить кадровый буфер на удаленный сервер при изменении кадрового буфера.Я постоянно копирую буфер кадров (fb0.raw
) и проверяю, отличается ли он от ранее скопированного кадрового буфера (fb0_old.raw
), и если они отличаются, я посылаю буфер кадров.Вот псевдокод того, что я делаю:
cp /dev/fb0 /fb0.raw
if (diff -q fb0_old.raw fb0.raw) != "":
send(fb0.raw)
mv fb0.raw fb0_old.raw
Этот код занимает почти 0.5
секунд для выполнения на моем встроенном Linux, и если к этому добавляются сетевая задержка и время для других задач, тостановится слишком медленным.Есть ли более быстрый способ проверить, изменился ли кадровый буфер, не копируя его постоянно?Не имеет значения, находится ли он в ядре или в пользовательском пространстве, или это чистый C
или bash
или ..