У нас есть устройство с аналоговой камерой. У нас есть карта, которая сэмплирует его и оцифровывает. Все это делается в директксе. На данный момент замена оборудования невозможна, но нам нужно кодировать так, чтобы мы могли видеть этот видеопоток в режиме реального времени, независимо от каких-либо изменений оборудования или базовой операционной системы, которые произойдут в будущем.
В связи с этим мы выбрали Qt для реализации графического интерфейса для просмотра этой камеры. Однако, если в будущем мы перейдем на Linux или другую встроенную платформу и изменим другое оборудование (включая физическое устройство, на котором находится камера/видеосемплер), нам также потребуется изменить программное обеспечение дисплея камеры, и это будет боль, потому что нам нужно интегрировать его в наш графический интерфейс.
Я предложил перейти к более абстрактной модели, в которой данные отправляются через сокет в графический интерфейс, а видео отображается в реальном времени после анализа из потока сокета.
Во-первых, это хорошая идея или плохая?
Во-вторых, как бы вы реализовали такую вещь? Как видеосэмплеры обычно дают полезный результат? Как я могу передать этот вывод через сокет? Как только я на принимающей стороне анализирую вывод, как мне узнать, что делать с выводом (например, как получить вывод для рендеринга)? Единственное, что я могу придумать, это записать каждый образец в файл, а затем отображать содержимое файла каждый раз, когда поступает новый образец. Это кажется мне неэффективным решением, если оно вообще сработает.
Как вы рекомендуете мне справиться с этим? Существуют ли какие-либо кроссплатформенные библиотеки для такой вещи?
Спасибо.
edit: я готов принять предложения о чем-то другом, а не о том, что указано выше.